monday.com
A weekend of work, and real gaps remain.
A work platform built on boards of coloured columns: teams model whatever they do as rows and statuses, then layer automations, forms and dashboards on top.
Build the work tracker I actually need instead of monday.com — and be honest about what you lose. **What is being bought is that somebody who does not write code can build the whole thing.** That is a real property, and a bespoke tool does not have it. Build when the process is settled and specific; keep paying when the shape changes monthly and the person changing it is not you. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode, with FTS5 - Caddy in front THE DATA MODEL - boards: id, name, description, is_archived - groups: id, board_id, name, colour, position — the coloured sections a board is divided into - columns: id, board_id, key, label, kind, config_json, position — text, number, status, person, date, timeline, checkbox, link, file, formula, mirror - items: real rows in a real table per board, created and altered by generated migrations. **Not a generic key-value store**: real columns mean real constraints, real indexes and a query that stays fast at fifty thousand rows - subitems: one level, and only one. Deeper is where these tools become unusable - item_revisions: id, board_id, item_id, column_key, old_value, new_value, actor_id, at — append-only, and where every report comes from - automations: id, board_id, trigger_json, conditions_json, actions_json, is_active; automation_runs, recorded - views: id, board_id, kind, filters_json, sorts_json, group_by, columns_json THE STATUS COLUMN, WHICH IS THE WHOLE IDEA - A fixed set of labels with colours, defined per board, and that is what people actually manage by - **Every status change writes a revision row.** Time in status, cycle time and 'what is stuck' all come from that table and cannot be reconstructed later. Build it before anything is pretty - A status has a kind underneath the label — not-started, working, done, stuck — so a report can be written once rather than per board VIEWS FROM ONE QUERY BUILDER - Table, board grouped by any status or person, calendar on a date column, and a timeline for anything with a start and an end - Four renderers over one query builder, never four implementations. That decision is the difference between a fortnight and six months - Ordering by fractional positions, not floats, or rows swap places after enough drags AUTOMATIONS, KEPT SMALL - Triggers: a status changed, a date arrived, an item created, a column filled, a schedule - Actions: set a column, move to a group, assign, notify, create an item elsewhere, call a webhook - Every run recorded with its result. An automation that silently does nothing is worse than none - **A per-recipient daily notification cap**, so a loop cannot email somebody four hundred times. An afternoon's work that prevents a very bad day - Three triggers people understand beat twenty they do not FORMS AND INTAKE - A form that creates an item with columns mapped, public or internal, with a honeypot and a rate limit - That is how work arrives from outside the team, and it is the feature that makes a board replace an inbox THE REST - Updates on an item — a thread, with mentions that notify — kept beside the row rather than in chat - Files stored by hash with the type from content - Notifications batched into a digest, mentions immediate - Export everything as JSON and CSV in one command WHAT MATTERS MOST The revision log and real columns. Both are invisible on day one and impossible to add later — and between them they are every report you will ever want.
What you lose
- A board an operations person builds on Monday morning without asking anybody
- Automations and forms configured by clicking, which is what makes it spread through a company
- Dashboards that roll several boards into one view for people who never open a board
- A seat minimum and a per-seat price, which is the cost side of the same coin
If you would rather not build
- A shared spreadsheet, honestly, until the automations start mattering
The escape hatch
open source · no votes, no paid placement
Vikunja
$0Self-hostable tasks and projects with list, board, calendar and Gantt views.
go-vikunja/vikunjafree · open source
Baserow
$0An open database with a spreadsheet interface, forms and an API.
bram2w/baserowfree · open source
Why this verdict
our own opinion · changed only by a person
44/100
Verdict kinda at 44: the tracker is a fortnight, but the property being sold is that a non-developer builds and changes it, which a bespoke tool genuinely does not have.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about monday.com
answered from the record above
Is monday.com free?
No — the plan we track is $12 a month. Standard at $12 per seat per month billed annually, around $14 monthly, with a three-seat minimum.
Can you replace monday.com by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 44 out of 100, build time a weekend. Read what you lose before you decide.
How much does monday.com cost?
$12 a month on Standard — $144 a year. Recorded 14 Aug 2026.
What do you lose by replacing monday.com?
A board an operations person builds on Monday morning without asking anybody; Automations and forms configured by clicking, which is what makes it spread through a company; Dashboards that roll several boards into one view for people who never open a board; A seat minimum and a per-seat price, which is the cost side of the same coin. If any of those carry weight for you, keep paying.
Is there an open-source alternative to monday.com?
Yes: Vikunja, Baserow. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

