ALMOST

A weekend of work, and real gaps remain.

A notebook for data work that publishes: SQL and Python in the same document, with the result turned into an app somebody who does not write code can use.

Promptfree, for everyone, and the only version there is
Build the analysis tooling I actually need instead of Hex — and understand the idea worth copying.

**A notebook that becomes an application.** The analysis and the thing a colleague uses are the same document, so the work does not have to be rebuilt to be shared. That is genuinely valuable and it is the part to reproduce; the managed Python environment is what you take on.

STACK
- Marimo or Quarto for the notebook half. **Do not write a notebook engine**
- Node 20+ with Fastify only for scheduling, publishing and access
- SQLite through better-sqlite3 for runs and permissions
- Caddy in front

WHY NOT JUPYTER, HONESTLY
- A traditional notebook stores output alongside code, runs cells in whatever order somebody clicked, and produces a document whose state nobody can reproduce. That is why notebooks have a bad reputation in production
- Marimo stores the notebook as a plain Python file, works out the dependency graph between cells, and re-runs what depends on what changed. That makes it reproducible, diffable and reviewable — and it publishes as an application directly
- Quarto is the other good answer if the output is a document rather than an app
- Either way the notebook is **a file in a repository**, not a blob in a database

THE PUBLISHING HALF, WHICH IS WHAT YOU BUILD
- A published notebook is a URL with inputs at the top and results below, running server-side
- Permissions per notebook, checked on the server: who may view, who may run, who may edit
- Parameters are typed and validated, and a parameter is never interpolated into SQL. **Named parameters, always** — a published analysis that takes a text box is a query box for the whole company
- A run is queued, with a concurrency cap and a timeout. One analyst's cross join must not take the machine down
- Results cached by a hash of the inputs and the notebook version, so ten people opening the same report is one run

THE DATABASE CONNECTION
- Read-only, or a replica. An analysis tool should be incapable of writing
- A statement timeout and a row cap on everything
- Credentials held by the server and never in the notebook. A notebook in a repository with a password in it is a password in the repository forever

SCHEDULING
- A notebook on a cron with a timezone, results stored, and a message with the summary inline rather than a link nobody opens
- Every run recorded with its inputs, its duration and its outcome, so 'why did Tuesday's number differ' is answerable
- Failure alerts to the owner, once, with the error

THE DISCIPLINE THAT MAKES IT WORTH ANYTHING
- **Metric definitions in files, shared with the rest of your reporting**, not redefined in each notebook. Otherwise three analyses give three answers and the meeting is about whose SQL is right
- Notebook in version control, reviewed like code, with the environment pinned so a run in November matches a run in March

WHAT MATTERS MOST
A file-based reproducible notebook and typed parameters. The first is what makes the analysis trustworthy a year later; the second is what stops a published report becoming a hole into your database.

What you lose

  • A notebook that publishes as an interactive application without a rewrite, which is the whole idea
  • A managed compute environment, so nobody maintains a Python installation
  • Scheduled runs with the results shared, and caching between them
  • Collaboration on the same document, which notebooks have always been bad at

If you would rather not build

  • Evidence — SQL and Markdown compiled into a static report site

The escape hatch

open source · no votes, no paid placement

marimo

$0

A reactive Python notebook stored as a file, publishable as an application.

marimo-team/marimofree · open source

Quarto

$0

Publishes notebooks and documents with executable code to many formats.

quarto-dev/quarto-clifree · open source

Why this verdict

our own opinion · changed only by a person

44/100

Verdict kinda at 44: the notebook engines are open and better than anything you would write, and the build is publishing, permissions and scheduling around them. The reproducibility argument is why marimo rather than a traditional notebook.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

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 Hex

answered from the record above

Is Hex free?

No — the plan we track is $36 a month. Team from around $36 per user per month billed annually; a free tier covers a small number of projects.

Can you replace Hex 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 Hex cost?

$36 a month on Team — $432 a year. Recorded 14 Aug 2026.

What do you lose by replacing Hex?

A notebook that publishes as an interactive application without a rewrite, which is the whole idea; A managed compute environment, so nobody maintains a Python installation; Scheduled runs with the results shared, and caching between them; Collaboration on the same document, which notebooks have always been bad at. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Hex?

Yes: marimo, Quarto. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 27 in Analytics

Not sending yet

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

Esc