{"id":20396858,"url":"https://github.com/compasjs/compas","last_synced_at":"2026-02-26T11:03:55.756Z","repository":{"id":36961318,"uuid":"260295430","full_name":"compasjs/compas","owner":"compasjs","description":"Unified backend tooling","archived":false,"fork":false,"pushed_at":"2025-06-05T09:07:10.000Z","size":21646,"stargazers_count":13,"open_issues_count":3,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-05T16:45:31.594Z","etag":null,"topics":["api-client","compas","generator","nodejs","query-builder","router","types","validators"],"latest_commit_sha":null,"homepage":"https://compasjs.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/compasjs.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-30T19:03:52.000Z","updated_at":"2025-06-05T09:01:40.000Z","dependencies_parsed_at":"2023-07-23T21:56:24.326Z","dependency_job_id":"b1fd3402-123a-43fb-a90a-a36004eeee8a","html_url":"https://github.com/compasjs/compas","commit_stats":{"total_commits":4065,"total_committers":12,"mean_commits":338.75,"dds":0.4194341943419434,"last_synced_commit":"26b2e8140fedf998943d8fda5afe991df71c59e2"},"previous_names":["lightbasenl/lbu"],"tags_count":309,"template":false,"template_full_name":null,"purl":"pkg:github/compasjs/compas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compasjs%2Fcompas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compasjs%2Fcompas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compasjs%2Fcompas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compasjs%2Fcompas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/compasjs","download_url":"https://codeload.github.com/compasjs/compas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compasjs%2Fcompas/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259857879,"owners_count":22922847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","compas","generator","nodejs","query-builder","router","types","validators"],"created_at":"2024-11-15T04:10:03.215Z","updated_at":"2026-02-03T09:09:58.955Z","avatar_url":"https://github.com/compasjs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/compasjs/compas/blob/main/docs/public/banner.svg?raw=true\" alt=\"Compas.js\" height=\"117\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  Unified backend tooling\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/compasjs/compas/actions/workflows/checks.yml\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://github.com/compasjs/compas/actions/workflows/checks.yml/badge.svg\" alt=\"CI status badge\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/compasjs/compas\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/compasjs/compas/branch/main/graph/badge.svg?token=81D84CV04U\" alt=\"Codecov status\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nAll common components for creating backends, tooling and more in opinionated\npackages; from describing the api structure to testing the end result.\n\n## Maintenance mode\n\nCompas is in maintenance mode. The packages will be maintained for the\nforeseeable future. New features might be added, but some will also be dropped\nin favor of other ecosystem-available libraries. Please don't start new projects\nusing Compas.\n\n## Features\n\n- Code generators for routers, validators, SQL queries, API clients and more\n- Logging, body parser and error handling out of the box\n- Persistence layer with Postgres for files, jobs and sessions\n- An extendable CLI that comes with a test runner and is able to run your\n  database migrations.\n- Structured logging all throughout, giving you insight in the running system.\n\n## Requirements\n\n- Node.js \u003e= 24\n- NPM\n\n## Why\n\nI had a time when I was mostly creating small backends and tools back to back.\nAlways trying to improve them by choosing packages that align better with my\nviews, new features or more opinionated defaults. To capture this flow and\nmaking those backends and tools easier to maintain, Compas was created.\n\nNew features added should fall under the following categories:\n\n- It improves the interface between api and client in some way. An example may\n  be to support websockets in @compas/code-gen\n- It improves the developer experience one way or another while developing an\n  api For example the `compas docker` commands or various utilities provided by\n  @compas/stdlib\n\nAlthough some parts heavily rely on conventions set by the packages, we\ncurrently aim not to be a framework. We aim to provide a good developer\nexperience, useful abstractions around the basics, and a stable backend \u003c-\u003e\nclient interface.\n\n## Docs and development\n\nSee [the website](https://compasjs.com) for the\n[changelog](https://compasjs.com/changelog.html), all available APIs and various\nguides.\n\nFor contributing see [contributing.md](https://compasjs.com/contributing.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompasjs%2Fcompas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompasjs%2Fcompas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompasjs%2Fcompas/lists"}