The Code11 Engine is a declarative state management system and application builder.
Read the documentation for more information.
Get started using the cli:
npx @c11/engine.cli create my-app
cd my-app
npm start
// App.tsx
export const App: view = ({
name = observe.name,
greeting = observe.greeting,
updateName = update.name,
}) => (
<div>
<h1>{greeting}</h1>
<input
defaultValue={name}
onChange={(e) => updateName.set(e.currentTarget.value)}
/>
</div>
);
const greeter: producer = ({
name = observe.name,
updateGreeting = update.greeting,
}) => {
const greeting = name ? "Enter your name:" : `Hello ${name}!`;
updateGreeting.set(greeting);
};
App.producers([greeter]);
// index.tsx
import { engine } from "@c11/engine.runtime";
import { render } from "@c11/engine.react";
import { App } from "./App";
const app = engine({
state: {
name: "Foo Bar",
},
use: [render(<App />, "#app")],
});
app.start();
The rendering is done by views. Views observe and update anything on the state. The business logic sits in producers.