About · Salah Boussettah
I build software that still reads well in six months..
I'm Salah Boussettah. I'm building Hisab Digital for Moroccan accountants and SMEs to run on the day the 2026 DGI e-invoicing mandate lands. Full-stack, typed at every seam, Postgres schema to the cursor.
- Origin
I started on a Windows laptop that kept crashing and a shared connection that worked at night. The first thing I learned to do with it was break it - installing dual boots, custom kernels, window managers I couldn't afford bugs from. By the time I started writing real code, the machine was already a tool I'd reshaped, and software felt like something you were allowed to argue with.
University pointed me at web development; curiosity kept me there. JavaScript was the easy in. TypeScript was the first thing that felt professional. Postgres was where I learned that the database is where the product actually lives, everything else is a projection.
After a few years of freelance work - dashboards, B2B tools, a lot of forms that had to ship - I started my own product line. Hisab Digital is the current one, built for the Moroccan e-invoicing mandate that lands in 2026. Alongside it, a steady drip of smaller things: a local-first AI assistant for Linux, a reddit research sandbox, internal tools that stopped being internal.
The common thread is never the stack. It's that I'd rather ship one thing that's legible six months later than three things that nobody can maintain.
- Principles
- 01
Typed at the seams
Every API boundary earns a type. If the schema shifts, the compiler finds the rot.
- 02
Local-first where I can
Products should work when the network doesn't. Cloud is a feature, not a prerequisite.
- 03
Interfaces you can read later
A good UI is the one the team can still understand after it ships.
- 04
Small, consistent surface area
Fewer primitives, used more often, beat a sprawl of one-off widgets.
- On the work
I believe interface work and engineering work are the same work, on a continuum. A schema is a UI for the developer. A button is an API for the user. Treat them with the same seriousness and a lot of the hard decisions answer themselves.
I believe software should be boring where it's load-bearing and interesting where it's visible. Postgres in the middle. React, shaders, motion at the edge. The boring parts are where I spend most of my attention, because the interesting parts are only worth anything if the boring ones work.
I believe in small, consistent surface areas. Fewer primitives, used more often, beat a sprawl of one-off widgets. Ten buttons that feel the same beat one brilliant button and nine afterthoughts.
I believe in shipping slowly and maintaining forever. A product that can't be understood in six months by the team that made it is already a liability. A product that can, is an asset that keeps paying.
Salah Boussettah · MMXXVI
- Influences
A Pattern Language
Christopher Alexander
Still the book I hand people first.
The Art of Unix Programming
Eric S. Raymond
Most of my defaults come from here.
Refactoring UI
Adam Wathan & Steve Schoger
High Output Management
Andy Grove
Thinking in Systems
Donella Meadows
Lusion, Locomotive, Basement
studios
For how interface can feel.
- Path
- 2026-Hisab Digital · B2B e-invoicing SaaS
- 2026-Lumi · Linux-first AI desktop
- 2025Vybe · Consumer product / interaction work
- 2025Redditra · Reddit telemetry sandbox
- 2025Ghost Review · PR review tool
- 2022-Freelance full-stack work (Node, TS, React, Next)
- 2020-Started writing production JavaScript
- Colophon
How this site is put together, for the curious.
- Stack
- Next.js 16 · React 19 · TypeScript · Tailwind v4 · Prisma 6 · Postgres
- Display
- Instrument Serif (Google Fonts)
- Body
- Geist
- Mono
- Geist Mono
- Arabic
- Reem Kufi
- Atmosphere
- Raw WebGL2 fbm-noise shader
- Sound
- Web Audio API
- Host
- Vercel frontend · Postgres on Oracle Cloud VPS
- Media
- Kairo (my own media service on the VPS)
- Signed
Salah Eddine Boussettah.
صلاح الدين بوستة
Morocco