Commit Graph

  • b22dc13b51
    Remove direct POSTGRES_DATABASE_URL fallback; Postgres via Hyperdrive only (#351) Ben Senescu 2026-07-05 18:11:11 -04:00
  • 86407c97e1
    Fix hosted Turnstile captcha fail-open config (#350) Ben Senescu 2026-07-05 18:06:19 -04:00
  • e39de22f96
    Fix: don't mask DataForSEO 40501 validation errors as empty results (#346) Ben Senescu 2026-07-05 17:54:14 -04:00
  • 9b6c5640cd
    Sanitize Copy keywords clipboard against spreadsheet formula injection (#348) Ben Senescu 2026-07-05 17:50:01 -04:00
  • 7c64cd3c5c
    Rank tracking: enforce config cap on unarchive, raise cap to 500 (#347) Ben Senescu 2026-07-05 17:39:53 -04:00
  • c993ef4931
    Bound concurrent D1 upserts in saved-keyword metric refresh (#338) Ben Senescu 2026-07-05 17:35:58 -04:00
  • 1a74904b67
    Cut worker isolate baseline memory: stub just-bash, lazy-load cheerio (#340) Ben Senescu 2026-07-03 22:23:35 -04:00
  • 93cf32081a
    Fix turndown ESM build compatibility with Cloudflare Workers (#339) Ben Senescu 2026-07-03 21:53:55 -04:00
  • 41d37792e7
    feat: SAM — in-app SEO agent with full MCP toolset (#322) Ben Senescu 2026-07-03 18:48:18 -04:00
  • 7ed574c408
    Sidebar: promote AI & MCP to nav, consolidate footer into account menu (#337) Ben Senescu 2026-07-03 13:23:18 -04:00
  • 615ecce033
    Redesign app shell: Sidebar with cutout content panel (#336) Ben Senescu 2026-07-02 19:06:13 -04:00
  • 4f17fe4942 Triage production log errors: audit crash, Autumn webhook FK, PostHog capture, auth rate-limit IP, log noise (#327) Ben Senescu 2026-07-01 09:57:30 -04:00
  • fffdbc9329 Add Cloudflare Turnstile captcha on email signup (#326) Ben Senescu 2026-07-01 09:32:27 -04:00
  • 97f026562e Pin production to Postgres via committed Hyperdrive binding (#329) Ben Senescu 2026-07-01 00:36:02 -04:00
  • b5bda159ea Re-add free plan as the floor; remove subscribe gate (#321) Ben Senescu 2026-06-30 22:26:26 -04:00
  • 819e33be07 fix(mcp): 405 the standalone GET SSE stream to stop /mcp OOM (#325) Ben Senescu 2026-06-30 21:57:25 -04:00
  • a49ec51e95 fix(ai-search): use valid Claude model_name and fail fast on unknown ones (#323) Ben Senescu 2026-06-30 21:50:42 -04:00
  • 4e48f8344f Fix production errors: onboarding crash hardening + DataForSEO spend/noise cleanup (#282) Ben Senescu 2026-06-30 17:41:21 -04:00
  • 868924e1fe refactor(keywords): unify keyword-metric fetching behind one helper (#320) Ben Senescu 2026-06-30 17:23:27 -04:00
  • 116719a019 fix(db): add missing indexes and drop redundant ones (#319) Ben Senescu 2026-06-30 17:11:49 -04:00
  • e5e5029e6b rank-tracking: raise per-project config limit from 20 to 100 (#318) Ben Senescu 2026-06-30 15:36:34 -04:00
  • fa0651b96d Fix Postgres-only rank-tracking & site-audit workflow failures (#317) Ben Senescu 2026-06-30 09:51:29 -04:00
  • 19a4bc6585 D1 → Postgres data migration (ETL + runbook) (#274) Ben Senescu 2026-06-29 20:20:23 -04:00
  • c5cbe84ce6 Unify dual-backend DB layer (D1 default + Postgres opt-in) (#238) Ben Senescu 2026-06-29 20:02:01 -04:00
  • 3a2dad3a96 fix(rank-tracking): unarchive config when re-adding an archived domain (#313) Ben Senescu 2026-06-29 18:38:15 -04:00
  • 9942c5a590 website: change link Ben Senescu 2026-06-29 18:23:50 -04:00
  • 1164a3467a feat(onboarding): hide agent chat step; subscribe after intro steps (#312) Ben Senescu 2026-06-29 13:36:13 -04:00
  • c8a1e17359
    fix: surface DataForSEO auth failures as an actionable error instead of "unexpected error" (#53) mattmacrocket 2026-07-02 16:38:13 -05:00
  • b8f47a51cc
    feat: GSC UI + Striking Distance mattmacrocket 2026-07-02 16:37:36 -05:00
  • b733be4a5e
    release: v0.0.23 - fix mcp for pi + refresh saved keyword metrics (#56) Ben Senescu 2026-07-02 13:01:44 -04:00
  • 752561b0ac
    feat: add refresh metrics action to Saved Keywords page (#51) Eugene 2026-07-01 03:52:12 +08:00
  • e9871bde8d
    release: v0.0.22 (#310) Ben Senescu 2026-06-28 20:12:29 -04:00
  • 1dabbc88a6
    feat: add paginated get_backlinks_profile MCP tool (#38) Matt Van Horn 2026-06-28 15:47:24 -07:00
  • 200a6e8b61
    feat: add search and filters to the Tracked Domains list (#39) Matt Van Horn 2026-06-28 15:45:57 -07:00
  • a19baed678
    feat(rank-tracking): allow explicit language selection (#46) Amol Budhwant 2026-06-29 03:34:49 +05:30
  • da06190e5f
    docs: document DCR redirect-URI step for MCP behind Cloudflare Access (#48) Ben Senescu 2026-06-28 17:58:51 -04:00
  • e4b0c53b3b
    Add monthly rank tracking schedule (#45) jalendarreddy97 2026-06-28 17:32:05 -04:00
  • 93c2ecf48d fix knip + reorganize self hosting docs Ben Senescu 2026-06-28 16:50:16 -04:00
  • 6313812f3f Dynamic star count on website (#306) Ben Senescu 2026-06-26 17:09:49 -04:00
  • cd8ce2f752 fix(ci): raise Node heap limit for sourcemaps build (#304) Ben Senescu 2026-06-26 15:33:07 -04:00
  • be60440ca0
    docs: document manual Wrangler deploy path for Cloudflare self-hosting (#44) Matt Van Horn 2026-06-28 13:30:04 -07:00
  • e4a90d6767
    feat: add country combobox (#43) Fishlex0 2026-06-28 23:29:53 +03:00
  • e9955b46cb
    Simplify readme (#303) Ben Senescu 2026-06-26 15:20:17 -04:00
  • 7cc4fa9aa5
    Revert "Update base plan price from $10/month to $20/month (#283)" (#301) Ben Senescu 2026-06-26 09:29:52 -04:00
  • 616b6727fa
    Onboarding chat: let read_website fetch specific user-named URLs (#300) Ben Senescu 2026-06-25 19:57:50 -04:00
  • 90a04d1845
    Onboarding chat: MiniMax M3 + market-research tools + UX polish (#296) Ben Senescu 2026-06-25 12:31:07 -04:00
  • 770005e2b9
    release: v0.0.21 (#293) Ben Senescu 2026-06-24 15:22:17 -04:00
  • 2087d0d614
    Onboarding agent: clarify OpenSEO analyzes any domain; keep recs in-product (#295) Ben Senescu 2026-06-24 15:19:17 -04:00
  • 327d741d4c Fix onboarding overflow issue Ben Senescu 2026-06-24 13:45:47 -04:00
  • 23e7eea4c2 bump node max-old-space Ben Senescu 2026-06-24 13:24:11 -04:00
  • 31eb147bb5
    Revise 'Why use OpenSEO?' section in README Ben Senescu 2026-06-24 13:23:18 -04:00
  • 0adf77824a
    Update base plan price from $10/month to $20/month (#283) Ben Senescu 2026-06-21 22:01:25 -04:00
  • 244cfe2204
    tweak onboarding prompt + add keyword research (#277) Ben Senescu 2026-06-19 20:25:11 -04:00
  • b2931a6542
    fix email verification flow Ben Senescu 2026-06-19 19:38:55 -04:00
  • 17c6c8f60b
    fix: block user-initiated org creation (#276) Ben Senescu 2026-06-19 18:29:41 -04:00
  • 0652f3a8a6
    improve onboarding chat ux + migrated to DO Ben Senescu 2026-06-19 18:09:52 -04:00
  • e57768a8ce
    Add onboarding chat helper Ben Senescu 2026-06-19 13:20:52 -04:00
  • dec7fe68dc
    Update pricing sources in README Ben Senescu 2026-06-18 09:50:04 -04:00
  • 6fce0fb980
    Update README.md Ben Senescu 2026-06-17 16:00:19 -04:00
  • b08cb0c9e2
    Avoid D1 internal error in project lookup (#272) Ben Senescu 2026-06-16 21:40:23 -04:00
  • d339f0c3d9
    Fix MCP output validation and error reporting Ben Senescu 2026-06-16 13:52:59 -04:00
  • f1232554f1
    Update README with hosted version information Ben Senescu 2026-06-15 19:55:34 -04:00
  • 9abed9278f
    Remove free trial: subscription paywall + 30-day money-back guarantee (#251) Ben Senescu 2026-06-14 21:21:04 -04:00
  • ffded88e33
    Landing page redesign + copy/positioning doc (#267) Ben Senescu 2026-06-14 18:14:12 -04:00
  • dd429ec4f0
    Sync Autumn billing status to Loops and add billing backfill (#269) Ben Senescu 2026-06-14 17:19:26 -04:00
  • f8d5ffd285
    Scheduled rank checks run through DataForSEO's task queue (#268) Ben Senescu 2026-06-13 11:20:42 -04:00
  • 5f03992b78
    release: v0.0.20 (#266) Ben Senescu 2026-06-12 14:29:49 -04:00
  • b809f87b5e
    Hybrid keyword data: Google Ads coverage for non-Labs countries + opt-in clickstream volumes (#262) Ben Senescu 2026-06-12 14:08:11 -04:00
  • e41b52ca56
    MCP directory metadata, resources/prompts handlers, full param descriptions (#260) Ben Senescu 2026-06-11 16:11:24 -04:00
  • 0525513b0c
    save (#259) Ben Senescu 2026-06-11 09:45:44 -04:00
  • 16b92ccea3
    Backlinks: server-side pagination, sorting, filters, and a one-per-domain view (#258) Ben Senescu 2026-06-10 23:27:04 -04:00
  • 977c69c3de
    Replace project deletion with archive/restore (soft delete) (#257) Ben Senescu 2026-06-10 15:42:55 -04:00
  • f7e5729a09
    SERP title/meta optimization for striking-distance keywords (#254) Ben Senescu 2026-06-10 14:21:55 -04:00
  • 8a85b7b794
    AI Visibility: competitor Share of Voice + clarity fixes for AI citations (#248) Ben Senescu 2026-06-09 22:33:11 -04:00
  • 2db6fdec71
    Refine rank tracking onboarding and add ahrefs backlinks filter (#253) Ben Senescu 2026-06-09 22:17:13 -04:00
  • c38b453ab0
    Add Ahrefs Domain Rating enrichment to the Backlinks table (#249) Ben Senescu 2026-06-09 21:42:30 -04:00
  • fbef08fe8e
    Remove unnecessary rank tracking details cards Ben Senescu 2026-06-09 21:28:50 -04:00
  • 383531c5cd
    Rank tracking: trends & data exploration (#247) Ben Senescu 2026-06-09 21:06:50 -04:00
  • 076a7fb6d7
    Multi-project support per organization (#246) Ben Senescu 2026-06-09 20:12:09 -04:00
  • e16f8d5647
    Bump release notes to v0.0.18 (#244) Ben Senescu 2026-06-05 16:29:25 -04:00
  • d459006f40
    Restore and update 'Why use OpenSEO?' section Ben Senescu 2026-06-05 16:28:01 -04:00
  • 6be0a54b15
    Update README.md Ben Senescu 2026-06-05 16:26:57 -04:00
  • 93705f125d
    Move guides to blogs and add best open source tools post (#243) Ben Senescu 2026-06-05 15:37:42 -04:00
  • 1495660631
    fix errors and onboarding problems (#242) Ben Senescu 2026-06-05 15:22:32 -04:00
  • cc5d6bc632
    gsc: handle stale Search Console grants during property listing (#241) Ben Senescu 2026-06-04 23:46:33 -04:00
  • 8ea55a3e77
    fix gsc onboarding nudge state (#240) Ben Senescu 2026-06-04 23:25:01 -04:00
  • 96f365a473
    billing: Autumn webhook + customer status sync (#239) Ben Senescu 2026-06-04 23:04:55 -04:00
  • f46e0b9539
    Update image source in README.md Ben Senescu 2026-06-04 18:15:13 -04:00
  • c8fcdcda20
    website: google search console mcp landing page (#237) Ben Senescu 2026-06-04 18:07:00 -04:00
  • 7a26be46cc
    Self-hosted Google Search Console (#236) Ben Senescu 2026-06-04 18:06:16 -04:00
  • 23c38ca4e5
    GSC MCP part 1 (#233) Ben Senescu 2026-06-04 13:50:26 -04:00
  • 1fd7b2cbce
    Replace image in README.md Ben Senescu 2026-06-02 16:41:05 -04:00
  • 738497e749
    Update section title and table of contents in README Ben Senescu 2026-06-02 16:18:44 -04:00
  • 9660838c1f
    Update images in README.md Ben Senescu 2026-06-02 16:17:14 -04:00
  • 319b4d7772
    website: open source seo page (#235) Ben Senescu 2026-06-02 15:56:38 -04:00
  • dae5cfd68e
    readme: Add banner image (#234) Ben Senescu 2026-06-02 14:27:20 -04:00
  • b64ef56b4d
    refactor: unify dataforseo sdk usage (#231) Ben Senescu 2026-06-01 09:48:11 -04:00
  • 06e15dc70f
    Add per-feature usage breakdown to billing page (#232) Ben Senescu 2026-05-31 18:42:41 -04:00
  • e93e30e19e
    Fix auth mode resolution to use runtime worker env (#212) Ben Senescu 2026-05-31 17:21:54 -04:00
  • 3d38b89c32
    Fix local dev bug; bump to v0.0.17 (#230) Ben Senescu 2026-05-28 17:42:09 -04:00