Semola

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 OpenAPIAPI
Background jobsQueue
Typed real-time channelsPubSub
Scheduled tasksCron
Durable multi-step workWorkflow

Data & Auth

You need…Start here
SQL / SQLite data accessORM
Redis cachingCache
Authorization rulesPolicy
Typed translationsi18n

Utilities

You need…Start here
Errors without try/catchErrors
Prefixed console or file logsLogging
Interactive terminal inputPrompts
Typed command-line programsCLI
Small general-purpose helpersExtra

Next step

Getting Started walks through install and a small working API.

On this page