ψEducate, then build
Blog
Real cloud-native problems, solved. Each piece ships an architecture diagram, the Stone.js modules that carry it, and a starter you can install and run today.
Give your coding agent Stone.js superpowers
One command, `stone mcp`, serves your coding agent the framework’s knowledge and a live, read-only view of your own app: its routes, commands and config, plus any tools you add.
Stateless auth at the edge
Verify a token at the boundary instead of holding a session, and the same auth guard runs on Node, serverless, the edge and agents, with nothing to store.
One domain, three runtimes
One codebase, unchanged, running on Node, AWS Lambda and the edge. Not three apps: three runtimes. The thing a single-target framework cannot do.
Introducing Stone.js
An application is an act, not an object. Write the domain once; the context applies to it at run time. This is the Continuum, and this is Stone.js.
One schema, validated on the backend and the form
Validation duplicated between the API and the UI always drifts. Write the shape once, enforce it at the boundary with a 422, and validate the same schema in the form.
A public API contract, generated from the schemas you already write
A hand-written OpenAPI spec drifts the day after you write it. Derive the document from your validation schemas instead, and serve it with Swagger UI.
Multi-tenancy with subdomain routing
Tenant-per-subdomain without header-parsing plumbing. A subdomain parameter turns multi-tenancy into routing: capture the tenant from the host and read it on the event.
Direct-to-cloud file uploads with signed URLs
Uploading large files without proxying the bytes through your API. Issue a short-lived signed URL, let the client upload straight to storage, then save only the metadata.
Real-time features: live updates and presence
Live dashboards, presence and notifications, framed by their architecture: the SSE and WebSocket flow, how a held-open connection fits the per-event model, and where it runs on the edge.