Skip to main content

TypeScript backend framework

Same logic. Different handler.
Every time.

You write a function, then rewrite it as an API route, a queue consumer, a cron handler, an MCP tool. Each with its own validation, auth, and error handling. Pikku stops that.

Working app in under 5 minutes. TypeScript, open-source, zero lock-in.

The difference

One function instead of three handlers.

Without Pikku, the same business logic gets rewritten for every protocol — with separate validation, auth, and error handling each time. With Pikku, you write it once.

// routes/send-reminder.ts
app.post('/send-reminder', authMiddleware, async (req, res) => {
const { userId, urgency } = validateInput(req.body)
const user = await db.users.find(userId)
await email.send({ to: user.email, template: 'reminder', urgency })
res.json({ sent: true })
})

// workers/billing-reminders.ts
queue.process('billing-reminders', async (job) => {
const { userId, urgency } = validateInput(job.data)
const session = await getSystemSession()
checkPermissions(session, 'sendReminder')
const user = await db.users.find(userId)
await email.send({ to: user.email, template: 'reminder', urgency })
})

// cron/daily-reminders.ts
cron.schedule('0 9 * * *', async () => {
const { userId, urgency } = validateInput(config.dailyReminder)
const session = await getSystemSession()
checkPermissions(session, 'sendReminder')
const user = await db.users.find(userId)
await email.send({ to: user.email, template: 'reminder', urgency })
})

Same validation, same auth checks, same logic — written three times. And this is only three protocols.

Your functions are just TypeScript.

Pikku is a wiring layer, not a runtime. Your function receives typed input and injected services. Inside it, use any npm package, any database driver, any API client.

Need raw request access? Escape hatches exist. Need to self-host? Run on Fastify, Express, Lambda, Cloudflare Workers, or Bun. The framework is open-source and MIT-licensed.

If you stop using Pikku tomorrow, your business logic still works.

How it works

Write a function. Wire it to anything.

Every function gets typed I/O, permissions, and services injected automatically. The function never knows which protocol called it.

HTTP APIs

REST routes with OpenAPI generation

Queues

Background jobs with retries

Cron

Managed scheduled execution

WebSocket

Typed realtime channels

AI Agents

LLM tools with approval gates

MCP

Model Context Protocol server

CLI

Command-line interfaces

RPC

Direct function calls

End-to-end type safety

Zod schemas validate at runtime. TypeScript types flow from function definition to auto-generated clients. No drift.

Built-in auth and permissions

Session management, JWT, and role-based access — declared once on the function, enforced on every surface.

Auto-generated OpenAPI

Your API spec stays in sync with your code. Routes, schemas, and permissions — always accurate.

Any runtime

Fastify, Express, Lambda, Cloudflare Workers, Bun, Next.js. Same Pikku project, your infrastructure.

Pikku Fabric

Deploy the whole backend with one command.

Fabric reads your Pikku project and deploys each function as a serverless worker. Optional — you can always self-host.

terminal
$ pikku deploy
sendReminder
+ POST /send-reminder api
+ billing-reminders queue
+ 0 9 * * * (daily) cron
+ billing-assistant agent
✓ deployed to production
mode: serverless
scales to zero · $0 when idle

Serverless by default

Each function becomes an independent worker. Scales to zero. Pay only when functions execute.

Server mode when you need it

One flag: --mode server. Runs on Fastify, Express, or any Node/Bun runtime.

Eject anytime

Fabric is optional. Self-host on any cloud, any runtime. The framework is yours regardless.

Pricing

Open Source

Free

forever

The full framework. Self-host anywhere.

All protocols (HTTP, WS, Queue, Cron, MCP, Agent)
Any runtime (Fastify, Lambda, Cloudflare, Bun)
CLI with plan/apply
Community support

Fabric

$20/mo

scales to zero · $0 when idle

Serverless deployment platform.

Everything in Open Source
Per-function serverless workers
Metrics, logs, deployments
Environments, previews, rollbacks
Eject anytime

Enterprise

Custom

annual license

Deploy to your own cloud.

Everything in Fabric
BYOK — your Cloudflare, AWS, or GCP
SSO / SAML + SLAs
Dedicated support

Fabric

Get early access.

Serverless deployment for Pikku. One email when it ships.

No spam.

The framework is available now.