Introduction
What is Lumenize?
Lumenize is a suite of packages for building applications on Cloudflare Workers and Durable Objects. Several packages stand on their own; together, they form the foundation on which Lumenize Mesh is built — a network where DOs, Workers, and browser clients are all equal peers. Secure by default. Rich types everywhere. De✨light✨ful developer experience.
See the Mesh Announcement for the full story, or Package Changes for migration details from earlier Lumenize versions.
Guiding Principles
De✨light✨ful Developer Experience
Cloudflare's Agent SDK has patterns worth falling in love with — routeAgentRequest is elegant, and the sql and alarms code from @cloudflare/actors has genuinely nice DX. We borrowed liberally: our routeDORequest is almost exactly routeAgentRequest, and we started with Actors' sql and alarms APIs. Then we evolved them. Actors' alarms use string method names to dispatch when an alarm fires; ours use continuations with full type safety, among other upgrades. That's the pattern throughout Lumenize: find something good, understand why it's good, then push it further — drawing on PartyKit and durable-utils along the way.
Opinionated Yet Flexible
Lumenize is opinionated where it counts — secure defaults, consistent patterns, clear guidance, and integration testing for your code on day one. But every extension point has a clean contract: swap in your own auth, extend the base classes with your domain logic, or use the standalone packages on their own.
Rich Types Everywhere
Pass Date, Map, Set, Error with cause chains, objects with cycles, ArrayBuffer, and more through calls and into storage. No toJSON(). No fromJSON(). It just works.
Secure by Default
Required auth and fine-grained access control at every layer. Class-wide hooks, method-level @mesh() guards, and zero-trust security out of the box — powered by @lumenize/auth with passwordless magic-link login and JWT tokens.
Engineering Excellence
The right way is the easy way — and we show you how to test it.
- In-process WebSocket integration testing that goes far beyond
cloudflare:test - Documentation validated against real tests via check-examples
- 90%+ test coverage across the framework with meaningful assertions beyond happy-path scenarios
- Toggle logging by namespace, Durable Object instance, or other context
- Committed to rapid bug fixes
Packages
| Package | Description | Standalone | Status | License |
|---|---|---|---|---|
| @lumenize/mesh | Mesh networking for DOs, Workers, and browser clients | — | Beta | MIT |
| @lumenize/auth | Passwordless authentication with magic links and JWTs | ✓ | Beta | MIT |
| @lumenize/testing | In-process integration testing for Durable Objects | ✓ | GA | MIT |
| @lumenize/debug | Structured debug logging for Cloudflare observability | ✓ | GA | MIT |
| @lumenize/structured-clone | Rich type serialization (cycles, Date, Map, Set, etc.) | ✓ | GA | MIT |
| @lumenize/fetch | Fetch wrapper for Worker-to-DO communication | — | Beta | MIT |
| @lumenize/routing | Request routing for Durable Objects (was @lumenize/utils) | ✓ | GA | MIT |
| @lumenize/rpc | Deprecated — use @lumenize/mesh (remains as foundation for @lumenize/testing) | — | Deprecated | MIT |
| Lumenize Nebula | Agentic platform for enterprise apps from declarative business ontologies | — | Coming Soon | BSL 1.1 |