Skip to content
What’s New — May 13–18, 2026
New
- Projects are now the home for your work — Each project pairs your own plugin with the competitors you track. You can create, rename, delete, and switch between projects from a new workspace sidebar. Your tier decides how many competitors you can track per project; your own plugin doesn’t count toward that limit.
- Project switcher in the sidebar — Jump between projects from a dropdown without navigating back to the dashboard.
- Settings page with a project list — Manage all your projects from one place under Settings.
- Onboarding starts with your plugin — New users get a single unified “Add your plugin” panel that creates your first project and seeds the own-plugin baseline in one step.
- Notifications now know which project they came from — Slack messages, weekly emails, daily digests, and realtime alerts all include the project name and deep-link directly to the specific event inside the right project.
- Daily lifecycle brief email — A morning brief summarizes trial status and key lifecycle moments for active users.
- Compare uses your own plugin as the baseline — Compare pages now anchor against your plugin and surface per-project gap headlines so you immediately see where competitors are pulling ahead.
- AI write-ups consider your own plugin context — The three AI enrichers (releases, reviews, websites) now factor your own-plugin baseline into their analysis, producing more relevant signal.
- Sharper weekly signal write-up — The weekly summary write-up is upgraded to a stronger model, with stricter output handling and better retries, producing more reliable narratives.
Improved
- Per-project notification history — Notification history, badges, and alert lists are now scoped per project so you only see signals relevant to the project you’re in.
- Realtime alerts include project context — Alert emails and Slack messages now carry the project name in the subject and body, and own-plugin events fire their own alerts.
- Cleaner crawl behavior for shared landing pages — Competitor sites sharing a base URL (with trailing slash or fragment variations) are now crawled once instead of repeatedly, cutting noise and false change detections.
- Less scary copy when a single crawl blips — One-off crawl failures no longer surface alarming “site is down” wording. The scary copy only appears after three consecutive failures.
- Crawler retries transient timeouts — Timeout-class scrape failures now retry once before being recorded as a failure.
Fixed
- Same slug can’t be both your plugin and a competitor — Adding the same plugin as your own plugin and as a competitor in the same project is now blocked at the source.
- Competitor names render correctly everywhere — Names with special characters (e.g., apostrophes, ampersands) are now escaped consistently across all five places they appear in the weekly summary.
- Daily digest emails deep-link to the right notification — The digest subject uses a bracketed project name, the body is scoped per project, and clicking through opens the exact notification row.
- Sync health stops claiming false recoveries — A backfill that timed out asynchronously is no longer reported as “recovered” by the sync health check.
- Readme and changelog history no longer fails silently — When a history insert hits a duplicate, the daily sync now self-heals and surfaces real insert failures instead of dropping them silently.
- Reviews show the AI-corrected tag — Review badges now display the AI-corrected category (and matching color) instead of the lossy first-pass tag.
- Project page text decodes HTML entities — Plugin headers no longer render
& or ' in titles.
- Em dashes removed from relative-time empty states — Brand voice fix in formatRelative.
- Sidebar icons are consistent — Settings now uses the gear icon and Notifications uses the mail icon.
- Pending-downgrade users don’t get milestone or notification emails — Notifications are suppressed across the board for users in a pending-downgrade state, and milestone emails are paused for those users.
- Webhook downgrades archive over-limit projects; upgrades restore them — When you downgrade a tier, projects above your new limit are archived; upgrading restores them automatically.
- Trial expiry now archives over-limit projects — Users whose trial ends and who fall to a lower tier have their excess projects archived cleanly.
Security
- Closed a set of endpoints where a public key could trigger internal jobs. Internal callers now require a dedicated secret.
- Admin impersonation now propagates identity correctly across billing, and respects row-level security on newly added tables.
- Webhook handlers now guard against overwriting Stripe-mirrored profile fields with stale values during page-load syncs.