SOUNDTRACK // IRON UNDER PRESSURE
JEZWEB // GRID OSv2026
JEZWEB

> product // tuesday // the making of

Tuesday
how it was made.

Tuesday is the project management tool Jezweb built to replace monday.com, and then actually used. Every feature in it was requested by someone doing real work, and every commit came because the previous version wasn't good enough. It has been the studio's daily driver since March 2026.

253
commits
12
weeks of daily use
~50
April 13 alone
1
repo, one team, all in

The short version

It started with an MVP on 7 March 2026, boards, tasks, workspace navigation, and an immediate import from monday.com so the team could actually switch. Then followed nine sprints across a single weekend, and then the unglamorous part: twelve weeks of the studio using it every day and filing what broke. Time tracking that didn't persist. Route collisions that made the people picker always empty. A notification webhook so noisy it had to be turned off and rebuilt as an hourly digest. Each bug is in the log with a real reason behind it.

By April the platform had grown into something large: automations, a test suite seeded from zero to 47 test-covered helpers, a full AI summary and attachment-extraction pipeline running on Cloudflare Workers AI, short share links, paste-from-spreadsheet bulk import, and board templates with sample items. The test count and the fix count rose together: the more real work ran through it, the more precisely the gaps were defined.

● Mar 2026: first light

MVP and the leap

The first commit was 'Tuesday PM MVP with 8 batches of UX improvements', already on its eighth revision before it was in the log. Within days it had workspace detail pages, breadcrumbs, and a Monday.com import so the team could actually switch rather than just evaluate. Auto-provisioning for domain-matched users followed, along with Google Chat notifications and PDF export. It was a platform before the month was out.

● Mar–Apr 2026: friction finding

The bugs that come from real use

The route collision that made the people picker always empty, '/users' was being swallowed by '/:boardId'. Time tracking that accepted entries but didn't persist them. The Google Chat webhook firing on every event, which had to be disabled and rebuilt as a batched hourly digest. These are the bugs you only find by using the thing: not edge cases, but the second thing every new user tries.

● Apr 13–15, 2026: the sprint

97 commits in two days

The two biggest days in the repo: 50 commits on April 13, 47 on April 15. Folders, kanban improvements, calendar enhancements, a full filter rewrite with OR-logic, persistent view state, deep-linking into items via URL, inline image paste in comments, dark-mode polish, accessibility fixes, and a test suite grown from zero to 14 tests in a single session. The pace was possible because the bugs were already documented: the team had been using it for weeks.

● Apr–May 2026: growing up

Test suite, AI summary, email notifications

April closed with email notifications via Cloudflare's send_email binding and a triple-ship that closed three open issues at once. May brought paste-from-spreadsheet bulk import, board templates with sample items, soft-delete for boards, and a short share-link feature. The test suite kept growing, CSV export helpers, date badge logic, filter matchers, column visibility storage, until the ratio of tests to features started to feel like a product people trusted.

● May 2026: attachment intelligence

AI reads your files

The biggest single feature stretch: an attachment-extraction pipeline that sends uploaded files through Workers AI to extract text and describe images, then makes the results visible through the comments-attachments shape. Images went through Gemma 4 for vision description; PDFs through a text extractor; audio through Whisper. Multiple rollbacks in the log: a CF IMAGES normalisation step caused 100% extraction failure and was reverted; llava-1.5 was swapped for gemma-4 mid-flight. The pipeline shipped after two weeks of defensive fixes.

● Jun 2026: steadying

Polish and propagation

Three commits in June so far, all polish: scrollbar gutter in the rich text editor, vision description and extraction completeness propagated through the comments-attachments API shape, magic-byte content sniffing and filename slugification on upload. The platform is in daily use; the commits are narrower and more deliberate.

git log: “fix: 14 dogfood fixes for Monday.com replacement readiness”

March 20, 2026, thirteen days after the first commit. The tool was already being used to run the studio, and the team was already filing what needed to change.

Tried, measured, set aside: the judgement lives here as much as in what shipped.

● rebuilt

Google Chat webhook, per-event to hourly digest

Per-event notifications went in on March 19 and were disabled six days later: 'too noisy'. The replacement was a batched hourly card per workspace, with further formatting work in April. The pattern (ship, feel the friction, replace) is the build loop in miniature.

● rolled back

CF IMAGES normalisation before vision extraction

An attempt to normalise images via the Cloudflare Images binding before sending them to Gemma 4 caused 100% image-extraction failure. The commit is explicit: 'revert IMAGES normalisation, caused 100% image-extraction failure regression'. Tried, measured, reverted.

● dropped

tuesday-mcp stub

'chore: remove dead tuesday-mcp stub': an MCP integration was started and abandoned before it left a stub. The log records the removal, not the attempt.

Want something built like this?

This is how we work: in the open, measured, honest about the dead ends.