B2B platform for an industrial equipment distributor
The web platform of SEMO, a Sfax-based distributor of professional tooling and industrial equipment with a catalog of more than 10,000 references. Freelance mission covering the whole chain: frontend, backend, Docker setup and deployment pipelines.
- Role
- Freelance full-stack developer
- Client
- SEMO
- Stack
- Next.js, NestJS, TypeScript, PostgreSQL, Prisma ORM, Docker, React, Docker Compose, CI/CD, Git
Problem
SEMO supplies workshops, construction companies and industrial clients across Tunisia. The company needed a web platform able to carry its catalog and partner brands, and to turn visits into quote requests from professionals.
Architecture
A Next.js frontend over a NestJS API, with PostgreSQL and Prisma for the catalog and quote requests. I built both sides and the infrastructure around them: Docker and Docker Compose for reproducible environments, and CI/CD pipelines that build, check and deploy on every push.
Engineering decisions
One developer, one coherent stack
On a solo mission, a shared TypeScript stack across frontend and backend keeps the mental cost low. Types cross the boundary instead of being redefined on each side, which matters more when nobody else is there to catch the drift.
Pipelines before the first release, not after
Setting up Docker and the deployment pipeline early meant every later change shipped the same way. For a client without an internal tech team, a deployment nobody has to think about is part of the deliverable.
Quality & reliability
Validation at the API boundary, Dockerized environments, and automated build and deployment pipelines so releases stay repeatable and quick.
Outcome
The platform is live at semo.com.tn: catalog, partner brands and quote requests for B2B clients.
Links
- Next.js
- NestJS
- TypeScript
- PostgreSQL
- Prisma ORM
- Docker
- React
- Docker Compose
- CI/CD
- Git