Vibecode Debriefing

track this build4 phases, 12 steps, beginner friendly
KINDA · weekend project
price $80/moyou'd save $960/yrbuild time multi-daycategory 📡 rss & researchreplaced by 0 people

Diffing a competitor's pricing page on a cron and asking a model what changed is genuinely an afternoon. changedetection.io will do the watching for you before you write a line. The gap is everything between a diff and a brief. Most page changes are noise: a rotated testimonial, a reordered nav, a CDN hash. Deciding which changes are real, tying them to hiring and funding signals, and turning that into three sentences a founder acts on is judgement encoded over many iterations. Build it and your first month is mostly you deleting alerts about nothing.

the project pack5 files · written for this build, step by step
README.md
# Debriefing · indie build

A local competitor watch whose hard problems are telling a real change from a rotated testimonial, keeping every claim traceable to a stored snapshot, and keeping enough history that a single diff eventually reads as a trend.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Node 22 with TypeScript, a command line only, run from a scheduler | there is no interface worth building before the noise is under control |
| Fetching | A headless browser for pages that render client-side, one request per URL per run | half of a modern pricing page does not exist in the HTML |
| Storage | SQLite for snapshots, diffs and briefs, with the extracted text stored, not screenshots | text diffs, compresses and searches; a screenshot does none of those |
| Extraction | A versioned recipe that turns a page into plain text | a change to your own extractor must not look like five competitors relaunching at once |
| Brief | One model call over the surviving diffs, every bullet required to cite a snapshot | an uncited sentence is a guess with good grammar |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Node.js 22 or newer** · free
  - Why: Runs the fetcher, the differ and the brief generator.
  - Get it: nodejs.org, or nvm install 22.
  - Verify: node --version prints v22 or higher
- [ ] **A headless browser with its runtime dependencies** · free
  - Why: A pricing page that renders client-side is empty in the HTML, and that is the page you most want to watch.
  - Get it: Install a browser automation library and let it download its browser binary.
  - Verify: A client-rendered page yields the same text a human sees
- [ ] **An API key for a language model** · pennies per brief at a handful of competitors
  - Why: The brief is one call per window and it needs a ceiling before it needs anything else.
  - Get it: Create a key with its own spend limit.
  - Verify: One brief generates and the token cost is recorded
- [ ] **Your competitor list and the URLs that matter** · free
  - Why: Watching the wrong four pages produces a brief about nothing, and the choice is judgement rather than code.
  - Get it: For each rival, pick the homepage, the pricing page, the changelog and the careers page, and check each one is public.
  - Verify: Every URL is permitted by that host's robots.txt and returns content
- [ ] **SMTP credentials or a webhook you control** · free at one message a week
  - Why: A brief you have to remember to read is a brief you stop reading in week three.
  - Get it: Any transactional mail provider, or an incoming webhook on a channel you actually watch.
  - Verify: A test brief arrives
- [ ] **Your change threshold, retention and cost ceiling** · free
  - Why: Each is asserted by a test, and tuning them after a noisy month means tuning to whatever you have already grown used to.
  - Get it: Write down the minimum changed characters, how long raw snapshots are kept, and the maximum tokens per brief.
  - Verify: All three are in the configuration and named in tests

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Anything behind a login or a paywall.
- Hiring, funding and traffic data.
- Screenshots as the stored artefact.
- A dashboard.
- noise filtering, which is the actual product: most diffs are rotated testimonials and changed asset hashes, not competitive moves
- horizon watch, meaning the substitutes and new entrants you did not think to add to the list
- the non-page signals stitched into the same brief: hiring, funding, traffic and LinkedIn movement
- the analytical step from what changed to why it matters to what to do next
- an archive going back far enough that a change reads as a trend rather than an event

If one of those is essential to you, that is the reason to keep paying for Debriefing, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

Because a diff is not intelligence. The hard part is not fetching a pricing page every week, it is knowing that this particular change matters and the other eleven do not, then saying so in three sentences a founder can act on before a Monday call. That judgement lives in accumulated history and a lot of tuning against false positives. It also survives being ignored: a brief that arrives whether or not you remembered to look is worth more than a script you stop reading in week three.

what you lose

xnoise filtering, which is the actual product: most diffs are rotated testimonials and changed asset hashes, not competitive moves

xhorizon watch, meaning the substitutes and new entrants you did not think to add to the list

xthe non-page signals stitched into the same brief: hiring, funding, traffic and LinkedIn movement

xthe analytical step from what changed to why it matters to what to do next

xan archive going back far enough that a change reads as a trend rather than an event

share on X ↗"I just replaced Debriefing ($80/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

changedetection.ioTells you a competitor's pricing page moved. Deciding whether that mattered is back to being your job.33kaug 2026open source↗

no votes, no pay-to-list · just what's real

the numbers

Debriefing pricing

starter$80/mo · monthly · $960/yr

free tierNo standing free plan, but the first debrief is free and arrives in 5 to 10 minutes.

verified 2026-08-10 · source ↗

questions
Is Debriefing free?

No standing free plan, but the first debrief is free and arrives in 5 to 10 minutes. Paid is Starter at $80/mo (checked 2026-08-10).

Vibecode Debriefing

Kinda. The core of Debriefing is buildable in a weekend with the prompt on this page, but there are real gaps: noise filtering, which is the actual product: most diffs are rotated testimonials and changed asset hashes, not competitive moves, horizon watch, meaning the substitutes and new entrants you did not think to add to the list. Read the honest list above before committing.

How much does Debriefing cost?

Debriefing costs about $80/month (Starter, checked 2026-08-10), which is $960 per year.

What do I lose by replacing Debriefing?

Honestly: noise filtering, which is the actual product: most diffs are rotated testimonials and changed asset hashes, not competitive moves; horizon watch, meaning the substitutes and new entrants you did not think to add to the list; the non-page signals stitched into the same brief: hiring, funding, traffic and LinkedIn movement; the analytical step from what changed to why it matters to what to do next; an archive going back far enough that a change reads as a trend rather than an event. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Debriefing?

Yes: changedetection.io (Tells you a competitor's pricing page moved. Deciding whether that mattered is back to being your job.) The prompt is for when you want it exactly your way.