Installation
Get DeltaBase running in minutes
Installation
Section titled “Installation”Install packages. Start building. Deploy anywhere.
DeltaBase packages
Section titled “DeltaBase packages”DeltaBase is split into focused packages:
@delta-base/server
- Core SDK for building event-sourced applications@delta-base/cli
- Local development server and deployment tools@delta-base/toolkit
- Application-level utilities (optional)
Most projects need server + cli. Add toolkit for advanced patterns.
Create a new app
Section titled “Create a new app”npm create @delta-base/app my-appcd my-appnpm install
pnpm create @delta-base/app my-appcd my-apppnpm install
yarn create @delta-base/app my-appcd my-appyarn install
bun create @delta-base/app my-appcd my-appbun install
This creates a new project with DeltaBase server SDK and CLI pre-configured.
Add to existing project
Section titled “Add to existing project”If you already have a project:
# Core packagesnpm install @delta-base/server @delta-base/cli
# Optional: application utilitiesnpm install @delta-base/toolkit
# Core packagespnpm add @delta-base/server @delta-base/cli
# Optional: application utilitiespnpm add @delta-base/toolkit
# Core packagesyarn add @delta-base/server @delta-base/cli
# Optional: application utilitiesyarn add @delta-base/toolkit
# Core packagesbun add @delta-base/server @delta-base/cli
# Optional: application utilitiesbun add @delta-base/toolkit
Start local development
Section titled “Start local development”Run the DeltaBase CLI:
npx @delta-base/cli dev
This starts:
- Local event storage (SQLite)
- Development server
- Studio UI at
http://localhost:3000
Events stored locally. No cloud, no API keys, no setup.
Studio UI opens at http://localhost:3000
for debugging and monitoring.
Framework integration
Section titled “Framework integration”Hono (recommended)
Section titled “Hono (recommended)”Works with Hono for universal deployment:
import { Hono } from 'hono';import { createEventStore } from '@delta-base/server';
const app = new Hono();const eventStore = createEventStore('banking');
app.post('/accounts/:id/deposit', async (c) => { const { amount } = await c.req.json();
await eventStore.appendToStream(c.req.param('id'), [ { type: 'MoneyDeposited', amount } ]);
return c.json({ success: true });});
Next.js
Section titled “Next.js”import { createEventStore } from '@delta-base/server';
const eventStore = createEventStore('banking');
export async function POST(request: Request) { const { accountId, amount } = await request.json();
await eventStore.appendToStream(accountId, [ { type: 'MoneyDeposited', amount } ]);
return Response.json({ success: true });}
Express.js
Section titled “Express.js”import express from 'express';import { createEventStore } from '@delta-base/server';
const app = express();const eventStore = createEventStore('banking');
app.post('/deposit', async (req, res) => { const { accountId, amount } = req.body;
await eventStore.appendToStream(accountId, [ { type: 'MoneyDeposited', amount } ]);
res.json({ success: true });});
TypeScript support
Section titled “TypeScript support”Define your event types:
interface BankingEvent { type: 'MoneyDeposited' | 'MoneyWithdrawn'; amount: number;}
const eventStore = createEventStore<BankingEvent>('banking');
Production deployment
Section titled “Production deployment”Same code runs everywhere:
- Cloudflare Workers
- Vercel Edge Functions
- Deno Deploy
- Node.js servers
- Docker containers
Events sync to your cloud storage automatically.
What’s next?
Section titled “What’s next?”You’re ready. Try:
- Getting started - Your first event
- Banking system - Complete banking system