Documentation
Start with Getting started, follow the tutorial to build and deploy an app, then use the how-to guides and package pages as reference.
55 pages
Getting started
Your first API in a few minutes.
-
Getting started with Samveys
This tutorial builds a small HTTP API with one validated POST route and a node:test test using the HTTP kernel’s Fetch API. It uses only packages and value exports present in this repository. playground/ is a scratch …
Tutorial
From svs new to a deployed app.
-
Tutorial: from svs new to a deployed app
This tutorial takes a new employee from an empty folder to a running container. It takes about 30 minutes. You build a small notes API with a database table, a validated route, a test, and a Docker image. Each code bl…
How-to guides
Task guides for one job each.
-
How to issue API tokens
The token guard of @samveys/auth gives each machine client its own token with a list of abilities.
-
How to choose a database engine
SQLite is the default (ADR 0011). It needs no server and works in tests out of the box. Use MySQL (also for MariaDB servers, ADR 0012) or PostgreSQL when you deploy to a shared server.
-
How to deploy with Docker
svs build writes a production build without any config baked in. The same image then runs in every environment, configured only through env vars.
-
How to sign in with OIDC
The oidc guard of @samveys/auth signs users in with the Organization's identity provider, using the authorization code flow with PKCE. Which provider is used is still open. The guard works with any OpenID Connect …
-
How to release a new version
Releases use Changesets with one fixed group, so every @samveys/* package always has the same version.
-
How to protect a browser app
A browser app needs sessions, CSRF protection, and per-client rate limits. Session cookies are Secure, HttpOnly and SameSite=Lax by default.
Packages
One page per @samveys/* package.
- @samveys/admin
- @samveys/auth
- @samveys/broadcast
- @samveys/cache
- @samveys/console
- @samveys/core
- @samveys/database
- @samveys/env-crypt
- @samveys/fastify
- @samveys/flags
- @samveys/graphql
- @samveys/grpc
- @samveys/health
- @samveys/hono
- @samveys/http
- @samveys/http-client
- @samveys/i18n
- @samveys/inertia
- @samveys/inspector
- @samveys/libsql
- @samveys/lsp
- @samveys/mail
- @samveys/mcp
- @samveys/meilisearch
- @samveys/mongodb
- @samveys/mssql
- @samveys/notifications
- @samveys/openapi
- @samveys/opensearch
- @samveys/oracle
- @samveys/orm
- @samveys/payment
- @samveys/queue
- @samveys/scheduler
- @samveys/search
- @samveys/security
- @samveys/session
- @samveys/storage
- @samveys/template
- @samveys/tenancy
- @samveys/testing
- @samveys/typesense
- @samveys/validator
- @samveys/view
- @samveys/vite
- @samveys/vue
- @samveys/webhooks