Skip to content

mono424/spooky

Repository files navigation

Spooky 👻

The Reactive, Local-First Framework for SurrealDB

⚠️ Under active development — not production-ready. APIs may change without notice.

npm version npm downloads bundle size npm version license stars last commit TypeScript SurrealDB

Documentation · Example App · CLI · Contributing

Features

  • Live Queries — Your UI updates instantly when data changes
  • Local-First — Works offline using IndexedDB, syncs when back online
  • End-to-End Type Safety — Generated TypeScript definitions from your SQL schema
  • Optimistic UI — Immediate feedback for user actions while syncing in the background

Quick Start

Install

pnpm add @spooky-sync/client-solid

Generate Types with CLI

npx @spooky-sync/cli generate

Usage (SolidJS)

import { useQuery } from '@spooky-sync/client-solid';
import { db } from './db';

const ThreadList = () => {
  const threads = useQuery(() => db.query('thread').select('*').all());

  return (
    <ul>
      <For each={threads.data}>{(thread) => <li>{thread.title}</li>}</For>
    </ul>
  );
};

Packages

Package Description
@spooky-sync/core Core client SDK — sync engine, caching, reactivity
@spooky-sync/client-solid SolidJS bindings (useQuery, etc.)
@spooky-sync/query-builder Type-safe query builder
@spooky-sync/cli CLI for schema generation

Example App

Check out the full-featured reference app built with SolidJS:

cd example/app-solid && pnpm install && pnpm dev

Documentation

Full documentation is available at mono424.github.io/spooky.

Contributing

Contributions are welcome! This is a monorepo — see the individual package directories under packages/ for details.

License

MIT


If you find Spooky useful, consider giving it a ⭐ on GitHub!

About

Offline-first sync engine for Flutter & Solid.js

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors