Skip to content

compasjs/compas

Repository files navigation

Compas.js

Unified backend tooling

CI status badge Codecov status


All common components for creating backends, tooling and more in opinionated packages; from describing the api structure to testing the end result.

Features

  • Code generators for routers, validators, SQL queries, API clients and more
  • Logging, body parser and error handling out of the box
  • Persistence layer with Postgres for files, jobs and sessions
  • An extendable CLI that comes with a test runner and is able to run your database migrations.
  • Structured logging all throughout, giving you insight in the running system.

Requirements

  • Node.js >= 16
  • Yarn 1.x.x / NPM

Why

I had a time when I was mostly creating small backends and tools back to back. Always trying to improve them by choosing packages that align better with my views, new features or more opinionated defaults. To capture this flow and making those backends and tools easier to maintain, Compas was created.

New features added should fall under the following categories:

  • It improves the interface between api and client in some way. An example may be to support websockets in @compas/code-gen
  • It improves the developer experience one way or another while developing an api For example the compas docker commands or various utilities provided by @compas/stdlib

Although some parts heavily rely on conventions set by the packages, we currently aim not to be a framework. We aim to provide a good developer experience, useful abstractions around the basics, and a stable backend <-> client interface.

Docs and development

See the website for the changelog, all available APIs and various guides.

For contributing see contributing.md.