Skip to main content

The Physics of Software

Build full-stack applications through declarative schemas. Define entities, behaviors, and UI as state machines that compile to production-ready code.

Build Faster, Ship Confidently

Everything you need to go from idea to production

📐

Declarative Schemas

Define your entire application as a schema. Entities, traits, pages, and integrations - all in one place.

⚙️

State Machines

Model behavior as state machines with guards and effects. Predictable, testable, and secure by design.

🚀

Full-Stack Generation

Compile to React frontend, Express/FastAPI backend, and database models. One schema, complete app.

🔌

Built-in Integrations

Connect to external services with pre-built integrators. Stripe, Twilio, OpenAI, and more.

🎮

Real-time & Games

Build real-time applications and games with the same declarative approach. WebSocket support included.

🤖

AI-Powered

Generate schemas from natural language. Let AI handle the boilerplate while you focus on logic.

Philosophy

Entity + Trait = Almadar

Just as electrons orbit nuclei following quantum rules, your application components follow state machine rules. Each Almadar is an entity with attached traits that define its behavior, UI, and integrations.

EntityYour data model with fields and persistence
TraitReusable state machine with UI effects
PageRoute binding that composes traits
hello-world.orb
{
"name": "HelloWorld",
"orbitals": [{
"name": "Greeter",
"entity": {
"name": "Greeting",
"fields": [
{ "name": "message", "type": "string" },
{ "name": "count", "type": "number" }
]
},
"traits": [{
"name": "Clickable",
"stateMachine": {
"initial": "idle",
"states": ["idle", "greeted"],
"transitions": [{
"from": "idle",
"event": "CLICK",
"to": "greeted",
"effects": [
["set", "message", "Hello, World!"],
["increment", "count", 1],
["render-ui", "main", {
"pattern": "stats",
"props": {
"title": "@entity.message",
"value": "@entity.count"
}
}]
]
}]
}
}]
}]
}
📝set Update entity field
increment Add to number
🎨render-ui Render pattern to slot

Ready to build?

Install the CLI and create your first Almadar schema in seconds.

npx @almadar/cli init my-app