About Shapeless
Shapeless is a modern web stack built around Next.js 15, Hono, and Cloudflare Workers—focused on performance, flexibility, and full end-to-end type safety.
It’s inspired by stacks like T3 and JStack but makes key architectural shifts to better support modern infrastructure, predictable DX, and optional complexity.
At its core, Shapeless uses:
- Next.js 15 for the frontend and routing
- Hono 🔥 to handle lightweight backend logic using Web Standard APIs
- OpenNext to run Next.js on Cloudflare Workers
- Drizzle ORM for type-safe database access
- Zod for runtime validation
Let’s walk through what makes Shapeless different and why I built it.
Why I created Shapeless
I started building with stacks like T3 because they emphasized type safety, simplicity, and modern tooling. But the deeper I went, the more limitations showed up—tightly coupled patterns, slow cold starts, limited backend control, and platform constraints.
Shapeless came out of wanting more control, better performance, and cleaner separation of concerns. Especially for edge-first apps, media-heavy platforms, and customizable deployments (like Cloudflare Workers or your own infra).
1. Built to Work with the Edge
Shapeless uses OpenNext to bring full Next.js 15 support to platforms like Cloudflare Workers, without extra glue or patches.
That means:
- Fast cold starts
- Native streaming
- Easy caching and routing
- And no lock-in to Vercel or Node
Want to self-host? Cloudflare? Railway? Fly.io? Shapeless gives you a build that runs anywhere with little to no modification.
2. Backend Without the Bloat
Instead of relying on heavy backend frameworks or abstractions, Shapeless uses Hono—a fast and composable Web API-compatible router. You can:
- Write full backend logic (like auth, uploads, dashboards) right inside your Next.js project
- Use
Response
objects directly - Handle cookies, headers, sessions, and WebSockets without third-party wrappers
You're not tied to JSON APIs either. Want to return HTML, stream files, or SSR partials? You're free to.
3. Type Safety Without Lock-in
Shapeless doesn't enforce any state manager, RPC protocol, or client pattern.
Your backend routes are just standard Hono handlers. Your client is just fetch()
(optionally wrapped with helpers). This gives you total freedom:
- Use React Query, Zustand, Jotai—or skip them
- Call APIs from React, outside React, or even from mobile apps
- Keep full type safety by sharing types across your monorepo (thanks to ESM + TS)
You get end-to-end type safety without locking into tRPC or other heavy abstractions.
4. Designed to Be Extendable
Shapeless isn’t just a stack—it’s a foundation. With the CLI, you can scaffold full apps, backend routes, DB models, and even full CMS features.
Planned additions include:
- Visual schema designer (with React Flow)
- Plugin-based CLI system
- Auth providers (email, magic link, Google, GitHub, etc.)
- Admin studio with media manager, analytics, and table views
- Workflow support for larger apps and SaaS products
5. Cloudflare-First, But Not Cloudflare-Only
Shapeless runs natively on Cloudflare Workers, with support for caching, KV storage, R2, and edge streaming—but also works perfectly on other platforms.
You’re not locked in. And you can bring your own infra.
In Summary
Shapeless is for builders who want:
- Type-safe fullstack apps with modern tooling
- Fast, edge-first deployments
- Backend control without losing frontend speed
- Clean DX without framework lock-in
It’s lightweight where it should be, batteries-included where it matters, and modular enough to grow with you.
If that sounds like something you want to try, the CLI is ready:
Thanks for checking it out.