- Rust 83%
- Svelte 13.7%
- JavaScript 1.5%
- TypeScript 1%
- Shell 0.5%
- Other 0.2%
crates.io docs.rs dependency status License: AGPL v3
A web server, CMS, proxy, cache, auth provider, database, edge runtime, and observability platform, all rolled into one.
(or at least that's the goal...)
Details
- Storage built atop LMDB ⚡️
- API and App servers written in Rust 🦀
- Guest code execution sandboxed with wasmtime 🕸️
- Cross-platform Studio UI built using Tauri & Svelte 💻
- Authentication extends the OPAQUE protocol 🔐
- Efficient log indexing/querying via tantivy 🐎
Structure
| API 🛠️ (api.example.com)
| auth 🔒
| monitor 📊
| App(s) 🌐 (you.example.com)
| templates 📄
| storage 💾
| assets 🖼️
| content 🔤
| cache ⏳
| models 🗄️
| secrets 🔑
| auth 🔒
| actions 🎬
| integrations 🔗
| App Clients 📱
| templates 📄
| assets 🖼️
| events 🪵
| flags 🚩
| auth 🔒
| actions 🎬
Features
- Automatic TLS with Let's Encrypt
- Strict Content Security Policy with reports on by default
- Route-level CSP, CORS, timeout and caching configuration
- Templates escape runtime string values by default
- Actions and Templates can only access host fns allocated by the App Server
- Client-signed tokens for all API interaction
- Time-based one-time passcode MFA
- Single or multi-tenant daemon configuration
- Support for CNAMEs with built-in DNS record validation
- Templates compiled and validated at build time
- Rust and JavaScript language support for Actions (more to come)
- HTTP and pre-compressed, server-side persisted caching
- Client-side events using the beacon API
Documentation
Getting Started
Install
Rust and WebAssembly components.
## rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
ordinary CLI and ordinaryd server.
## ordinary CLI
cargo install ordinary@0.6.0-pre.9
## ordinary daemon
cargo install ordinaryd@0.6.0-pre.9
## system components
oridnary doctor --fix wasm,wasm-opt
Build
ordinary build -p ./examples/static -vv
Run
ordinaryd app -p ./examples/static --port 8080 --insecure
View at http://localhost:8080.
Help
Run the help command to see what other flags can be set (e.g. --stdio-logs).
ordinaryd app --help
Using Containers
Build
docker build -t ordinaryd .
Run
(after ordinary build -p ./examples/static).
docker run -p 8080:80 -v ./examples/static:/ordinaryd/project:ro ordinaryd
'AI' Usage
The authors of this project do not use 'AI', "agents", LLMs, or generative models of any kind, and are not interested in contributions produced by anything other than real, human, people.
Social
- Mastodon: @ordinary
License
Copyright 2026 Ordinary Labs, LLC
Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html
Security
THIS CODE HAS NOT BEEN AUDITED OR REVIEWED. USE AT YOUR OWN RISK.
Refer to the Security Policy.