---
title: "Hi 👋 I'm Mehdi"
description: Building cool stuff with cool people.
canonical: "https://hiimmehdi.com"
markdown: "https://hiimmehdi.com/index.md"
format: markdown
---

# Hi 👋 I'm Mehdi
Building cool stuff with cool people.
**Contact:** [contact@hiimmehdi.com](mailto:contact@hiimmehdi.com) · Paris, France
## About

Hi I’m Mehdi 👋  
I’m an engineer who loves to build cool stuff with cool people, I always loved the intersection of design and code, make things that are useful, efficient, scalable BUT also pretty.

Day to day that means full-stack and infrastructure: React, Next.js and TypeScript up front; Cloudflare, Supabase, ClickHouse and Kubernetes underneath. Outside of code I shoot photographs and film on Sony ( Currently FX30 and A6700 ), and play piano, guitar and saxophone. Currently in Paris 🇫🇷
## Experience

- **Freelance** — Developer & Designer (5 yrs)
- **Content Creator** — Tech & Education (4 yrs)
- **Cebio** — Marketing & Systems (2 yrs)
- **Fairvision** — Fullstack Developer (3 yrs)
- **Ecomflow** — Infrastructure Lead (Since 2025)
- **Postflows** — Tech Lead (Since 2026)
## Skills

- React
- Next.js
- TypeScript
- React Native
- Node.js
- Express
- tRPC
- Python
- Flask
- GraphQL
- Cloudflare
- Kubernetes
- Supabase
- ClickHouse
- Data pipelines
- Deep Learning & NLP
- C++
- FFmpeg
- Figma
- Adobe Suite
- 3D
## Projects

- [Vithos](https://hiimmehdi.com/projects/vithos.md) — A keyboard-first, local-first mail client for Gmail on macOS. Three keys to learn: up and down to move, A to archive, and the palette. Mail stays in Gmail; Vithos keeps a fast local SQLite index on the machine so search answers as you type and the inbox still works on a plane. Every interaction is held to a 60 FPS, sub-50ms bar. Agents are a first-class surface, not a bolted-on inbox AI: a public API and MCP server give your own assistant scoped, revocable access to search, draft, and file. Vithy, the in-app assistant, drafts and rewrites only when asked, and sending mail stays a human action.
- [OpenCMS](https://hiimmehdi.com/projects/opencms.md) — A modern open-source headless CMS with the editing UX WordPress made famous and the architecture 2026 actually deserves: edge-native, connector-based, and agent-ready. Every infrastructure concern sits behind a small interface — runtime, database, object storage, cache, and where the admin is hosted — so you pick a connector for each layer and run the same TypeScript self-hosted on Bun and SQLite, in Docker, or on Cloudflare Workers with D1, R2 and KV. Content types are data, not code: they live in the database and are edited from the admin while the app is running. Entries sit in one fixed-schema table with a typed JSON payload, validated on the way in by Zod built from the type definition. Adding a field needs no migration and no deploy; fields flagged indexed get a JSON expression index, so filtered queries stay B-tree lookups. Auth is better-auth on the same database: first signup becomes admin, then signup closes, with editor and admin roles, session cookies, and API keys. Anonymous traffic reads published entries only. The admin SPA ships at the same origin as the API, so sessions work with no CORS to configure. Agents are a first-class surface, not a bolted-on integration: the MCP server at mcp.opencms.dev exposes the same validated content and schema services a human uses, so Claude or Cursor can model types, write entries and publish without opening the dashboard. A connector is done only when it passes the shared conformance suite. MIT licensed.
- [Betterflag](https://hiimmehdi.com/projects/betterflag.md) — Feature flags without the seat tax or the MAU bill: unlimited flags, seats and environments, priced on one transparent meter. Create a flag, stage a percentage rollout, or pull the kill switch in minutes instead of sprints, with every evaluation served from the edge in under 100ms. Agents are first-class operators rather than a bolted-on integration: the MCP server has full API parity, so Claude or Cursor can create a flag, target it, roll it out and kill it without anyone opening the dashboard. Every change is scoped to its own agent key and logged with who or what flipped it, so nothing is unattributed and nothing is irreversible. The dashboard stays, as the observation layer.
- [hfaf](https://hiimmehdi.com/projects/hfaf.md) — Algerian barbershop lounge from the Casbah of Algiers. Records play day and night.
- [ecomflow](https://hiimmehdi.com/projects/ecomflow.md) — Rebuilt the company's entire infrastructure into a cheaper, more reliable stack, then redesigned the order & fulfillment data architecture behind it.
- [Nicecam](https://hiimmehdi.com/projects/nicecam.md) — Real-time training app for football coaches, with custom ingestion and playback.
- [Postflows](https://hiimmehdi.com/projects/postflows.md) — Shopify data & automation platform, built from the ground up on Cloudflare, Supabase and ClickHouse behind a native Shopify app.
## Recent writing

- [We made our Vercel builds 5x times faster](https://hiimmehdi.com/writing/we-made-our-vercel-builds-5x-times-faster.md) — Our monorepo had gotten big. A pnpm + Turborepo workspace with a Next.js dashboard, ~40 Cloudflare Workers, and a dozen shared TypeScript packages. And somewhere along the way, "just build it" had quietly turned into a coffee break.
## Photographs

- Untitled — https://cms.hiimmehdi.com/photos/0.webp
- Untitled — https://cms.hiimmehdi.com/photos/1.webp
- Untitled — https://cms.hiimmehdi.com/photos/2.webp
- Untitled — https://cms.hiimmehdi.com/photos/3.webp
- Untitled — https://cms.hiimmehdi.com/photos/4.webp
- Untitled — https://cms.hiimmehdi.com/photos/5.webp
## Also available
- [Writing index](https://hiimmehdi.com/writing.md)
- [Consulting](https://hiimmehdi.com/consulting.md)
- [Resume](https://hiimmehdi.com/resume.md)
- [Photographs](https://hiimmehdi.com/photographs.md)
- [llms.txt](https://hiimmehdi.com/llms.txt)
