Introduction
Zero-dependency TypeScript utilities for backends
Semola is a toolkit of small, type-safe packages for building backends. Install once, then import only the pieces you need:
import { Api } from "semola/api";
import { mightThrow } from "semola/errors";
import { Queue } from "semola/queue";No runtime dependencies. Validation works with any Standard Schema library (Zod, Valibot, ArkType, and others).
What you can build with
HTTP & Jobs
| You need… | Start here |
|---|---|
| HTTP APIs with OpenAPI | API |
| Background jobs | Queue |
| Typed real-time channels | PubSub |
| Scheduled tasks | Cron |
| Durable multi-step work | Workflow |
Data & Auth
| You need… | Start here |
|---|---|
| SQL / SQLite data access | ORM |
| Redis caching | Cache |
| Authorization rules | Policy |
| Typed translations | i18n |
Utilities
| You need… | Start here |
|---|---|
| Errors without try/catch | Errors |
| Prefixed console or file logs | Logging |
| Interactive terminal input | Prompts |
| Typed command-line programs | CLI |
| Small general-purpose helpers | Extra |
Next step
Getting Started walks through install and a small working API.