Thank you for contributing! This repo defines and grows the Open Function Spec (OFS) — a universal standard for composable TypeScript backend modules.
There are two ways to contribute:
- Improve the Spec — propose clarifications, additions, or new compliance levels.
- Add an Example — contribute a reference implementation under
examples/.
Examples in this repo must be self-contained, copy-pasteable, and spec-compliant.
Before opening a PR, verify:
- Module lives in
examples/<your-module-name>/ -
schema.tsuses Drizzle ORM — no raw SQL strings -
core.tshas no framework imports (hono,express, etc.) -
core.tshas noprocess.env— passes viactx.envonly -
core.tsthrowsError, never returns HTTP responses -
adapter-hono.tsworks on Cloudflare Workers -
README.mdlists endpoints, env vars, and DB tables - Passes
npx tsc --noEmit(no TypeScript errors)
- Open an issue using the Spec Change Proposal template.
- Describe the problem, the proposed rule change, and the migration path.
- Get discussion/approval from maintainers before opening a PR.
examples/<module-name>/
schema.ts — Drizzle table definitions
core.ts — Pure business logic
adapter-hono.ts — Hono adapter (Cloudflare Workers)
adapter-express.ts (optional) — Node.js adapter
README.md — Usage, endpoints, env vars
- TypeScript only (
.tsextension). - Explicit return types on all exported functions.
- JSDoc comments on exported functions explaining params and return values.
- No
anytypes in exported signatures.
- Questions? Start a Discussion.
- Found a bug in the spec? Open an Issue.
- Registry: hub.aerostack.dev
MIT License. All contributions are licensed under the same terms.