Nyxis
A Lean backend framework that formally proves authorization safety for backends defined by Cedar schemas and policies.
At a Glance
Nyxis core framework is released under the MIT License and can be used, copied, modified and distributed free of charge. Self-hosted; requires your own PostgreSQL (Supabase) and Supabase Auth at runtime.
Engagement
Available On
Listed Oct 2026
About Nyxis
Nyxis is an open-source Lean backend framework from Nyx Foundation, aimed at solo developers who ship web applications written by AI agents. The developer writes and approves only a Cedar schema and policies, and the Lean kernel checks an authorization-safety theorem on every build. The latest listed release is v0.1.1, and the project describes itself as under active development.
What It Is
Nyxis is a backend framework in which authorization is formally verified. Every backend built on it comes with a proof that no sequence of HTTP requests can let an authenticated principal read, modify, delete, or grant access to data beyond its legitimate permissions. The main theorem is Nyxis.Runtime.authorization_safety. Reviewing authorization comes down to reading the schema and policies and confirming that the proof checks.
How the Workflow Works
The developer writes and approves a Cedar schema and policies. The schema doubles as the table definition, with entity types as tables and attributes as columns. Each action carries exactly one effect defined by Nyxis. Handlers, written by hand or by an AI agent such as Claude Code, have the type Nyxis.Handler. Their only effect is calling actions on the authorization layer, so they cannot perform IO or reach the database directly. Running lake build binds the app to the approved sources, audits the application code, and checks the proofs. Clients then call the backend over HTTP with a Supabase Auth JWT.
Effects and Runtime Model
Effects include read, list, insert, update with an explicit column list, and delete. They also cover file storage via signed URLs, email notifications, and external API calls, all routed through the authorization layer and covered by the same theorem. Nyxis derives the principal from the JWT, the resource from the current database row, and the time and unique IDs per request, so handlers cannot forge them. At runtime it needs PostgreSQL (Supabase) and Supabase Auth.
Setup and Samples
Building requires Lean 4 via elan, Python 3.12 or later, the OpenSSL CLI, a C compiler, pkg-config, and libpq and libcrypto development files. Applications pull Nyxis in as a Lake package with require. Two official samples are included: a bulletin board with a Next.js frontend, and a team-docs backend with memberships, roles, attachments, and email notifications.
Current Status
The README says Nyxis is under development and points readers to ASSUMPTIONS.md, which spells out the scope of the guarantee and the assumptions trusted outside the proof, before production use. Most documentation other than the README and ASSUMPTIONS is in Japanese.
Community Discussions
Be the first to start a conversation about Nyxis
Share your experience with Nyxis, ask questions, or help others learn from your insights.
Pricing
Open Source (MIT)
Nyxis core framework is released under the MIT License and can be used, copied, modified and distributed free of charge. Self-hosted; requires your own PostgreSQL (Supabase) and Supabase Auth at runtime.
- MIT License
- Lean backend framework with formally proven authorization safety
- Cedar schema and policies
- Official samples: bulletin-board and team-docs
- Runtime requires PostgreSQL (Supabase) and Supabase Auth (external)
Capabilities
Key Features
- Formally proven authorization safety checked by the Lean kernel on every lake build
- Cedar schema and policies as the only developer-approved artifacts
- Schema doubles as table definition
- Handlers restricted to calling authorization-layer actions with no direct IO or database access
- Effects for read, list, insert, update, delete, file storage via signed URLs, email notifications, and external API calls
- Principal, resource, time, and unique IDs determined by the runtime per request
- HTTP API authenticated with Supabase Auth JWT
- Official bulletin-board and team-docs samples