Key Features of Shapeless

Shapeless is a fullstack framework designed to build fast, type-safe apps with modern deployment in mind. It’s not just a starter—it’s a production-ready base that works across platforms, especially at the edge.


1. ⚡ Fast and Lightweight by Default

Shapeless is built on Hono using its ultra-lightweight RegExpRouter. For database access, we use Drizzle ORM—which avoids the heavy query engines and bloat seen in ORMs like Prisma.

This combination ensures fast cold starts, smaller bundles, and predictable runtime behavior—even when deployed globally.

With our cf:build + cf:upload scripts, you can bundle and deploy your app to Cloudflare Workers in seconds:

pnpm run cf:build && pnpm run cf:upload

No Docker, no VMs—just instant edge deployment.


2. 🔒 End-to-End Type Safety (Without the Lock-In)

Shapeless brings full type safety from API to frontend—but doesn’t force you into specific patterns like React Query or tRPC.

Our client system is simple, fetch-based, and type-safe:

const res = await client.media.getRecent.$get()
const { media } = await res.json()
// ^ media is fully typed

You’re free to use Zustand, React Query, TanStack Router, or even plain fetch logic—without sacrificing DX.

We auto-generate the client for you, keeping backend and frontend in sync, and letting you drop it into any state management approach.


3. 🌐 Edge-First Cloudflare Support

Shapeless integrates tightly with Cloudflare Workers and OpenNext, offering first-class support for edge deployments.

Our CLI and scripts let you:

  • Build for Cloudflare using cf:build
  • Deploy static assets and server handlers via cf:upload
  • Generate Cloudflare env types with cf:gen
  • Apply Drizzle DB migrations locally or remotely
  • Preview your full Next.js app with cf:preview

Example scripts from package.json:

"cf:build": "opennextjs-cloudflare build",
"cf:upload": "opennextjs-cloudflare build && opennextjs-cloudflare upload",
"cf:gen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts"

And from wrangler.jsonc:

{
  "main": ".open-next/worker.js",
  "assets": {
    "directory": ".open-next/assets",
    "binding": "ASSETS",
  },
  "d1_databases": [
    {
      "binding": "DB",
      "database_name": "replacewithyourown",
    },
  ],
  "r2_buckets": [
    {
      "bucket_name": "replacewithyourown",
      "binding": "R2",
    },
  ],
}

Shapeless is designed to run anywhere, but shines on Cloudflare’s global edge network.


4. 💰 Cost-Efficient by Design

Cloudflare Workers give you 100,000 free requests per day—no credit card required.

Combined with R2 (S3-compatible object storage) and D1 (SQLite-compatible serverless DB), you can run serious fullstack apps with:

  • Near-zero cost at small scale
  • Sub-second response times globally
  • Full control over data and compute

No need to pay Vercel for every route. No background processes or cold starts to worry about. And yes—you can self-host too.


5. 🧱 Modular and Extendable

Shapeless is structured as a set of internal modules and CLI generators. Over time, we plan to include:

  • Admin studio and dashboard tooling
  • Visual schema editor using React Flow
  • Auth plugins (magic link, OAuth, 2FA)
  • OpenAPI generation
  • CLI commands to scaffold routes, schemas, workflows, and entire CMS blocks

It’s not just a template—it’s an app system you can evolve, remix, and scale.


Final Note

We’re building Shapeless for the real-world cases we run into—edge apps, streaming platforms, dashboards, headless CMS tools, and everything in between.

Try it out with:

pnpm dlx create-shapeless-app

Or deploy to Cloudflare right away:

pnpm run cf:build
pnpm run cf:deploy
pnpm run cf:upload

Questions? Feedback? Let us know at shapeless.pherus.org

@shapeless / Pherus