Files
Unify/Readme.md

215 lines
5.1 KiB
Markdown
Raw Normal View History

2025-12-25 11:16:59 +01:00
# Unify Developer Manual
### Build full applications with a single, unified codebase.
Unify is a full-stack application framework designed to remove the accidental complexity of modern web development. Instead of hand-wiring HTTP requests, state management, SQL queries, UI updates, permissions, and caching — Unify turns each **domain object** into a **live application object** that exists simultaneously on the server and client.
You write your application *once*.
Unify takes care of syncing it everywhere it needs to be.
---
## Why Unify?
Most web apps are assembled from disconnected technologies:
React + REST + ORM + SQL + State Manager + WebSockets + UI Framework + Access Control…
Each layer requires boilerplate to keep everything in sync:
* serialize → send → parse → update → re-render → validate permissions
* write SQL + write endpoints + write frontend state logic for the same entity
Unify eliminates these seams.
> **One class = data + logic + UI + permissions + real-time behavior**
The framework:
* turns your class into a database table (server)
* generates UI components from that class (client)
* syncs all changes via a structured WebSocket protocol
* applies permissions automatically based on user role
* integrates filtering, joins, pagination at the SQL level
* caches and updates only changed fields
You focus on the domain model.
Unify handles the rest.
---
### Why Unify Is AI-Optimized
Unify applications are self-describing graphs.
The object structure defines:
UI layout
Backend relationships
Permissions
Sync rules
Navigation
A human developer may lose track of where objects live in the graph.
But AI can:
infer full graph topology
find optimal traversal paths
safely modify relationships
rewrite UI interactions without breaking structure
This means Unify enables:
AI-generated UI actions
AI-guided refactoring
AI-assisted CRUD creation
Automated join discovery
Intelligent navigation handling
## What does development feel like?
Example: define a `News` class
```javascript
export default class news extends table {
title = new text("Title");
body = new text("Message");
price = new number("Price");
permission() {
this.allow(groups.visitor, "READ");
this.allow(groups.admin, "WRITE");
}
}
```
And a list view:
```javascript
export default class newsListTable extends gridView {
header = new newsListTableHeader();
body = new newsListTableBody(newsListItem, new collection(news));
}
```
You dont manually:
* write SQL queries
* define REST endpoints
* build WebSocket handlers
* implement CRUD actions
* code client state syncing
* generate UI markup
Unify does all of that from your object graph.
---
## Architecture: Whats inside
| Layer | Responsibility |
| ---------------------- | ------------------------------------------ |
| **Domain Objects** | Single class shared by server + client |
| **Render Collections** | Auto-loaded lists with pagination + search |
| **Table Controller** | Database operations + joins |
| **Socket Controller** | Real-time communication layer |
| **UI Runtime** | Live elements, animations, events |
| **Permission Engine** | Automatic security per object/action |
This creates a **Behavioral ORM**:
* objects contain their own server logic
* queries are automatically composed from UI actions
* users see only what they are permitted to interact with
---
## Why does this matter?
Modern software complexity isnt caused by features — its caused by **glue code**.
For every feature, you implement it 36 times: backend models, database schema, API routes, frontend state, UI bindings…
Unify collapses those layers into **one source of truth**.
The result:
* drastically fewer bugs
* ultra-fast iteration cycles
* real-time UX without extra work
* secure-by-construction access rules
* smaller teams can ship full apps
---
## Current focus
The goal of this release is to give developers a working demonstration of:
* full-stack sync with no REST boilerplate
* real-time UI updates
* built-in permissions
* SQL searching / joining from the UI
* cross-platform dynamic UI rendering (Windows / Mac / Web)
The included **News Application** shows:
* search/filter with SQL operators (`LIKE`, `OR`, `>=`)
* item detail transitions + CRUD dialogs
* login + role-based access
* pagination
* dynamic view/layout behavior
---
## Who is Unify for?
✔ Full-stack developers
✔ Product developers who hate glue code
✔ Teams who want to ship faster
✔ Anyone who believes software should be simpler
---
## Status
Unify is actively developed and evolving.
Contributions, feedback, and architectural discussion are welcome.
> Help define the future of unified application development.
---
## Get started
The source includes:
* `unify_source/` the core framework
* `unify_application/` working reference application
Clone and run the app to see the architecture in motion:
```
git clone https://.../unify
cd unify_application
npm install
npm start
```
Documentation and complete API references are coming.