Skip to content

AhmadKhan

Independent Directus specialist in Mumbai. I design the data model and the permissions behind it, and I’ve fixed Directus itself six times.

I don’t just build with Directus. I help build it.

Six fixes merged into the Directus core, four extensions on its Marketplace, and client work shipped to Armenia, France, Germany, Mexico, the Netherlands, Portugal, Thailand, Turkey, the UAE and the United States.

Selected work2024–26

Stemma

Source available, reference build, 2026

A family tree is not a tree — cousins marry, and the same ancestor legitimately appears twice in one chart. Stemma stores the graph, enforces it in Postgres, and proves the privacy boundary with 118 checks that are themselves proven able to fail.

Enamel

Source available, reference build, 2026

Not one program but four — a practice website, a patient booking area, the clinical admin, and the worker that sends what the practice promised. Forty-six collections, an append-only clinical record, and 468 checks that try to break it.

Ask for a field. See who gets it.

GET /items/patients/42?fields=allergies

  • Public website403FORBIDDEN
  • Front desk403FORBIDDEN
  • Dentist200Penicillin

Clinical, so the front desk is refused at the API. Going around the admin returns the same 403. The rules come from Enamel; the values are illustrative.

Fixes in the core, tools on the Marketplace.

About

I’m Ahmad Khan, and I work from Mumbai, overlapping comfortably with European and US mornings, for businesses and agencies who need a backend specialist rather than another generalist. The work is Directus, from the data model up: collections and relations shaped by the client’s data instead of a template; roles and permissions down to the field; flows, webhooks and queues; transactional email; REST and GraphQL for whatever frontend comes next; PDFs generated from live data; custom endpoints, hooks and admin interfaces; and Docker deployments anyone can take over. It has run a public archive of Armenian music, multilingual stores, CRMs, internal quality tools and travel sites, for clients in ten countries. If you’re weighing Directus for your next project, tell me what you’re modelling.

In their words

“Ahmad was communicative, patient, and did a good job of showing his work. He provided 2 options and related guidance and then implemented the one we chose. He made videos, took screenshots and hopped on calls to show and review his work and ensure he was on the right track.”

Sar Ashjian

Armenian Record Archive

Submission and approval workflow for a public music archive

“Some people are good at communication and some are good at development. Ahmad has both: his expertise and communication skills helped understand issues and select the best option to fix them. I can highly recommend!”

Bernhard Herbst

Consultancy engagement

“Ahmad is an exceptionally talented individual in the field of web development. His perspective on various topics and problem-solving skills are highly professional. Additionally, he is a very reliable person. I am happy to have met him.”

Fatma Can Yörükoğlu

Code and architecture review

Questions people ask first

When is Directus a better choice than a traditional CMS?
When your content isn't shaped like blog posts. Directus sits on top of a real SQL database and exposes whatever you model — products with variants, bookings with rules, an archive with its own taxonomy — over REST and GraphQL. Traditional platforms make you bend that into pages and posts, then fight the parts that don't fit. If you already know your data model, Directus lets you build it directly.
Can Directus handle a multilingual site properly?
Yes, and it's one of the better reasons to pick it. Translations are part of the data model rather than a plugin, so a new language is configuration rather than a migration. Media can be linked per translation too, so a Japanese page can serve different imagery from the English one. I've shipped a storefront running seven languages including right-to-left Arabic on this model.
Is Directus production-ready for e-commerce and business systems?
It is, provided the permissions model is built properly. Directus separates roles from policies and supports field-level read and write rules, which is what lets several teams share one instance safely. The failure mode I see most often isn't Directus — it's four people sharing one admin account because nobody modelled access at the start.
What happens when I need something Directus doesn't do out of the box?
You extend it. Custom endpoints, hooks and actions cover backend behaviour; custom interfaces, modules, layouts and displays cover the admin UI. I've published four extensions to the Directus Marketplace and have six pull requests merged into the Directus core itself, so when something needs changing at the framework level I can usually do it rather than work around it.
Can Directus be self-hosted, or am I locked into their cloud?
Self-hosting is fully supported and is what I usually recommend when you care about data residency or want to run alongside existing infrastructure. I deploy with Docker and NGINX to any cloud or VPS, and hand over a setup your own team can run. Directus Cloud is a fine option too — the tradeoff is that some extensions, mine included, need a daemon or filesystem access that managed hosting doesn't allow.
Do you take over existing Directus projects?
Often, yes. Typical starting points are a schema that's grown past what it was designed for, a permissions model nobody trusts, or a build that works but nobody can deploy. A short call is usually enough to tell whether the fix is small or whether the data model needs rework — and I'll say which it is plainly.
How do engagements usually work?
Three shapes, most of the time. A short audit of an existing instance with written findings; a scoped build where I own the backend from data model to deployment; or ongoing work alongside your team. The free fifteen-minute call exists to work out which one you actually need — including telling you when it's none of them.

What are you building?

A sentence about the data you’re modelling is plenty. I reply within a day, and I’ll say plainly if Directus isn’t the right fit.

Ahmad Khan

ahmad@khanahmad.com
Mumbai, India, UTC+5:30

Goes straight to my inbox. Never shared. How it’s handled