Mehdi Chioukh

Hi ๐Ÿ‘‹ I'm Mehdi

Building cool stuff with cool people.

Selected work

Full resume โ†’
Vithos ยท vithos.appvithos.app

VithosBuilding

Founder ยท 2026

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.

  • 3 keysup, down, A โ€” the rest is the palette
  • <50mslocal index, search as you type
  • MCPscoped API so your agent can work the inbox
ElectronReactTypeScriptSQLiteGmail APICloudflare WorkersMCPBetter Auth
View project
OpenCMS ยท opencms.devopencms.dev

OpenCMSBuilding

Founder ยท 2026

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.

  • 5 layersone connector each: runtime, data, storage, cache, hosting
  • 0 migrationscontent types are data โ€” add a field, no deploy
  • MCPsame validated services for humans and agents
TypeScriptHonoCloudflare WorkersD1BunSQLiteMCPReactbetter-auth
View project

Also

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

  1. 5 yrs

    Freelance

    Developer & Designer

  2. 4 yrs

    Content Creator

    Tech & Education

  3. 2 yrs

    Cebio

    Marketing & Systems

  4. 3 yrs

    Fairvision

    Fullstack Developer

  5. Since 2025

    Ecomflow

    Infrastructure Lead

  6. Since 2026

    Postflows

    Tech Lead

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

One short email, every other Sunday.

A few hundred words on what I'm building, a thing I read, and one photograph. No tracking, no upsells, unsubscribe with one click.