v0.1 — Database, Auth & Schema generation stable

SvelteKit,
but with superpowers

A batteries-included framework built on SvelteKit. One Vite plugin. One config block. Database ORM, auth, schema codegen, typed models, virtual modules — all wired together on every pnpm dev.

$ pnpx omni-svelte init
Everything included

All the pieces, none of the glue

Stop wiring the same things together on every project. OmniSvelte handles it at the framework level.

Schema-Driven Database

Define your data model once in .schema.ts. OmniSvelte generates Drizzle tables, Zod validators, and typed ActiveRecord model classes on every save.

Auth, Wired In

Better-Auth pre-configured in svelte.config.js. Email, magic link, OAuth, 2FA, and passkeys — automatically hooked into SvelteKit sessions.

Virtual Module Aliases

Import $db, $auth/server, $auth/client, $models/*, $schema, $validation/* — generated paths that always resolve correctly, no hardcoding.

Model Relationships

hasMany, belongsTo, hasOne, belongsToMany — defined in your schema, resolved with .with([]) eager loading on any query.

Plugin System

A comprehensive OmniPlugin interface for extending tables, hooks, auth providers, CLI commands, routes, UI components, and realtime channels.

Zero Config Start

One Vite plugin. One config block. OmniSvelte handles hook injection, type generation, virtual modules, and wiring — on every pnpm dev.

Step 1

One config block

Add the omni block to your existing svelte.config.js. Enable database and auth — OmniSvelte handles the rest.

  • Zero Drizzle boilerplate
  • Better-Auth wired to SvelteKit hooks
  • Type declarations auto-generated
svelte.config.js
// svelte.config.js
const config = {
  kit: { adapter: adapter() },
  omni: {
    database: {
      enabled: true,
      connection: { url: process.env.DATABASE_URL }
    },
    auth: {
      enabled: true,
      secret: process.env.BETTER_AUTH_SECRET,
      emailAndPassword: { enabled: true }
    }
  }
};
src/lib/posts.schema.ts
// src/lib/posts.schema.ts
import { defineSchema, field } from 'omni-svelte/schema';

export default defineSchema('posts', {
  id:        field.serial().primaryKey(),
  title:     field.string(255).required(),
  slug:      field.slug().required().unique(),
  content:   field.string().required(),
  published: field.boolean().default(false),
  userId:    field.integer().required()
}, {
  timestamps: true,
  indexes: ['slug', 'published'],
  softDeletes: false
});
Step 2

Define your schema once

Create a .schema.ts file with the fluent field.* builder. On every save, OmniSvelte generates three outputs automatically.

Drizzle

table

Zod

validators

Model

class

Step 3

Use the generated model

Import from virtual aliases — $models, $db, $auth/server — no path management needed.

Model API Reference
+page.server.ts
// OmniSvelte auto-generates $models/posts.model
import { Posts } from '$models/posts.model';

// Find
const post  = await Posts.find(1);
const posts = await Posts.query()
  .where('published', true)
  .orderBy('created_at', 'desc')
  .limit(10).get();

// Create / update / delete
const newPost = await Posts.create({ title, slug, content, userId });
await post.update({ title: 'New title' });
await post.delete();

// Relationships (eager loading)
const full = await Posts.with(['author', 'comments']).find(1);

OmniSvelte vs plain SvelteKit

Same foundation. Everything you'd add manually — already wired in.

Feature OmniSvelte Plain SvelteKit
SvelteKit routing
Database ORM DIY
Schema codegen (Drizzle + Zod + Models) DIY
Auth pre-wired DIY
Virtual module aliases DIY
Model relationships DIY
Lifecycle hooks DIY
Plugin system DIY
Works with any SvelteKit adapter
Roadmap

Built for the long term

OmniSvelte starts with a solid foundation and grows incrementally — AI primitives, caching, realtime, payments, jobs, and more.

AI PrimitivesLocal-FirstRealtimePaymentsJobsFile StorageCLICaching
Full Roadmap

v0.1.0-alpha · Now

Core Foundation

Schema codegen, Drizzle models, Better-Auth, virtual modules, Plugin API types, Vite plugin

v0.2–v0.3 · Soon

CLI, DX & UI

omni generate remote, resource CRUD generation, Auth session live query, shadcn-svelte UI

v0.4–v1.0

Production Readiness

Realtime channels, caching, background jobs, payments, file storage, plugins

v1.1+

Ecosystem & AI

AI primitives, Local-first sync, Tauri desktop adapter, African infrastructure

Open Source · MIT License

Start building today

Free, open source, and ready to use. Add OmniSvelte to any SvelteKit project in minutes.