Changelog

What Spottr has shipped.
One canonical page for launch posts.

The reverse-chronological timeline we link to from Indie Hackers, Hacker News, and BetaList — so launch posts can quote a single source instead of claim by claim.

September 1, 2026

Shipped

Dedicated /pricing OG share card

Pricing links now unfurl with a dedicated Spottr card showing Plans & Pricing and the Solo, Team, and Agency tiers on a 1200×630 canvas.

August 27, 2026

Shipped

Profile & Security card on the dashboard

Signed-in users can now update their name and email, or rotate their password, directly from the dashboard with inline validation and clear save feedback.

August 24, 2026

Shipped

Digest Preferences card on the dashboard

Users can now toggle the weekly digest on/off and choose a preferred send weekday directly from the dashboard overview. Settings persist in the WeeklyDigestPreference table and survive page reloads.

August 22, 2026

Shipped

Welcome email fires on new user signup

Every new account receives a welcome email exactly once, rendered from the email module template and sent through the Polsia email proxy. A UserWelcome guard row prevents duplicate sends on edge-case retries.

August 21, 2026

Shipped

Subscription & Billing card on the dashboard

A live Subscription & Billing card on the dashboard overview fetches the signed-in user's active plan tier, status, and renewal date via GET /api/billing/status. A 'Manage billing' button opens a Stripe self-service portal (plan changes, payment method updates, cancellation) via POST /api/billing/portal.

August 17, 2026

Shipped

Public /terms page covering Spottr’s usage rules and named sub-processors

A public, prerendered terms of service at /terms that mirrors /privacy’s structure: acceptance, the service description, acceptable use, webhook/forwarding at the user’s risk, billing via Stripe (no pro-rata refunds; cancel stops next renewal), account termination, IP disclaimer (alerts are informational, no warranty of accuracy), a stated governing-law placeholder, and the spottr-3@polsia.app contact path. Stripe and Polsia are named as sub-processors.

August 13, 2026

Shipped

A canonical /markets page listing the competitor regions Spottr tracks

A prerendered, public /markets page surfaces the non-English regions Spottr covers (France, Germany, Spain, Italy, Netherlands, Brazil) with example domains and native-language labels per market — sourced from src/lib/markets.ts and linked from the footer so launch posts can cite a single source.

August 11, 2026

Shipped

AI strategic brief at /brief

A dedicated page at /brief turns your top-scored competitor opportunities into three to five recommended strategic actions, with a Regenerate button to pull a fresh brief on demand. The brief draws from the same ranked events as /opportunities and is gated by your session.

August 8, 2026

Shipped

Public /contact page backed by the contact-form module

A two-field contact form (name + email + message) at /contact, backed by the Polsia-managed contact-form module so messages land in a governed table rather than ad-hoc email forwarding. No signup wall — anyone can reach us.

August 7, 2026

Shipped

A canonical /privacy page for launch posts

A public, prerendered privacy policy at /privacy that mirrors the actual data flows: waitlist email, Stripe billing fields, dashboard account + scrape-target data, and contact-form messages. Stripe is the only third-party processor we share data with; no sale to anyone else.

August 3, 2026

Shipped

Structured-data JSON-LD on the /pricing page

Product + three Offer children (Solo $29, Team $89, Agency $249) sourced from a single src/lib/pricing/tiers literal so the structured data and the rendered Cards can never drift. category: Subscription, priceCurrency: USD.

August 2, 2026

Shipped

A canonical changelog for launch posts

One in-app timeline of what Spottr has shipped, so Indie Hackers / HN / BetaList posts can quote a single source instead of a list of claims.

July 30, 2026

Shipped

An in-app FAQ for buyers

Eight questions buyers ask before signing up: pricing tier differences, alert accuracy and latency, monitored platforms, data retention, cancellation, Auto Tweet opt-in, browser support, and CSV export.

July 23, 2026

Shipped

Three-tier pricing (Solo / Team / Agency)

Solo ($29/mo) every-6-hours polling; Team ($89/mo) every-60-minutes with Slack; Agency ($249/mo) every-10-minutes with webhooks, 25 seats, unlimited sites. Monthly billing, no setup fee, self-serve cancel.

July 15, 2026

Shipped

Auto Tweet publishing, opt-in only

Off by default. When the owning user flips the switch under Settings → Notifications, every detected change goes out as a short note to the public @Spottr X feed with a link back to the in-app alert. We don't unsend what's already posted.

July 4, 2026

Shipped

Weekly digest emails that summarise competitor changes

One email per active user, every Monday morning. Groups the last 7 days of events by competitor so the week is scannable in a minute or two. Idempotent on (user, ISO weekStart) — replays are safe.

June 22, 2026

Shipped

OG + Twitter card meta on every page

Static branded OG card on the home route, framework-derived PNG for every other route. Per-page metadata carries proper title, description, and canonical URL so links unfurl cleanly on X, LinkedIn, Slack, and iMessage.

June 15, 2026

Shipped

Structured-data JSON-LD on the home page

SoftwareApplication + Organization entities with the same brand, description, and pricing tiers used elsewhere on the site, so search engines see a consistent picture without us hand-editing two copies.

June 5, 2026

Shipped

Two-minute onboarding: paste a URL, start tracking

No signup wall, no form. Paste a competitor URL, pick the platforms to watch, and Spottr runs the first scrape live so the user sees a real change in the inbox within minutes.

May 20, 2026

Shipped

Full scraper pipeline: web, X, iOS App Store, Google Play, Shopify, G2, Capterra, Amazon

One ChangeEvent shape across every surface. Full-snapshot compare with an attached old/new snippet for each detected change — we render the diff, we don't guess at heuristics.