Skip to main content

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

PackageDescriptionStandaloneStatusLicense
@lumenize/meshMesh networking for DOs, Workers, and browser clientsBetaMIT
@lumenize/authPasswordless authentication with magic links and JWTsBetaMIT
@lumenize/testingIn-process integration testing for Durable ObjectsGAMIT
@lumenize/debugStructured debug logging for Cloudflare observabilityGAMIT
@lumenize/structured-cloneRich type serialization (cycles, Date, Map, Set, etc.)GAMIT
@lumenize/fetchFetch wrapper for Worker-to-DO communicationBetaMIT
@lumenize/routingRequest routing for Durable Objects (was @lumenize/utils)GAMIT
@lumenize/rpcDeprecated — use @lumenize/mesh (remains as foundation for @lumenize/testing)DeprecatedMIT
Lumenize NebulaAgentic platform for enterprise apps from declarative business ontologiesComing SoonBSL 1.1