Skip to content

Installation

Get DeltaBase running in your project

DeltaBase is distributed as a single npm package:

Terminal window
npm install @delta-base/server

That’s it. No complex setup. No database configuration. No infrastructure provisioning.

During early access, join our Discord and ask for an API key: https://discord.gg/nibbio

We’ll get you set up immediately. No waiting.

Create a test file to verify everything works:

test.js
import { DeltaBase } from '@delta-base/server';
const deltabase = new DeltaBase({
apiKey: 'your-api-key-here'
});
async function test() {
const eventStore = deltabase.getEventStore('test');
console.log('Testing DeltaBase connection...');
try {
await eventStore.appendToStream('test-stream', [
{ type: 'test.event', data: { message: 'Hello DeltaBase!' } }
]);
const events = await eventStore.readStream('test-stream');
console.log('Success! Events:', events.length);
} catch (error) {
console.error('Failed:', error.message);
}
}
test();

Run it:

Terminal window
node test.js

If you see “Success! Events: 1”, you’re ready to build.

Never hardcode API keys. Use environment variables:

.env
DELTABASE_API_KEY=your-api-key-here

Update your code:

import { DeltaBase } from '@delta-base/server';
const deltabase = new DeltaBase({
apiKey: process.env.DELTABASE_API_KEY
});

DeltaBase includes full TypeScript definitions. No additional setup needed:

import { DeltaBase, EventStore } from '@delta-base/server';
interface UserRegistered {
type: 'user.registered';
data: {
email: string;
name: string;
};
}
const deltabase = new DeltaBase({
apiKey: process.env.DELTABASE_API_KEY!
});
const eventStore: EventStore = deltabase.getEventStore('users');
// Fully typed
await eventStore.appendToStream<UserRegistered>('user-123', [
{
type: 'user.registered',
data: {
email: 'john@example.com',
name: 'John Doe'
}
}
]);
import express from 'express';
import { DeltaBase } from '@delta-base/server';
const app = express();
const deltabase = new DeltaBase({
apiKey: process.env.DELTABASE_API_KEY
});
app.use((req, res, next) => {
req.eventStore = deltabase.getEventStore('app');
next();
});
app.post('/users', async (req, res) => {
await req.eventStore.appendToStream(req.body.userId, [
{ type: 'user.created', data: req.body }
]);
res.json({ success: true });
});
lib/deltabase.js
import { DeltaBase } from '@delta-base/server';
export const deltabase = new DeltaBase({
apiKey: process.env.DELTABASE_API_KEY
});
// pages/api/users.js
import { deltabase } from '../../lib/deltabase';
export default async function handler(req, res) {
const eventStore = deltabase.getEventStore('users');
if (req.method === 'POST') {
await eventStore.appendToStream(req.body.userId, [
{ type: 'user.created', data: req.body }
]);
res.json({ success: true });
}
}

Works out of the box. DeltaBase is designed for serverless:

api/webhook.js
import { DeltaBase } from '@delta-base/server';
const deltabase = new DeltaBase({
apiKey: process.env.DELTABASE_API_KEY
});
export default async function handler(req, res) {
const eventStore = deltabase.getEventStore('webhooks');
await eventStore.appendToStream('webhook-events', [
{ type: 'webhook.received', data: req.body }
]);
res.json({ received: true });
}

For local development, you can use the same API key. DeltaBase automatically handles:

  • Connection pooling
  • Error retry
  • Rate limiting

No need for a local event store or complex setup.

Before going live:

  • API key stored in environment variables
  • Error handling implemented
  • Logging configured
  • Event schemas documented

If something doesn’t work:

  1. Check your API key is correct
  2. Verify your internet connection
  3. Join our Discord: https://discord.gg/nibbio

We’re usually online and respond quickly.

Now that DeltaBase is installed, you can:

DeltaBase is designed to get out of your way so you can focus on building great software.