Cav
Cav is a collection of powerful primitives for building full stack web apps with Deno. Guiding principles:
- POLA
- Modular, maintainable server definitions
- No-fuss data serialization
- Automatic end-to-end typesafety
- Use The Platform
Status: Ready to play with, but not ready for production.
Goals
- It should come with everything a modern web server might need, without relying
on third-party services (minus the database)
- Routing
- Static asset serving
- Signed cookies and JWTs
- Web sockets
- Form and JSON parsing / validation
- De/serialization of most data types, including Files, Dates, Maps, etc.
- Dev-time bundling for TypeScript assets
- Works with frontend frameworks like Preact
- “Hello world” should be as easy as
deno run
ning a tinyserver.ts
- Zero config
- Zero CLI commands
- The client-side API should use types imported from the server to fully type
requests and responses
- End-to-end typesafety
- Compatible with Zod data parsers
- Its syntax should be functional and declarative
- Immutable, schema-like Router and Endpoint definitions
- No hidden context
- No middleware
-
No magicYes magic 🧙♂️
- Production deployments should be a simple git-commit-push
- Deno Deploy without a build step
- It should minimize the threat of supply chain attacks
- Zero third-party dependencies