Skip to content

Holo-JS

Pick your backend.

Modular backend pieces for Nuxt, Next.js, and SvelteKit. Install what you need. Skip the rest.

What you pick is what you ship.

Why Holo-JS

What your framework doesn't ship.

Routing and rendering come in the box. The rest of a production backend doesn't.

Security

CSRF tokens, rate limits, and CORS policies. The hooks ship with the framework; the runtime that enforces them doesn't.

Data

Frameworks don't pick a database, an ORM, or a migration story. Every app wires it from scratch.

Auth and sessions

Sessions, tokens, password reset, social login. The route is yours. The system behind it isn't shipped.

Background jobs

Queues, workers, and retry logic live outside the request lifecycle. Frameworks don't ship them.

Files and uploads

Local disks in dev, cloud buckets in prod. The bridge between the two is your problem.

Realtime

Channels, listeners, presence, and broadcasts. Every app reinvents the wiring on top of the framework.

Features

Pick the layers your app needs.

No bundled bloat. No defaults you didn't choose. Install one module, install all, or swap drivers. The runtime stays the same.

Database

@holo-js/db

Typed query builder, models, migrations, and seeders.

Auth

@holo-js/auth

Sessions, providers, tokens, and social login.

Session

@holo-js/session

Cookie sessions, stores, guards, and framework-safe session access.

Authorization

@holo-js/authorization

Policies, abilities, gates, and typed permission checks.

Security

@holo-js/security

CSRF, CORS, rate limits, and request protection primitives.

Queue

@holo-js/queue

Background jobs with retries and failed-job tracking.

Cache

@holo-js/cache

Drivers, locks, and query-level caching.

Storage

@holo-js/storage

File storage across local and cloud drivers.

Events

@holo-js/events

Listeners, queued listeners, and after-commit hooks.

Broadcast

@holo-js/broadcast

Realtime channels, auth routes, and Flux helpers.

Realtime

@holo-js/realtime

Typed queries, mutations, subscriptions, and live state wiring.

Forms

@holo-js/forms

Validated server actions with framework adapters.

Validation

@holo-js/validation

Schema contracts, typed parsing, and reusable validation surfaces.

Mail

@holo-js/mail

Mailables, fluent sending, previews, and delivery contracts.

Notifications

@holo-js/notifications

Notification channels, dispatch helpers, and delivery routing.

Media

@holo-js/media

Media collections, conversions, and model file attachments.

Beside, not instead of

Holo-JS works with your framework, not around it.

Keep the routing, rendering, and conventions you already use. Holo-JS adds typed backend services with first-class adapters for each host.

  • NuxtServer routes, Nitro handlers, and auto-imports keep working. Holo-JS plugs into the Nitro lifecycle.
  • Next.jsApp Router, route handlers, and server actions stay the source of truth. Holo-JS adds the backend layer beneath them.
  • SvelteKitEndpoints and form actions are unchanged. Holo-JS provides the runtime services they call into.

Start with one module. Add the next when you need it.

Get started

Holo owns backend runtime concerns. The host framework owns SSR and routing.