ALMOST

A weekend of work, and real gaps remain.

A repository for user research: interviews transcribed, passages tagged, themes built out of the tags, and the evidence kept behind every claim.

Promptfree, for everyone, and the only version there is
Build me the research repository I actually need instead of Dovetail.

The product is a database of quotes with tags on them. What makes it valuable is discipline: **every claim traceable to the sentences that produced it.** Build that and the rest is a list.

STACK
- Node 20+ with Fastify, server-rendered HTML with a little vanilla JS
- SQLite through better-sqlite3, WAL mode, FTS5 over transcripts
- whisper.cpp for transcription
- Caddy in front

THE DATA MODEL
- studies: id, name, question, method, started_at
- sessions: id, study_id, participant_ref, held_at, media_path, transcript_status
- segments: id, session_id, speaker, start_ms, end_ms, text
- highlights: id, segment_id, start_char, end_char, text, created_by, created_at — **the quote, exactly as said**
- tags: id, name, group, description, is_deprecated
- highlight_tags: highlight_id, tag_id, applied_by, at
- themes: id, name, statement, confidence, study_id
- theme_highlights: theme_id, highlight_id — a theme is a claim plus its evidence and nothing else
- participants: id, pseudonym, segment_attrs_json — **no names, ever**

GETTING INTERVIEWS IN
- Upload audio or video, transcribe locally with whisper.cpp, diarise into speakers
- The transcript is the working surface: select text, press a key, it becomes a highlight
- Import an existing transcript as text, because half the material always arrives that way

TAGGING WITHOUT THE TAXONOMY ROTTING
- Tags grouped — behaviour, pain, desire, context — and every tag carries a one-line definition. **An undefined tag means two researchers use it differently and the archive stops being comparable**
- Merging tags moves every application and records the merge
- A deprecation flag rather than deletion, so old work is still readable
- Suggest existing tags as somebody types; that alone halves the duplicate rate

THEMES, WHICH ARE THE OUTPUT
- A theme is a sentence somebody is prepared to defend, with the highlights attached
- Show the count of distinct participants, not the count of highlights. **Five quotes from one talkative person is not a pattern**, and this single number prevents the most common research error
- Contradicting evidence attachable to the same theme, and shown. A repository that only stores confirming quotes is a machine for confirmation bias

PRIVACY, BECAUSE THIS IS INTERVIEW DATA
- Pseudonyms in the interface; the mapping to real people kept separately with narrow access
- Redaction on the transcript that also cuts the audio, not just the text
- Retention per study with a sweeper, consent recorded per session, and deletion on request that reaches the media

SHARING
- A finding renders as the statement, the participant count, and the quotes with play buttons
- Read-only links for the rest of the company, which is how research stops being a document nobody opens

WHAT MATTERS MOST
The distinct-participant count on every theme, and defined tags. One keeps the conclusions honest; the other keeps the archive usable after the third researcher joins.

What you lose

  • Transcription, tagging and analysis in one place
  • A tag taxonomy that stays coherent across many researchers
  • Search across years of interviews
  • Sharing a finding with the clips attached

If you would rather not build

  • Notion or Obsidian with a strict template, which many teams actually use
  • A spreadsheet of quotes, honestly, for a study or two

The escape hatch

open source · no votes, no paid placement

whisper.cpp

$0

Local transcription of interviews with no per-minute cost.

ggml-org/whisper.cppfree · open source

Outline

$0

Self-hosted knowledge base to hold and share findings.

outline/outlinefree · open source

Why this verdict

our own opinion · changed only by a person

54/100

Verdict kinda at 54: text, tags and search are easy; keeping a taxonomy coherent across a team is the real work. The participant count on a theme is the guard worth building in.

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 Dovetail

answered from the record above

Is Dovetail free?

No — the plan we track is $29 a month. Channels from around $29 per user per month billed annually; the research plans cost more.

Can you replace Dovetail by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 54 out of 100, build time a weekend. Read what you lose before you decide.

How much does Dovetail cost?

$29 a month on Channels — $348 a year. Recorded 14 Aug 2026.

What do you lose by replacing Dovetail?

Transcription, tagging and analysis in one place; A tag taxonomy that stays coherent across many researchers; Search across years of interviews; Sharing a finding with the clips attached. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Dovetail?

Yes: whisper.cpp, Outline. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 31 in Tasks & project management

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