215 lines
5.1 KiB
Markdown
215 lines
5.1 KiB
Markdown
|
||
|
||
# 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 don’t 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: What’s 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 isn’t caused by features — it’s caused by **glue code**.
|
||
For every feature, you implement it 3–6 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.
|
||
|