— System Design
Stactora isn't a monolithic app; it's an ecosystem. Built on a resilient core API and a modular widget registry, it adapts to your workflow without bloating.
— Live Topology
— The Whole Contract
// The core never imports you. You introduce yourself. Stactora.registerWidget({ id: 'reading-list', // unique, namespaced name: 'Reading List', icon: 'book', mount(ctx) { ctx.render('<p>hello</p>') }, // build UI onEvent(e) { if (e.type === 'timer:tick') {} }, storage: ctx.store('reading-list') // private sandbox });
Names trimmed for legibility — the shape is the point: you bring behavior, the core brings guarantees.
— Design Patterns
Widgets aren't hardcoded. They register themselves through a central API. The core only knows the interface, never the specific widget logic.
Consequence: the core contains zero imports of any widget file.
Every widget owns its data, storage keys, and UI subtree. The shared API handles drag, resize, autosave, and import/export automatically.
Consequence: one crash never takes your workspace down.
Powered by IndexedDB. Your data lives in your browser, not on a remote server — instant loads, full offline capability, absolute privacy.
Consequence: reads resolve faster than any cloud round-trip.
— Data Flow
Data flows cleanly downward through isolated boundaries, keeping the UI reactive and storage safe.
You drag a widget or check a task. The UI Canvas layer registers the input instantly and fires an event up to the Core API.
— Engineer Questions
An architecture designed to adapt to you — not the other way around.