Shibin Das
I design and build tools that make people's lives simpler.
Right now that means FlowDrop, Atelier and Sutram: open-source tools for people who build and run websites, and for the AI agents that increasingly help them. I write about how they’re made, what they cost, and what I got wrong.
What I’m building
- FlowDrop™
Draw a workflow, then run it. A visual workflow editor for Svelte, with a Drupal module suite on top.
- Atelier CMS
A website you build by talking to it. Built on Drupal, runs on your own machine, and keeps your content and your AI keys yours.
- Sutram
Gives a web app a command line, for people in a console and for AI agents as tools. Press Ctrl K or Cmd K on this site to try it.
- drupal-jsonapi-params
Write Drupal JSON:API queries as code instead of hand-built URLs. A TypeScript library for filters, sorting, includes and paging.
Latest writing
-
Engineering 5 min
Paid For, Then Published: How We Release Open SourceMost of the open source we release starts as a feature a client project needed and paid for. We ship it in small, frequent releases under semantic versioning, so older projects stay on the version they were built on and upgrade when they choose. Why that works, and where it bends.
-
FlowDrop 12 min
FlowDrop Workflow Specification 1.0: Why a Workflow Engine Needs a SpecFlowDrop now has a published, implementation-independent workflow specification: 386 rules with permanent identifiers, conformance fixtures, and a clear answer to absent versus null in JSON. Why we pulled the rules out of the Drupal module, and what a written spec fixes that a test suite cannot.
-
Engineering 14 min
The Upgrade Path Is a Product DecisionAtelier is built for people who have never heard of Drupal and will never open a terminal. That single fact turns 'it upgrades itself' into a veto over the dependency list — and a refactor where I had to say no to modules we wanted, delete code we were proud of, and start reading other people's roadmaps.
-
Drupal 5 min
What Started as a Bugfix: Revision Graph 4.0.0One ring drawn in the wrong place. Chasing it turned into a rewrite — because Drupal stores no parent pointer for revisions, and "parent" means three different things on a translated node.
-
Engineering 17 min
The LLM Read Every Register. The Answer Was a Smell.I gave an AI agent full access to a broken robot. It ran better experiments than I would have, ruled out six causes by measurement, and then wrote 'definitively exonerated' about a part it had no way to inspect. Every correction came from something I knew and it structurally could not — and one of its confident errors nearly went out in a warranty claim.
-
Engineering 7 min
Your llms.txt Isn't Being Ignored — Your Analytics Just Can't See ItA recurring claim: 'I added llms.txt and nothing reads it — zero hits.' Almost every time, the zero comes from checking the wrong instrument. Client-side analytics is structurally blind to a plaintext file fetched by a bot. Here's why, and where the real answer lives.
Latest study
Study 0002 Decided
Absent, null and emptyWhat a missing key, a null and an empty value each mean in the FlowDrop spec, so every implementation reads them the same way.