Skip to content

SloppyCompiler-first TypeScript backend runtime

Build TypeScript APIs, CLIs, local tools, and packaged app artifacts from a compiler-visible app model. Public alpha.

Sloppy mascot

Built for TypeScript

Author handlers in TypeScript. sloppyc reads supported source, extracts routes, providers, capabilities, services, and response shapes, and emits a deterministic Plan the runtime executes.

For editor IntelliSense, install the package as a dev dependency in your app workspace:

npm install --save-dev @slopware/sloppy@alpha

@slopware/sloppy ships TypeScript declarations (.d.ts) for the sloppy entry and supported subpath imports. Editor autocomplete and hover come from your project's tsconfig.json. Sloppy compiler diagnostics are reported separately by sloppy build; a dedicated Sloppy language server is not part of the alpha.

TS

Typed handlers, static metadata

Typed parameter bindings like Route<T>, Body<T>, Service<T>, and Sqlite<"main"> drive Plan extraction and OpenAPI output.

Try it in 30 seconds โ€‹

ts
import { Sloppy, Results } from "sloppy";

const app = Sloppy.create();

app.get("/health", () => Results.text("ok"));

app.get("/hello/{name}", (ctx) =>
    Results.json({ hello: ctx.route.name })
);

export default app;
sh
npm install -g @slopware/sloppy@alpha
sloppy create my-api --template minimal-api
cd my-api && sloppy build
sloppy run .sloppy --once GET /health

Included backend batteries โ€‹

The App Loop โ€‹

sh
npm install -g @slopware/sloppy@alpha
sloppy create my-api
cd my-api
sloppy build
sloppy db migrate .sloppy --provider main
sloppy routes .sloppy
sloppy run .sloppy --once GET /health
sloppy run .sloppy --once GET /users
sloppy openapi .sloppy
sloppy package
sloppy db migrate .sloppy/package --provider main
sloppy run .sloppy/package --once GET /health

That loop creates a project, compiles the supported source into .sloppy/ artifacts, applies the template SQLite migration, inspects routes, runs requests through the runtime, generates OpenAPI from Plan metadata, writes an app package, and proves the package can run outside the source checkout.

What works today โ€‹

  • Templates: api, minimal-api, program, cli, package-api, and node-compat.
  • CLI: create, build, dev, run, package, routes, health, metrics, deps, capabilities, doctor, audit, openapi, db status|migrate, orm migration add|script|status|apply, and jobs for SQLite scheduler table administration.
  • Runtime: Web handler execution and Program Mode entrypoint execution on Windows x64, Linux x64 glibc, macOS arm64, and macOS x64 alpha packages.
  • HTTP: HTTP/1.1, opt-in TLS, and HTTP/2 over TLS ALPN plus h2c.
  • Stdlib: app host, routing, results, services, config, logging, data, ORM, cache, Redis, jobs, workers, filesystem, network, HTTP clients, OS, time, crypto, codec, and schema.

Why Sloppy? โ€‹

Current limits โ€‹

Sloppy is public alpha software. APIs and artifacts can change between alpha revisions. Package support is limited to compatible installed JavaScript that Sloppy can bundle, and Sloppy is not a full Node runtime.

Supported npm platform packages cover Windows x64, Linux x64 glibc, macOS arm64, and macOS x64. Linux arm64, Windows arm64, and musl/Alpine Linux are source-build paths until matching alpha packages ship.

Examples โ€‹

Start with Examples and demo apps. The api, minimal-api, program, cli, package-api, and node-compat templates are the best first places to copy from.

Public alpha. APIs and artifact formats may still change between alpha revisions.