# Safe Clean Architecture

## Safe Clean Architecture

- [Welcome](https://rdeneau.gitbook.io/safe-clean-architecture/readme.md)
- [Motivations](https://rdeneau.gitbook.io/safe-clean-architecture/motivations.md)
- [Audience](https://rdeneau.gitbook.io/safe-clean-architecture/audience.md)
- [Status](https://rdeneau.gitbook.io/safe-clean-architecture/status.md): Indicates the progress status of the book and its companion app, Shopfoo.
- [Introduction](https://rdeneau.gitbook.io/safe-clean-architecture/shopfoo/introduction.md)
- [General Features](https://rdeneau.gitbook.io/safe-clean-architecture/shopfoo/general.md)
- [Navigation & UI](https://rdeneau.gitbook.io/safe-clean-architecture/shopfoo/navigation.md)
- [Products](https://rdeneau.gitbook.io/safe-clean-architecture/shopfoo/products.md)
- [Product Management](https://rdeneau.gitbook.io/safe-clean-architecture/shopfoo/management.md)
- [Introduction](https://rdeneau.gitbook.io/safe-clean-architecture/architecture/architecture.md)
- [Overview](https://rdeneau.gitbook.io/safe-clean-architecture/architecture/architecture-1.md)
- [Solution Organisation](https://rdeneau.gitbook.io/safe-clean-architecture/architecture/1-solution-orga.md)
- [Principles](https://rdeneau.gitbook.io/safe-clean-architecture/architecture/2-principles.md)
- [Introduction](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/1-introduction.md)
- [Dependency Injection](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/1-introduction/1-dependency-injection.md)
- [Dependency Interpretation](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/1-introduction/2-dependency-interpretation.md)
- [Free Monad](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/1-introduction/3-free-monad.md)
- [Algebraic Effects](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/1-introduction/4-algebraic-effects.md)
- [Tagless Final](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/1-introduction/5-tagless-final.md)
- [Program](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/2-program.md)
- [Addendum: Pattern Variations](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/2-program/pattern-variations.md)
- [Domain Project](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow.md)
- [Domain Model](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow/0-domain-model.md)
- [Instructions](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow/1-instructions.md)
- [Workflows](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow/2-workflows.md)
- [Data](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow/3-data.md)
- [Api](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow/4-api.md)
- [Conclusion](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/3-domain-workflow/5-conclusion.md)
- [Tests](https://rdeneau.gitbook.io/safe-clean-architecture/domain-workflows/4-tests.md)
- [Elmish](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/elmish.md)
- [SAFEr template](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/elmish/safer-template.md)
- [Data flow](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/elmish/data-flow.md)
- [Tests](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/elmish/tests.md)
- [Navigation](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/navigation.md)
- [Notifications](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/notifications.md)
- [Remoting](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/remoting.md)
- [Security](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/security.md)
- [Translations](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/translations.md)
- [Validation](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/validation.md)
- [Versioning](https://rdeneau.gitbook.io/safe-clean-architecture/front-end/versioning.md)
- [Index](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks.md)
- [As active pattern](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/as-active-pattern.md)
- [F# formatting with Fantomas](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/fsharp-formatting.md)
- [Better assertions](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/better-assertions.md)
- [Lightweight FsCheck generators](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/lightweight-fscheck-generators.md)
- [Parameterized tests: mirror enums](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/parameterized-tests-mirror-enums.md)
- [Strongly-typed identifiers](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/strongly-typed-ids.md)
- [Type hierarchy without OOP: SKU](https://rdeneau.gitbook.io/safe-clean-architecture/tips-and-tricks/tips-and-tricks/sku-type-hierarchy.md)
- [Resources](https://rdeneau.gitbook.io/safe-clean-architecture/appendices/resources.md)
- [Outreach](https://rdeneau.gitbook.io/safe-clean-architecture/appendices/outreach.md)
- [What if your pattern matching could call functions?](https://rdeneau.gitbook.io/safe-clean-architecture/appendices/outreach/active-patterns.md)
