effect
Effect-TS Best Practices
Opinionated patterns for Effect-TS codebases. Effect provides typed functional programming with composable errors, dependency injection, and observability.
Critical Rules
- NEVER use
anyor type casts (as Type) - UseSchema.make()for branded types,Schema.decodeUnknown()for parsing - Don't use
catchAllwhen error type isnever- No errors to catch - Never use global
Errorin Effect channels - UseSchema.TaggedErrorfor domain errors - Ban
{ disableValidation: true }- Lint against this - Don't wrap safe operations in Effect - Only use
Effect.try()for throwing operations - Use
mapErrornotcatchAllCause- Distinguish expected errors from bugs - Never silently swallow errors - Failures MUST be visible in the Effect's error channel E
Quick Reference
| Pattern | DON'T | DO |
|---|---|---|
| Service definition | Context.Tag |
Effect.Service with dependencies array |
More from michaelvessia/nixos-config
proxmox
|
15mermaid-to-png
Convert mermaid diagrams in markdown files to PNG images. Use when the user wants to export markdown with mermaid to formats that don't support mermaid (Google Docs, PDF, etc).
14paperless
Search and manage documents in Paperless-ngx document management system. Use when the user asks about documents, invoices, receipts, tax forms, bills, or wants to search their document library.
13obsidian-save
|
12qmd
|
11home-assistant-manager
Expert-level Home Assistant configuration management with efficient deployment workflows (git and rapid scp iteration), remote CLI access via SSH and hass-cli, automation verification protocols, log analysis, reload vs restart optimization, and comprehensive Lovelace dashboard management for tablet-optimized UIs. Includes template patterns, card types, debugging strategies, and real-world examples.
11