Sign in

romain-deneau.bsky.social

@romain-deneau.bsky.social
23 followers 2 following 25 posts
PostsRepliesMedia
romain-deneau.bsky.social @romain-deneau.bsky.social · 28/07/2026
📝 New article: Designing a C#-friendly Result type (not just an F# port) The missing union types were the easy part. The real work: implicit conversions, Try-pattern, LINQ query syntax as a result {} block. romain-deneau.hashnode.dev/designing-a-... #csharp #fsharp
romain-deneau.hashnode.dev
Designing a C#-friendly Result type (not just an F# port)
How our mostly-F# team designed a Result type in C# — the missing union types were the easy part; the real work was a C#-idiomatic API.
030
romain-deneau.bsky.social @romain-deneau.bsky.social · 19/06/2026
Major update to the article: • invalid states now unrepresentable in the domain model • a 3rd builder: a CPS continuation monad for if … then return with no else — thanks @borar.bsky.social #fsharp #dotnet #fp
020
romain-deneau.bsky.social @romain-deneau.bsky.social · 17/06/2026
C# developers use early return to avoid nesting. #fsharp doesn't have that — so guard logic keeps adding indentation levels. 📝 New article: how a tiny custom computation {} CE brings early exits back, without giving up functional style. 🔗 romain-deneau.hashnode.dev/a-real-world...
romain-deneau.hashnode.dev
0133
romain-deneau.bsky.social @romain-deneau.bsky.social · 29/04/2026
Most languages let you pattern-match on what data IS. #FSharp lets you pattern-match on what data MEANS. Active Patterns reshape data so you can match on business concepts instead of raw structure. And they compose. 🔗 rdeneau.gitbook.io/safe-clean-a... #DotNet #PatternMatching #FuncProg
rdeneau.gitbook.io
What if your pattern matching could call functions? | Safe Clean Architecture
0175
romain-deneau.bsky.social @romain-deneau.bsky.social · 17/04/2026
What if your compiler enforced your architecture rules? Why choose between Clean, Hexagonal, Vertical Slices, Screaming? Safe Clean Architecture combines all 5 & turns #fsharp file declaration order into compile-enforced layer boundaries #dotnet #CleanArchitecture www.linkedin.com/pulse/what-y...
linkedin.com
What if your compiler could enforce your architecture rules?
Most architecture discussions focus on picking one model — Clean Architecture or Hexagonal or Vertical Slices. In practice, each brings a distinct perspective, and they're more complementary than comp...
051
romain-deneau.bsky.social @romain-deneau.bsky.social · 08/04/2026
In the #TypeScript world, #TanStackQuery has set the standard: no async in components, declarative loading states, and clean error handling. The #FSharp #SAFEStack reaches the same ergonomics — but the compiler enforces correctness across the entire stack. No URL typos. No serialization mismatches.
linkedin.com
What if Your API Calls Were Type-Safe, Auth-Aware, and Translation-Ready — All at Once?
Modern front-end apps juggle three concerns on every server call: fetching data, checking permissions, and loading translations. Most stacks solve each one separately — a fetch library here, an auth m...
161
romain-deneau.bsky.social @romain-deneau.bsky.social · 26/03/2026
Mea culpa: Free Monads in F# can support parallelism. We just need a different implementation! New GitBook page comparing Program pattern variations for domain workflows — Free Monad vs Tagless Final, #FSharp & #CSharp. Featuring @azariah.bsky.social work 🙏 👉 rdeneau.gitbook.io/safe-clean-a...
rdeneau.gitbook.io
Addendum: Pattern Variations | Safe Clean Architecture
251
romain-deneau.bsky.social @romain-deneau.bsky.social · 24/03/2026
Guess how many ways to manage dependencies are used in the Safe Clean Architecture? #CleanArchitecture #FSharp #DotNet #DependencyInjection #FunctionalProgramming #SoftwareArchitecture www.linkedin.com/pulse/9-ways...
linkedin.com
9 Ways to Manage Dependencies in One Architecture
The Safe Clean Architecture is a full-stack F# project that combines Clean Architecture, DDD, and the SAFE stack. While documenting it, I realized it uses 9 distinct dependency management techniques—n...
020
romain-deneau.bsky.social @romain-deneau.bsky.social · 16/03/2026
Discovering a cornerstone of Safe Clean Architecture: Domain Workflows (repost) 📸 Here is a screenshot of the article on LinkedIn, for those who prefer not to use that platform #fsharp #dotnet
120
romain-deneau.bsky.social @romain-deneau.bsky.social · 14/03/2026
Discovering a cornerstone of Safe Clean Architecture: Domain Workflows. www.linkedin.com/pulse/functi...
linkedin.com
Functional Core, Imperative Shell — and what happens when you push it further with F#
Back in 2020, I discovered a powerful architectural idea: separate pure business logic from side effects. Thomas Pierrain wrote about Functional Core, Imperative Shell in the context of hexagonal arch...
000
romain-deneau.bsky.social @romain-deneau.bsky.social · 13/03/2026
📖 After four months of work, the book “Safe Clean Architecture” is now complete 🎉 🔗 Check it out online. rdeneau.gitbook.io/safe-clean-a... #fsharp #free #e-book
Table of contents (extract)
2103
romain-deneau.bsky.social @romain-deneau.bsky.social · 20/12/2025
📢 Announcing the writing of the book “Safe Clean Architecture”, available for free on GitBook to the #dotnet and #fsharp communities, and coming with a demo app already up and running: Shopfoo. 🙏 Thanks to @sergeytihon.com for the #fsadvent calendar. 🔗 rdeneau.gitbook.io/safe-clean-a...
rdeneau.gitbook.io
Welcome | Safe Clean Architecture
1113
Reposted by @romain-deneau.bsky.social
Jordan Marr @jordanmarr.bsky.social · 05/10/2025
Blog post: Tips for unit testing #fsharp Fable apps using .NET: jordanmarr.github.io/fsharp/unit-...
jordanmarr.github.io
Tips for Unit Testing Fable Apps using .NET
3175