Marketplace
Browse and adopt engineering standards, rules, and configurations. Fork to customize for your organization.
Handle Results and Options properly
rust
No `.unwrap()` in production. Use `?` operator, `map`, `and_then`. `expect()` only with good messages.
Never ignore failing tests
testing
Fix failures immediately. No skipping, no "pre-existing issues." Own the codebase stateāa test suite with ignored tests can't be trusted.
Understand ownership and borrowing
rust
Prefer borrowing (&T, &mut T) to avoid moves. Use ownership for transfers. Clone for small Copy types is fine. Lifetimes express relationships, don...
Use anyhow and thiserror for errors
rust
`anyhow::Result` for applications (easy error propagation). `thiserror` for libraries (custom error types). context() for error messages.
Use Cargo for package management
rust
Cargo.toml for deps, Cargo.lock (commit it). `cargo add` for new deps. Workspace for monorepos.
Use cargo test for Rust
rust
`cargo test` for all tests. Doc tests in comments. Integration tests in tests/. `#[cfg(test)]` modules.
Use clippy and rustfmt
rust
`cargo fmt` before commit. `cargo clippy` with `-D warnings` in CI. Fix all warnings.
Use Tokio for async runtime
rust
Tokio for async I/O. `#[tokio::main]` for entry point. Use tokio::spawn for concurrent tasks. Async channels for communication.
Use Django forms for validation
django
Forms/ModelForms for input validation. Clean methods for business logic. Never trust request.POST directly.
Use Biome for JS/TS linting and formatting
linting
Biome: fast all-in-one linter+formatter. Replaces ESLint+Prettier. Single config. Rust-based.
Use derive macros for common traits
rust
`#[derive(Debug, Clone, PartialEq)]` for structs. Use `thiserror` for error types, `serde` for serialization.