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 installpnpm create @delta-base/app my-appcd my-apppnpm installyarn create @delta-base/app my-appcd my-appyarn installbun create @delta-base/app my-appcd my-appbun installThis 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/toolkitStart local development
Section titled “Start local development”Run the DeltaBase CLI:
npx @delta-base/cli devThis 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