finds.dev← search

// the find

bespoyasov/frontend-clean-architecture

★ 2,590 · TypeScript · updated Jan 2025

React + TypeScript app built using the clean architecture principles in a more functional way.

A reference implementation showing how to structure a React + TypeScript app around clean/onion architecture (domain, application, adapters, UI) done in a functional style rather than classes and DI containers. It's aimed at frontend devs who've read about Clean Architecture/DDD on the backend and want to see what it looks like translated to a React app, not at teams looking for a production starter.

The layering is concrete, not just diagrammed — domain/, application/, services/ (adapters), and ui/ map directly to folders, and ports.ts shows real interface boundaries with separate adapter implementations for auth, payment, storage, and notifications. The accompanying long-form post walks through the actual design decisions instead of just dumping code. The README is unusually honest about its own shortcuts (shared kernel coupling, a domain function reaching for currentDatetime, hand-rolled DI) rather than pretending the example is a canonical, production-ready pattern.

No tests anywhere in the tree despite 'testability' being one of the architecture's main selling points — the author even admits in the README that orderProducts is still framework-coupled through the hook and can't be tested in isolation, which undercuts the pitch. DI is done by hand via hooks-as-a-container, which doesn't scale past a toy app and isn't shown solved, just acknowledged. It's a single-author demo app (ordering cookies/pizza) with no CI config visible and no commits since Jan 2025, so there's no evidence the patterns were pressure-tested on anything bigger than this sample.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →