> For the complete documentation index, see [llms.txt](https://rdeneau.gitbook.io/safe-clean-architecture/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rdeneau.gitbook.io/safe-clean-architecture/appendices/resources.md).

# Resources

## Authors

### Brian Berns

* [AlgEff](https://github.com/brianberns/AlgEff) — Algebraic Effects library for F#

### Derek Comartin

* [Task-Based UI](https://youtu.be/DjZepWrAKzM) (YouTube)

### Einar Norðfjörð

* [The Equinox Programming Model](https://nordfjord.io/equinox/)

### James Shore

* [Testing Without Mocks](https://www.jamesshore.com/v2/projects/nullables/testing-without-mocks)

### Jérémie Chassaing

* [Functional Event Sourcing Decider](https://thinkbeforecoding.com/post/2021/12/17/functional-event-sourcing-decider)

### John Azariah

* [Tagless Final in F#](https://johnazariah.github.io/2025/12/12/tagless-final-01-froggy-tree-house.html) (series, 2025)
* [Intent vs Process](https://johnazariah.github.io/2026/03/05/01-your-clean-architecture-has-a-dirty-secret.html) (series, 2026) — Clean Architecture, Free Monad and Tagless Final in C# and F#
* [Choosing Both Sides of the Coin](https://johnazariah.github.io/2026/03/19/choosing-both-sides-of-the-coin.html) (2026) — Parallelism via `Both` in Free Monad

### Jordan Marr

* [Unit Testing Fable & .NET](https://jordanmarr.github.io/fsharp/unit-testing-fable-dotnet/)

### Mark Seemann

* [Pure DI](https://blog.ploeh.dk/2014/06/10/pure-di/)

### Michaël Azerhad

* [LinkedIn profile](https://www.linkedin.com/in/michael-azerhad/)

### Milan Jovanović

* [Screaming Architecture](https://www.milanjovanovic.tech/blog/screaming-architecture)
* [Vertical Slice Architecture Is Easier Than You Think](https://www.milanjovanovic.tech/blog/vertical-slice-architecture-is-easier-than-you-think)
* [What Is a Modular Monolith?](https://www.milanjovanovic.tech/blog/what-is-a-modular-monolith)
* [Why Clean Architecture Is Great For Complex Projects](https://www.milanjovanovic.tech/blog/why-clean-architecture-is-great-for-complex-projects)

### Nick Palladinos

* [Eff](https://github.com/palladin/Eff) — Algebraic Effects library for F#

### Paul Blasucci

* [FaultReport: a Theoretical Alternative to Result](https://paul.blasuc.ci/posts/fault-report.html)
* [You Really Wanna Put a Union There? You Sure?](https://paul.blasuc.ci/posts/really-scu.html)

### Romain Deneau

* [Commitji](https://github.com/rdeneau/commitji) — Conventional commits with emojis
* [F# Computation Expressions](https://dev.to/rdeneau/f-computation-expressions-4ge6) (series, 2025)
* [F# Training](https://rdeneau.gitbook.io/fsharp-training/) — Free e-book

### Roman Dzoukr

* [Feliz.DaisyUI](https://dzoukr.github.io/Feliz.DaisyUI/#/)
* [SAFEr.Template](https://github.com/Dzoukr/SAFEr.Template)

### Roman Liman (atsapura)

* [Fighting complexity in software development](https://github.com/atsapura/CardManagement/blob/master/article/Fighting.Complexity.md#business-logic)

### Scott Wlaschin

* [Domain Modeling Made Functional](https://pragprog.com/titles/swdddf/domain-modeling-made-functional/) (📖 book)
* [Computation Expressions](https://fsharpforfunandprofit.com/series/computation-expressions/) (series, 2013)
* [Dependency Injection](https://fsharpforfunandprofit.com/posts/dependencies-4/) (series)
* [Designing with types: Single case union types](https://fsharpforfunandprofit.com/posts/designing-with-types-single-case-dus/)
* [Map and Bind and Apply, Oh my!](https://fsharpforfunandprofit.com/series/map-and-bind-and-apply-oh-my/) (series, 2015)

### Sergey Tihon

* [F# Advent Calendar in English 2025](https://sergeytihon.com/2025/11/03/f-advent-calendar-in-english-2025/)
* [F# Weekly](https://sergeytihon.com/fsharp-weekly/)

### Thomas Pierrain

* [Outside-In Diamond TDD](https://tpierrain.blogspot.com/2021/03/outside-in-diamond-tdd-1-style-made.html)

### Vladimir Shchur (Lanayx)

* [Dependency injection in F# — The missing manual](https://medium.com/@lanayx/dependency-injection-in-f-the-missing-manual-d376e9cafd0f)

### Zaid Ajaj

* [The Elmish Book](https://zaid-ajaj.github.io/the-elmish-book/) (free e-book)
* [Fable.Remoting](https://zaid-ajaj.github.io/Fable.Remoting/#/)
* [Feliz](https://zaid-ajaj.github.io/Feliz/)
* [Feliz.Router](https://github.com/Zaid-Ajaj/Feliz.Router) (GitHub)

## F# Libraries & Frameworks

* [Elmish](https://elmish.github.io/elmish/) — The Elm Architecture for F#
* [Fable](https://fable.io) — F# to JavaScript transpiler
* [Fantomas](https://fsprojects.github.io/fantomas/) — F# code formatter ([configuration reference](https://fsprojects.github.io/fantomas/docs/end-users/Configuration.html))
* [Feliz](https://fable-hub.github.io/Feliz/) — React DSL for Fable
  * [Feliz.Router](https://fable-hub.github.io/Feliz/ecosystem/Components/Feliz.Router)
  * [Feliz.UseElmish](https://fable-hub.github.io/Feliz/ecosystem/Hooks/Feliz.UseElmish)
* [FsCheck](https://fscheck.github.io/FsCheck/) — Property-based testing
* [FSharp.UMX](https://github.com/fsprojects/FSharp.UMX) — Units of Measure extension for primitive types
* [Giraffe](https://giraffe.wiki) — F# web framework for ASP.NET Core
* [SAFE.Utils](https://github.com/SAFE-Stack/SAFE.Utils)
* [Unquote](https://github.com/SwensenSoftware/unquote) — F# test assertions

## .NET Libraries & Tools

* [ASP.NET Core](https://www.asp.net/core/overview/aspnet-vnext)
* [Stryker](https://stryker-mutator.io) — Mutation testing ([.NET documentation](https://learn.microsoft.com/en-us/dotnet/core/testing/mutation-testing))
* [TUnit](https://tunit.dev/docs/writing-tests/data-driven-overview) — Data-driven testing
* [Verify](https://github.com/VerifyTests/Verify) — Approval/Snapshot testing

## Web Libraries & Tools

* [DaisyUI](https://daisyui.com) — Tailwind CSS component library
* [Playwright](https://playwright.dev/) — E2E testing
* [React](https://react.dev)
* [Tailwind CSS](https://tailwindcss.com)
* [Vite.js](https://vite.dev) — Build tool

## Specifications & Standards

* [Conventional Commits](https://www.conventionalcommits.org/)
* [Gitmoji](https://gitmoji.dev/)
* [Semantic Release](https://semantic-release.gitbook.io/)
* [Semantic Versioning (SemVer)](https://semver.org/)

## Reference Sites

* [Elm Architecture](https://guide.elm-lang.org/architecture/)
* [Microsoft F# style guide](https://learn.microsoft.com/en-us/dotnet/fsharp/style-guide/formatting)
* [The OCaml system release 5.4](https://ocaml.org/manual/5.4/index.html)
  * [Effect Handlers](https://ocaml.org/manual/5.4/effects.html)
  * [Polymorphic Variants](https://ocaml.org/manual/5.4/polyvariant.html)
* [Refactoring Guru](https://refactoring.guru) — Design patterns & code smells
  * [Adapter pattern](https://refactoring.guru/design-patterns/adapter)
  * [Abstract Factory](https://refactoring.guru/design-patterns/abstract-factory)
  * [Builder](https://refactoring.guru/design-patterns/builder)
  * [Primitive Obsession](https://refactoring.guru/fr/smells/primitive-obsession)

## Public APIs

* [FakeStore API](https://fakestoreapi.com/) — Mock e-commerce API
* [Open Library API](https://openlibrary.org/dev/) — Books API

💡 These APIs were found via [Public APIs](https://github.com/public-apis/public-apis), a collective list of free APIs for development and testing.
