Soko Commerce
Headless commerce on .NET 9 with CQRS, its own identity server, search and durable workflows
Soko is a multi-channel commerce platform with separate admin and storefront APIs, an identity server and a React admin dashboard. I contributed to the backend and the dashboard as part of a larger team.
The problem
Merchants needed one catalogue that could sell through several channels, with variants, facets, collections, promotions, auctions and stock across locations.
What I built
A clean architecture solution with Domain, Application, Infrastructure, Identity, Admin API and Storefront API projects. Application logic lives in MediatR handlers. Domain events project changes into Elasticsearch, Temporal runs asset and indexing workflows, and OpenIddict issues tokens with Google and Facebook sign-in.
Results
- Three API hosts run on a staging server behind Traefik with Let's Encrypt, deployed by GitHub Actions on every push to develop.
- Admin dashboard ships in several languages through Lingui.
Features
- Products, variants, facets and collections
- Orders, customers, suppliers and stock locations
- Promotions, taxes, zones and shipping
- Auctions
- Runtime-configurable custom fields
- Elasticsearch-backed search
- Customer clustering experiments with ML.NET
How it's put together
About 170 MediatR handlers across feature folders, three API hosts and a supporting stack of PostgreSQL, Elasticsearch, Redis, Temporal and MinIO.
- OpenIddict authorization server with external Google and Facebook providers
- Hangfire for background jobs and Temporal for long-running workflows
- React dashboard with TanStack Router, TanStack Query and Lingui
Related projects
Web apps2025E.D.G.E school management system
Genesis AI Labs
School platform covering registration, attendance, marks, fees and timetables, with a DDD backend and a React admin
Led the buildNestJSMikroORMPostgreSQL+13
Backends & APIs2026Beep Call
Telecom low-balance service
Real-time call-record processing that turns failed low-balance calls into call-me-back SMS and flash calls
Solo buildJavaSpring BootKafka+9
Web apps2025Team Pulse website
Team Pulse
Marketing, docs and pricing site for a team chat product, with two CMSs and push-to-deploy on Docker
ContributorNext.jsReactTailwind CSS+8