Ben Senescu
e57768a8ce
Add onboarding chat helper
2026-06-19 13:20:52 -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
f8d5ffd285
Scheduled rank checks run through DataForSEO's task queue ( #268 )
2026-06-13 11:20:42 -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
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
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
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
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
06e15dc70f
Add per-feature usage breakdown to billing page ( #232 )
2026-05-31 18:42:41 -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
e7eb895d46
fix redirect loop (again) ( #227 )
2026-05-27 00:08:59 -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
Ben Senescu
f95c66b7f2
Switch domain sorting defaults and rank-tracking suggestions to traffic ( #223 )
...
* Default domain keyword sorting to traffic
* Align keyword suggestion preselection with traffic sort
2026-05-26 18:11:14 -04:00
Ben Senescu
45234e6945
Fix backlink tab states ( #218 )
...
* Fix tab active state wiring across result views
* Add spam filters to referring domains
2026-05-22 22:49:05 -04:00
Ben Senescu
9c9477c1cf
Clarify keyword metric tooltips ( #216 )
2026-05-22 21:47:28 -04:00
Ben Senescu
44073498ed
Use TanStack links for internal table and shell navigation ( #215 )
...
* Use TanStack Link for audit issues and external RD links
* Use router link for billing menu
* Fix brand lookup tooltip clipping
2026-05-22 21:29:45 -04:00
Ben Senescu
90f369ad46
readme: update roadmap + add MCP and skills ( #213 )
2026-05-22 09:55:42 -04:00
Ben Senescu
4f638db702
Add Reddit conversion tracking ( #208 )
2026-05-20 23:36:30 -04:00
Ben Senescu
aebc779b93
Share search tab queueing across Backlinks, Domain Overview, and Keyword Research ( #207 )
2026-05-20 18:33:53 -04:00
Ben Senescu
2484f93ce6
Refactor pages to improve performance and consistency ( #205 )
2026-05-20 17:23:09 -04:00
Ben Senescu
efef3894cb
Add shared search tabs to domain overview and backlinks ( #192 )
...
* Add shared search tabs to domain and backlinks
* refactor: share search tab framework with keywords
* fix: normalize backlinks tab validation target
2026-05-18 14:51:43 -04:00
Ben Senescu
701ace3dff
Add Google sign in and two-step auth flow ( #193 )
2026-05-13 20:55:20 -04:00
Ben Senescu
8773662b16
feat: unify multi select behavior across the app
2026-05-12 20:38:31 -04:00
Ben Senescu
0bfdc56c45
feat: add tabs for keyword research ( #185 )
2026-05-12 19:30:19 -04:00
Ben Senescu
ae2031bfad
Harden domain and backlinks validation before external calls ( #183 )
...
* Validate backlinks targets before calling DataForSEO
* Validate backlinks targets before provider calls
2026-05-12 19:15:51 -04:00
Ben Senescu
570fe2aa62
Add keyword tags, server-side saved filtering, and filtered exports ( #179 )
2026-05-12 00:02:43 -04:00
Ben Senescu
db10ffa250
Fix Claude Desktop MCP OAuth registration and resume flows ( #173 )
2026-05-08 18:07:05 -04:00
Ben Senescu
2234cb54fc
Show project nav on app pages ( #171 )
2026-05-08 16:00:04 -04:00
Ben Senescu
239a5a9e2b
Add Claude and Codex desktop setup guides with brand logos
...
- Drop redundant codex mcp login step from the CLI flow
- Add Claude Desktop and Codex Desktop accordion entries
- Lead each setup-guide row with its product logo
2026-05-08 15:20:42 -04:00
Ben Senescu
93ee343c63
Polish AI & MCP page and move out of project scope
...
- Move /p/$projectId/ai to /ai so the page can be linked directly
- Lead with a copyable MCP server URL and trim the surrounding copy
- Make Claude Code and Codex setup guides collapsible accordions
- Add an Available tools section grouped into Keywords and Domain
2026-05-08 14:56:26 -04:00
Ben Senescu
02fcfb9834
Update AI page for MCP setup guidance
2026-05-08 13:40:51 -04:00
Ben Senescu
fb265e3a3a
ci: run prettier
2026-05-06 15:45:09 -04:00
Ben Senescu
0c356fac19
fix: change google sheets export copy
2026-05-06 15:43:26 -04:00
Ben Senescu
ca260f544b
feat: improve mobile UX ( #155 )
2026-05-06 12:52:05 -04:00
Ben Senescu
b9ad31704f
Clarify keyword intent badges ( #157 )
2026-05-06 12:30:33 -04:00
Ben Senescu
9e5afc9d48
feat: Add shared table component ( #154 )
...
* fix rank tracking unranked filters
* improve modal dismissal and range selection
* refactor: create shared table component
2026-05-06 11:23:07 -04:00
Ben Senescu
7f892ca433
Merge pull request #19 from every-app/split-modal-dismissal
...
fix: exit closes modal + accessible labels
2026-05-06 10:46:45 -04:00
Ben Senescu
6f50850b5a
fix rank tracking unranked filters ( #18 )
...
Co-authored-by: Granata005 <granata005@gmail.com>
2026-05-06 10:46:33 -04:00