275 Commits

Author SHA1 Message Date
Ben Senescu
dec7fe68dc
Update pricing sources in README
Removed outdated DataForSEO Business Data API pricing link and updated Keywords Data API pricing link.
2026-06-18 09:50:04 -04:00
Ben Senescu
6fce0fb980
Update README.md 2026-06-17 16:00:19 -04:00
Ben Senescu
b08cb0c9e2
Avoid D1 internal error in project lookup (#272) 2026-06-16 21:40:23 -04:00
Ben Senescu
d339f0c3d9
Fix MCP output validation and error reporting 2026-06-16 13:52:59 -04:00
Ben Senescu
f1232554f1
Update README with hosted version information
Added a section about the hosted version of OpenSEO and updated the reasons to use OpenSEO.
2026-06-15 19:55:34 -04:00
Ben Senescu
9abed9278f
Remove free trial: subscription paywall + 30-day money-back guarantee (#251) 2026-06-14 21:21:04 -04:00
Ben Senescu
ffded88e33
Landing page redesign + copy/positioning doc (#267) 2026-06-14 18:14:12 -04:00
Ben Senescu
dd429ec4f0
Sync Autumn billing status to Loops and add billing backfill (#269) 2026-06-14 17:19:26 -04:00
Ben Senescu
f8d5ffd285
Scheduled rank checks run through DataForSEO's task queue (#268) 2026-06-13 11:20:42 -04:00
Ben Senescu
5f03992b78
release: v0.0.20 (#266) 2026-06-12 14:29:49 -04:00
Ben Senescu
b809f87b5e
Hybrid keyword data: Google Ads coverage for non-Labs countries + opt-in clickstream volumes (#262) 2026-06-12 14:08:11 -04:00
Ben Senescu
e41b52ca56
MCP directory metadata, resources/prompts handlers, full param descriptions (#260) 2026-06-11 16:11:24 -04:00
Ben Senescu
0525513b0c
save (#259) 2026-06-11 09:45:44 -04:00
Ben Senescu
16b92ccea3
Backlinks: server-side pagination, sorting, filters, and a one-per-domain view (#258) 2026-06-10 23:27:04 -04:00
Ben Senescu
977c69c3de
Replace project deletion with archive/restore (soft delete) (#257)
Project deletion cascaded through saved keywords, rank tracking, and
audits, and the endpoint had no role check (Codex security finding).
Instead of gating a destructive delete, remove it: archiving stamps
archived_at, hides the project everywhere (lists, project context,
rank-check cron), and preserves all data. Archived projects can be
restored from the Manage projects page.

The restore input is named archivedProjectId because the global
ensureUserMiddleware resolves any projectId in input data against
active projects and would 404 before the handler runs.
2026-06-10 15:42:55 -04:00
Ben Senescu
f7e5729a09
SERP title/meta optimization for striking-distance keywords (#254) 2026-06-10 14:21:55 -04:00
Ben Senescu
8a85b7b794
AI Visibility: competitor Share of Voice + clarity fixes for AI citations (#248) 2026-06-09 22:33:11 -04:00
Ben Senescu
2db6fdec71
Refine rank tracking onboarding and add ahrefs backlinks filter (#253) 2026-06-09 22:17:13 -04:00
Ben Senescu
c38b453ab0
Add Ahrefs Domain Rating enrichment to the Backlinks table (#249) 2026-06-09 21:42:30 -04:00
Ben Senescu
fbef08fe8e
Remove unnecessary rank tracking details cards 2026-06-09 21:28:50 -04:00
Ben Senescu
383531c5cd
Rank tracking: trends & data exploration (#247) 2026-06-09 21:06:50 -04:00
Ben Senescu
076a7fb6d7
Multi-project support per organization (#246) 2026-06-09 20:12:09 -04:00
Ben Senescu
e16f8d5647
Bump release notes to v0.0.18 (#244)
* Bump version to 0.0.18

* Trim release notes for v0.0.18
2026-06-05 16:29:25 -04:00
Ben Senescu
d459006f40
Restore and update 'Why use OpenSEO?' section
Reintroduce 'Why use OpenSEO?' section with key features.
2026-06-05 16:28:01 -04:00
Ben Senescu
6be0a54b15
Update README.md 2026-06-05 16:26:57 -04:00
Ben Senescu
93705f125d
Move guides to blogs and add best open source tools post (#243) 2026-06-05 15:37:42 -04:00
Ben Senescu
1495660631
fix errors and onboarding problems (#242) 2026-06-05 15:22:32 -04:00
Ben Senescu
cc5d6bc632
gsc: handle stale Search Console grants during property listing (#241) 2026-06-04 23:46:33 -04:00
Ben Senescu
8ea55a3e77
fix gsc onboarding nudge state (#240) 2026-06-04 23:25:01 -04:00
Ben Senescu
96f365a473
billing: Autumn webhook + customer status sync (#239) 2026-06-04 23:04:55 -04:00
Ben Senescu
f46e0b9539
Update image source in README.md 2026-06-04 18:15:13 -04:00
Ben Senescu
c8fcdcda20
website: google search console mcp landing page (#237) 2026-06-04 18:07:00 -04:00
Ben Senescu
7a26be46cc
Self-hosted Google Search Console (#236) 2026-06-04 18:06:16 -04:00
Ben Senescu
23c38ca4e5
GSC MCP part 1 (#233) 2026-06-04 13:50:26 -04:00
Ben Senescu
1fd7b2cbce
Replace image in README.md
Updated image in README.md to a new source.
2026-06-02 16:41:05 -04:00
Ben Senescu
738497e749
Update section title and table of contents in README 2026-06-02 16:18:44 -04:00
Ben Senescu
9660838c1f
Update images in README.md 2026-06-02 16:17:14 -04:00
Ben Senescu
319b4d7772
website: open source seo page (#235) 2026-06-02 15:56:38 -04:00
Ben Senescu
dae5cfd68e
readme: Add banner image (#234) 2026-06-02 14:27:20 -04:00
Ben Senescu
b64ef56b4d
refactor: unify dataforseo sdk usage (#231) 2026-06-01 09:48:11 -04:00
Ben Senescu
06e15dc70f
Add per-feature usage breakdown to billing page (#232) 2026-05-31 18:42:41 -04:00
Ben Senescu
e93e30e19e
Fix auth mode resolution to use runtime worker env (#212) 2026-05-31 17:21:54 -04:00
Ben Senescu
3d38b89c32
Fix local dev bug; bump to v0.0.17 (#230) 2026-05-28 17:42:09 -04:00
Ben Senescu
03fd3588ef
refactor: clean up complex code (#229) 2026-05-28 16:37:33 -04:00
Ben Senescu
010c93a536
Bump version to 0.0.16 (#228) 2026-05-28 09:14:35 -04:00
Ben Senescu
e7eb895d46
fix redirect loop (again) (#227) 2026-05-27 00:08:59 -04:00
Ben Senescu
4a5a1eb523
Redirect unverified users to email verification (#226) 2026-05-26 23:36:35 -04:00
Ben Senescu
02a287b98e
fix audit tables + back link columns (#224) 2026-05-26 23:33:26 -04:00
Ben Senescu
8b74c7da61
Improve onboarding questions and sign-up routing (#225) 2026-05-26 23:05:20 -04:00
Ben Senescu
506dde84d1
Add additional MCP tools for Local SEO (#222) 2026-05-26 18:38:14 -04:00