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:

pnpm dlx create-shapeless-app

Thanks for checking it out.

@shapeless