PocketBase

PocketBase is a lightweight, open-source database backend. It's a great choice for small to medium-sized projects. It runs on a local SQLite database. It comes with a built-in admin interface and a REST API.

In Vela, the PocketBase database is configured in hooks.server.ts:

import { handlePocketbase } from '@vela/pocketbase';
import {
    POCKETBASE_URL,
    POCKETBASE_SUPERUSER_EMAIL,
    POCKETBASE_SUPERUSER_PASSWORD
} from '$env/static/private';

export const handle = handlePocketbase({
	pocketbaseUrl: POCKETBASE_URL,
	superuserEmail: POCKETBASE_SUPERUSER_EMAIL,
	superuserPassword: POCKETBASE_SUPERUSER_PASSWORD
})

When running the project, the PocketBase admin interface is available at /admin. The public REST API (if enabled) is available at /api.

Two different clients are available for interacting with the PocketBase database: the admin API and the user-scoped API. These are provided in the locals object in the SvelteKit server context.

export const load = async ({ locals }) => {
    const posts = await locals.admin.collection('posts').getFullList();
    const posts = await locals.pb.collection('posts').getFullList();
    return { posts };
}