Commit Graph

  • eec998a762
    feat(rank-tracking): raise scheduler throughput 5x with rate-limit-derived sizing (#465) Ben Senescu 2026-08-07 16:44:16 -04:00
  • 16b6d38ea8
    fix(dashboard): hide GA4 connect card until OAuth app is approved (#463) Ben Senescu 2026-08-07 14:21:01 -04:00
  • f048dc3bd1
    fix(rank-tracking): drain due configs deterministically (clean-room alternative to #456) (#462) Ben Senescu 2026-08-07 13:53:30 -04:00
  • e2c84803f2
    feat: add GA4 MCP insights and rank tracking management (#461) Ben Senescu 2026-08-07 13:47:18 -04:00
  • c40a04459c
    fix(billing): retry missing Autumn balance (#450) Ben Senescu 2026-08-06 21:33:25 -04:00
  • 211907ae32
    fix(audit): make Lighthouse billing retry-safe (#460) Ben Senescu 2026-08-06 21:19:39 -04:00
  • 189d5bfa1f
    fix(onboarding): isolate cached routing state per request (#459) Ben Senescu 2026-08-06 12:24:31 -04:00
  • 8a728563d4
    fix(mcp): stop breaking public OAuth clients at token refresh (#420) Ben Senescu 2026-08-05 16:10:28 -04:00
  • 30948a2a1d
    Increase pricing calculator website limit to 500 (#454) Ben Senescu 2026-08-01 17:28:04 -04:00
  • 187d3fd9c1
    fix(db): widen backlink snapshot counts (#448) Ben Senescu 2026-08-01 17:10:43 -04:00
  • f6ddf654df
    fix(ci): make crawl backpressure lintable (#452) Ben Senescu 2026-08-01 14:50:49 -04:00
  • b8253fb083
    Free backlink checker at /backlink-checker (#444) Ben Senescu 2026-08-01 13:50:50 -04:00
  • 145324138e
    Cap site-audit crawl memory: byte-budgeted window, 1 MiB read cap, persist backpressure (#445) Ben Senescu 2026-08-01 13:22:26 -04:00
  • acd28749c8
    Auto-evict the oldest search tab at capacity, raise the limit to 20 (#442) Ben Senescu 2026-08-01 10:34:31 -04:00
  • 32b1b1d38c
    Remove Product Hunt launch banner from marketing site (#440) Ben Senescu 2026-07-31 13:07:44 -04:00
  • 8d6e99385f
    audit: drop the audit_links table (#416) Ben Senescu 2026-07-30 20:51:32 -04:00
  • 1e8a924c4c
    Site Audit - Improve reliability and performance with Durable Objects Ben Senescu 2026-07-30 00:51:50 -04:00
  • 9d19e43990
    release: v0.1.3 (#433) Ben Senescu 2026-07-30 00:23:36 -04:00
  • a710b560d5
    perf(docker): reuse the build across restarts instead of rebuilding on every start (#123) Amine Benboubker 2026-07-30 05:16:18 +01:00
  • 4a82bf0803
    Document reproducible contributor checks (#105) Timur Isachenko 2026-07-30 04:32:56 +01:00
  • 4f45a04961
    fix(docker): forward OPENROUTER_API_KEY into the self-host container (#152) Nordalux 2026-07-30 05:32:37 +02:00
  • ffb5c9d9e8
    feat(deploy): alchemy-based Cloudflare self-hosting (#431) Ben Senescu 2026-07-29 23:22:33 -04:00
  • 625b76ebee
    Make self hosting better (#428) Ben Senescu 2026-07-29 23:10:01 -04:00
  • b0e850db2b
    Backlinks tab: default sort by most recent (firstSeen) instead of rank (#432) Ben Senescu 2026-07-29 22:41:31 -04:00
  • 68fdcd9bf9
    feat(skills): add seo-audit agent skill (#430) Ben Senescu 2026-07-29 20:47:14 -04:00
  • 86cbba3cdb
    Project switcher: fix viewport overflow + searchable combobox (#427) Ben Senescu 2026-07-29 16:19:16 -04:00
  • c81fd7a130
    Rank positions: report organic rank (rank_group), not absolute SERP slot (#429) Ben Senescu 2026-07-29 10:46:15 -04:00
  • 72c1cf0b8e
    Fix modals taller than the viewport being unscrollable (#425) Ben Senescu 2026-07-26 08:30:20 -07:00
  • be6a34e766
    Remove Search Everywhere interview post (#424) Ben Senescu 2026-07-23 15:52:13 -07:00
  • b97d381493
    Include /library pages in the sitemap (derived from route files) (#423) Ben Senescu 2026-07-23 15:20:21 -07:00
  • f56972639f
    content-review skill + revert unfinished redesign + some copy changes (#422) Ben Senescu 2026-07-23 14:39:56 -07:00
  • a4ede67ebb
    Keyword Research Strategy Library + feature-page guides section + Search Everywhere interview (#128) Jeremy Rivera 2026-07-23 13:37:58 -05:00
  • 633876c0ef
    release: v0.1.2 (#421) Ben Senescu 2026-07-23 11:11:53 -04:00
  • a16fbd17a8 fix(ui): proper loading states for rank tracking list, detail, and dashboard cards (#419) Ben Senescu 2026-07-23 09:39:28 -04:00
  • 67ed8d3c77 feat(web): add Product Hunt #1 Product of the Day laurel to the hero (#415) Ben Senescu 2026-07-21 17:06:12 -04:00
  • b0b5528a3a
    feat(mcp): add create_project tool (#114) Amine Benboubker 2026-07-23 15:07:02 +01:00
  • 2c153f9a20
    feat(mcp): accept locationCode/languageCode on Labs research tools (#113) Slim Bouras 2026-07-23 16:05:43 +02:00
  • d3c62aa5a2
    fix(search-tabs): keep tabs without explicit location across reloads (#108) Xiaonan Cui 2026-07-23 22:00:26 +08:00
  • 3edbd0c11e
    fix(gsc): clamp month-based date ranges instead of overflowing short months (#133) Shuvam Kumar 2026-07-23 19:27:25 +05:30
  • d7cfbec796
    fix(backlinks): keep truncateMiddle within maxLength (#134) Shuvam Kumar 2026-07-23 19:26:09 +05:30
  • 8ca2e0b332
    fix(domain): base pagination hasMore on fetched rows, not filtered rows (#135) Shuvam Kumar 2026-07-23 19:21:31 +05:30
  • 0d654c06e6
    test(e2e): update landing redirect assertions for dashboard landing page (#109) Xiaonan Cui 2026-07-23 21:50:09 +08:00
  • 95e95d48cb
    Add blog post: The Dark Query Problem (#110) Jeremy Rivera 2026-07-21 15:40:07 -05:00
  • b41092788a
    release: v0.1.1 (#413) Ben Senescu 2026-07-20 23:23:15 -04:00
  • 3a94f02a55
    fix(self-host): unbreak the Deploy to Cloudflare button and its build (#412) Ben Senescu 2026-07-20 23:03:09 -04:00
  • 7990c4db7f
    fix(billing): confirm credit depletion before refusing chat turns (#407) Ben Senescu 2026-07-20 18:36:02 -04:00
  • 278b19836d
    feat(db): retry transient connection errors in the Postgres client (#408) Ben Senescu 2026-07-20 18:16:17 -04:00
  • 6f2eb05211
    release: v0.1.0 (#404) Ben Senescu 2026-07-19 02:19:28 -04:00
  • 4aaeade3b0
    fix: prompt explorer citations always empty (annotations have no type field) (#82) bookingseo 2026-07-19 13:02:31 +07:00
  • 57524b5b97
    fix(search-tabs): select the right-hand neighbor when closing the active tab (#89) bookingseo 2026-07-19 12:14:43 +07:00
  • 01a97de55a
    fix(domain): memoize the pages-table data slice to stop an infinite render loop (#88) bookingseo 2026-07-19 12:14:23 +07:00
  • 20d3de0e08
    Refresh homepage messaging and Product Hunt banner (#402) Ben Senescu 2026-07-19 00:59:39 -04:00
  • cd550729a2
    Pricing page redesign: usage estimator + flat layout (#368) Ben Senescu 2026-07-19 00:51:51 -04:00
  • 072fbecae3
    Simplify README and organize docs (#400) Ben Senescu 2026-07-19 00:02:29 -04:00
  • 6ad65f59e1
    Bound audit crawl resource usage (#401) Ben Senescu 2026-07-18 23:49:30 -04:00
  • 7f2e730a1c
    Hide rank tracking card from project dashboard (#399) Ben Senescu 2026-07-18 22:22:23 -04:00
  • b981e83bf8
    feat: tweak telemetry (telemachus!) heartbeat (#397) Ben Senescu 2026-07-18 22:22:01 -04:00
  • eda5e1e354
    Project dashboard: onboarding checklist + domain overview (#398) Ben Senescu 2026-07-18 21:52:35 -04:00
  • 040282511a
    fix: treat empty-string env vars as unset in getEnvValueSync (#396) Ben Senescu 2026-07-18 20:08:20 -04:00
  • 1398605ddc
    feat: anonymous self-host telemetry heartbeat (#395) Ben Senescu 2026-07-18 20:07:42 -04:00
  • 8460df1f29
    release: v0.0.28 (#394) Ben Senescu 2026-07-16 11:27:43 -04:00
  • 955cdcc751 Single keyword input for keyword research (Enter submits) (#391) Ben Senescu 2026-07-15 21:07:42 -04:00
  • 0f08437cd0
    feat: configurable default market for location/language fallbacks (#72) bookingseo 2026-07-16 21:46:49 +07:00
  • c1121bdcab release: v0.0.27 (#390) Ben Senescu 2026-07-15 12:20:20 -04:00
  • 016d8396e3 chore(papercuts): prune environment noise + tighten the skill (#389) Ben Senescu 2026-07-14 21:13:22 -04:00
  • bd22268ad2 Alchemy v2 for SaaS deployments (preview envs); account-agnostic wrangler.jsonc (#324) Ben Senescu 2026-07-14 18:23:43 -04:00
  • d6d0f210ba Redesign the BadSEO home and landing lab experience (#381) Ben Senescu 2026-07-11 18:53:24 -04:00
  • 987e5494a2 Add Plausible and consent-gated GA4 to badseo.dev (#380) Ben Senescu 2026-07-11 11:05:37 -04:00
  • 61c0b0c657
    Index cascade FK columns on audit child tables (#86) Ben Senescu 2026-07-14 19:08:00 -04:00
  • b44dd6e1a7
    fix(sidebar): keep hover and active nav backgrounds visually distinct (#84) Maria Zuheros 2026-07-14 21:33:10 +01:00
  • 927e931e51
    feat(keywords): add search intent filter to Keyword Research (#76) Maria Zuheros 2026-07-13 18:25:31 +01:00
  • 65f7baf8a1
    Add Rank Tracking metric filters and fix null-last sort ordering (#75) A Sivasubramanian Manoj 2026-07-13 22:55:14 +05:30
  • 172126aec7
    fix: register cache writes with waitUntil so workerd persists them (#73) bookingseo 2026-07-13 23:55:52 +07:00
  • 47d638632a
    release: v0.0.26 (#384) Ben Senescu 2026-07-10 18:36:21 -04:00
  • d2287c2e47
    Show app version in settings for self-hosted mode (#383) Ben Senescu 2026-07-10 18:33:54 -04:00
  • 8349bca43c
    Migrate badseo.dev to TanStack Start (#382) Ben Senescu 2026-07-10 17:53:42 -04:00
  • e264ee3472 Refine audit and rank tracking indexes (#378) Ben Senescu 2026-07-10 12:21:56 -04:00
  • d7b52f0876
    code factory: add papercuts skill, greptile rules + greptile rules skill (#77) Ben Senescu 2026-07-10 15:43:48 -04:00
  • 3f2b4872ca
    release: v0.0.25 (#377) Ben Senescu 2026-07-10 11:49:19 -04:00
  • fec642a039
    Add Search Console property links to search performance page (#374) Ben Senescu 2026-07-09 22:27:09 -04:00
  • ea95eae368
    Sanitize PostHog consent URLs and replay metadata (#376) Ben Senescu 2026-07-09 22:23:23 -04:00
  • c11517908d
    Handle billing KV failures and preserve Lighthouse start-page matching (#375) Ben Senescu 2026-07-09 22:23:03 -04:00
  • dae0067233
    feat(gsc): support multiple Google accounts per user (#373) Ben Senescu 2026-07-09 21:49:08 -04:00
  • f2c41b1db1 MCP activation + usage PostHog events, North Star dashboard prompt (#369) Ben Senescu 2026-07-07 20:35:25 -04:00
  • 67265a0046 Site audit P0: Issues tab UI, badseo.dev e2e harness, new checks + pages-table polish (#367) Ben Senescu 2026-07-07 12:47:10 -04:00
  • 1c74fded7b Site audit P0 (1/3): issue engine, incremental persistence, block detection (#362) Ben Senescu 2026-07-07 12:29:32 -04:00
  • 7caaebbbac Shrink eager worker bundle: lazy boundaries at module seams + build-enforced guard (#366) Ben Senescu 2026-07-06 22:53:47 -04:00
  • a337f0ac08 perf: bound Autumn retry window + cache customer existence off the hot path (#365) Ben Senescu 2026-07-06 16:53:28 -04:00
  • ffa6ec5e70
    feat(rank-tracking): add city/region-level location targeting (#62) RDeemer63 2026-07-07 20:44:19 -05:00
  • c3caf2009f
    Remove backlinks + LLM-mentions access gates Ben Senescu 2026-07-05 23:25:33 -04:00
  • 3c7e704b4a
    Triage active PostHog errors: validator noise, workflow output cap, Autumn retries, deploy-reset noise (#361) Ben Senescu 2026-07-05 23:22:44 -04:00
  • 828fb17073
    perf: cut cross-region latency (Smart Placement, session cookie cache, shared Autumn provider, parallel queries) (#359) Ben Senescu 2026-07-05 22:54:33 -04:00
  • c9bcc444b4
    Triage unresolved PostHog errors: DataForSEO validation, DO retry, Autumn 429, exception noise (#333) Ben Senescu 2026-07-05 22:38:53 -04:00
  • 93a373129e
    release: v0.0.24 (#358) Ben Senescu 2026-07-05 21:05:01 -04:00
  • abc80e1e2b
    Fix server-fn deprecation warnings and add CSRF middleware (#357) Ben Senescu 2026-07-05 20:18:12 -04:00
  • 2645750671
    Free-plan audit limits: 50 pages, one at a time; remove 'all' lighthouse strategy (#352) Ben Senescu 2026-07-05 18:56:19 -04:00
  • 053ac4c4cf
    Add skeleton loading state for Search Performance page (#355) Ben Senescu 2026-07-05 18:53:56 -04:00
  • 7bcd8497a0
    Upgrade dependencies and add security audit configuration (#349) Ben Senescu 2026-07-05 18:52:59 -04:00
  • a3e7bffd5b
    Add OpenRouter API key setup gating for SAM AI features (#356) Ben Senescu 2026-07-05 18:39:26 -04:00
  • 36bd1cd7de
    fix: scope SAM sessions to owning user (#354) Ben Senescu 2026-07-05 18:36:58 -04:00