Skip to main content
Back to portfolio

Case study / Vellox

Vellox: alerts people can trust

Vellox emails B2B teams when a competitor changes their pricing, hiring or product. The hard part isn’t reading websites. Websites are noisy, and one false “they changed their prices” alert teaches a customer to ignore every alert after it. So I designed the system around one question: when should it stay quiet?

Role
Founder and sole engineer
Period
Oct 2026 – Present
Stack
Next.js 16React 19TypeScriptPostgreSQLDrizzlePlaywrightGitHub Actions
Vellox homepage with an example weekly brief about competitor price changes

Architecture

How a change becomes an alert

  1. 01

    Public sources

    Five per competitor

  2. 02

    Capture

    Fetch or browser

  3. 03

    Compare

    Against last read

  4. 04

    Rules

    Code finds changes

  5. 05

    AI judge

    Does it matter?

  6. 06

    PostgreSQL

    Changes, evidence

  7. 07

    Delivery

    Alert, brief, app

Green steps filter out noise. If the AI is unavailable, only clear-cut facts get through.

01

How it works

Every morning a scheduled job reads each competitor’s pricing page, sitemap, job board, blog and homepage, using a real browser where prices load through JavaScript. Each read is compared with the last one. Plain code decides what changed, and only then does an AI model judge whether it matters and describe it.

02

Why rules come first

A model asked to spot changes can invent them. Here it only sees changes the code has already found, along with the evidence, and returns structured output that is checked before use. If the AI is unavailable, only clear-cut factual changes get through, and only a real price change can trigger an instant alert.

03

Telling a real change from a bad load

  • Prices vanishing usually means the page failed to load. Vellox sets that check aside. Only after three in a row, with the page still recognisably the same, does it report “took the prices off their pricing page”.
  • A bad first snapshot used to make prices look new the next day, sending a false alert to a brand-new user. The checker now starts a fresh baseline instead.
  • Plans reordered by an A/B test are compared as sets, so they don’t count as a price change.

04

Keeping it running

Trial reminders were skipped when a job started late, because the logic rounded days left. A simulation of 1,920 users with realistic delays found the old rule missed a reminder for 174 of them, and the new one for none. After failed Vercel builds twice left the live site on an old version for hours without notice, I added CI with type checks, lint, tests and a production build. The project now has about 140 automated test cases.

05

Reaching the region

It has an Arabic landing page and payment in Egyptian pounds through InstaPay or mobile wallets.

06

What isn’t solved

Careers pages that show no roles still fail rather than resolve, because auto-accepting them would cause false hiring alerts if the page recovered. Vellox launched in October, and it’s too early to claim traction.

See it running

Vellox is live, with a free competitor snapshot you can try.