# Lunora

> Type-safe, real-time backend framework on Cloudflare Workers and Durable Objects with a Vite-first developer experience and end-to-end TypeScript types.

Lunora is a type-safe, real-time backend framework built on Cloudflare Workers and Durable Objects, developed by anolilab. It gives developers a Convex-style authoring experience — define a schema, write query, mutation, and action functions in TypeScript — while deploying entirely to the developer's own Cloudflare account. The project is currently in alpha, with packages published continuously to the `alpha` dist-tag on npm.

## What It Is

Lunora is a full-stack backend framework that sits between a raw Cloudflare setup and a managed backend-as-a-service like Convex or Firebase. Developers declare tables in a schema file, write typed server functions, and get a live-syncing, reactive API on the client — with no glue code between them. Codegen keeps server and client types in lockstep: rename a field and the client stops compiling. The framework is licensed under FSL-1.1-Apache-2.0, which converts to Apache-2.0 on a fixed schedule per release.

## How the Realtime Model Works

Every query in Lunora is a subscription by default. Mutations push live deltas to all subscribed clients over WebSocket without manual cache invalidation. The client SDK (`@lunora/client`) handles optimistic updates and an offline mutation queue. The reactive engine (`@lunora/shard-engine`) is host-neutral and talks to platform contracts rather than Cloudflare APIs directly, with `@lunora/platform-cloudflare` as the primary implementation.

State lives in SQLite-backed Durable Objects at the edge. A single Durable Object per app is the default; developers opt into `.shardBy(key)` for tenant-level isolation or `.global()` for geo-replicated reads without rewriting their app.

## Architecture and Platform

Lunora is built entirely on the Cloudflare Developer Platform:

- **Workers** — the RPC router, shard resolver, and query coordinator
- **Durable Objects** — per-shard SQLite state with WebSocket Hibernation API and subscription registry
- **D1** — SQL storage for global tables
- **R2** — blob storage with typed buckets and signed URLs
- **Queues** — background job processing
- **Workflows** — durable multi-step background work
- **Vectorize** — semantic search support
- **Workers AI** — provider-agnostic AI SDK access from action functions

The Vite plugin (`@lunora/vite`) runs the dev loop on workerd — the same runtime as production — so there is no environment mismatch between development and deployment.

## Framework Adapters and Ecosystem

Lunora ships adapters for React, Vue, Svelte, Solid, Angular, Astro, Nuxt, SvelteKit, TanStack Start, React Native, and Expo. The client is framework-agnostic underneath, so any framework without a dedicated adapter still works without the framework-specific hooks.

Opt-in add-on packages cover the full surface area of a production app:

- **Auth** — Better Auth wrapper with email/password, OAuth, magic links, 2FA, passkeys, organizations, and RBAC
- **Payments** — Stripe-first adapter with webhook sync, subscriptions, and metered billing
- **Email** — TSX-templated transactional email via Resend or custom SMTP
- **AI** — Workers AI on the Vercel AI SDK, provider-agnostic
- **Storage** — R2 typed buckets, Workers KV, Cloudflare Images, Vectorize
- **Background Jobs** — cron triggers, delayed jobs, durable workflows
- **Bring-your-own DB** — Postgres or MySQL over Cloudflare Hyperdrive

Every app also ships with **Lunora Studio**, a local admin UI for schema, data, SQL, logs, time-travel, and security/performance advisors — served automatically by `lunora dev` against the live edge database.

## Current Status: Alpha

The project self-describes as alpha with APIs that will break between releases. Every package publishes under a `1.0.0-alpha` version on the `alpha` dist-tag; the `latest` tag holds a `0.0.x` placeholder. The GitHub repository shows 229 stars, 7 forks, and 5 contributors as of late August 2026, with active pushes. The homepage explicitly states: "Build side projects and internal tools on it today; wait for 1.0 before it carries revenue." A Lunora Cloud managed hosting option is listed as a waitlist, meaning self-hosting to a developer's own Cloudflare account is currently the only deployment mode.

## Features
- Type-safe end-to-end TypeScript with codegen
- Realtime queries as subscriptions by default
- Optimistic updates and offline mutation queue
- SQLite-backed Durable Objects at the edge
- Sharding by key for tenant or room isolation
- Global replication for low-latency reads
- Lunora Studio local admin UI (schema, data, SQL, logs, time-travel)
- Vite-first dev loop running on workerd
- CLI for scaffold, migrate, seed, deploy, and inspect
- Auth add-on (Better Auth, email/password, OAuth, 2FA, passkeys, RBAC)
- Payments add-on (Stripe-first, webhook sync, subscriptions)
- Transactional email add-on (TSX templates, Resend, queue-backed)
- AI add-on (Workers AI, Vercel AI SDK, provider-agnostic)
- Background jobs (cron triggers, delayed jobs, durable workflows)
- Bring-your-own Postgres/MySQL via Cloudflare Hyperdrive
- MCP server to expose deployments to AI agents
- Schema and query advisors (lints)
- In-memory test harness for Vitest
- Point-in-time data rewind (30-day window)
- 13 project templates across major frameworks
- React Native and Expo support

## Integrations
Cloudflare Workers, Cloudflare Durable Objects, Cloudflare D1, Cloudflare R2, Cloudflare Queues, Cloudflare Workflows, Cloudflare Vectorize, Cloudflare Hyperdrive, Cloudflare KV, Cloudflare Images, Cloudflare Analytics Engine, Workers AI, Vite, React, Vue, Svelte, Solid, Angular (Analog), Astro, Nuxt, SvelteKit, TanStack Start, Next.js, React Native, Expo, Better Auth, Stripe, Polar, Resend, Vitest, GitHub Actions, GitLab CI, PostgreSQL, MySQL, node-postgres, postgres.js, mysql2

## Platforms
ANDROID, IOS, WEB, API, DEVELOPER_SDK, CLI

## Pricing
Open Source

## Version
1.0.0-alpha

## Links
- Website: https://lunora.sh
- Documentation: https://lunora.sh/docs
- Repository: https://github.com/anolilab/lunora
- EveryDev.ai: https://www.everydev.ai/tools/lunora
