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
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
a3721a0f53
Normalize dynamic MCP client registration for Perplexity ( #217 )
2026-05-22 22:22:42 -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
5cef024c68
Add skills for agents ( #211 )
...
* Add OpenSEO skills for keyword and link workflows
* Remove credit scare copy from MCP and skills
* Remove local skills test sandbox
* Format OpenSEO skill docs
* Disclose OpenSEO credit threshold for MCP research
* Tighten OpenSEO skill workflows
2026-05-22 08:46:06 -04:00
Ben Senescu
3456af12fe
bump to reddit v3 api ( #209 )
2026-05-21 00:08:50 -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
01ecf11415
Make default project creation race-safe ( #206 )
2026-05-20 17:34:57 -04:00
Ben Senescu
2484f93ce6
Refactor pages to improve performance and consistency ( #205 )
2026-05-20 17:23:09 -04:00
Ben Senescu
74ba0c4fc8
Prevent duplicate Default projects and add D1 cleanup tooling ( #203 )
2026-05-19 20:53:13 -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
7fa4d5cade
Simplify Loops signup contact sync ( #202 )
2026-05-18 14:24:06 -04:00
Ben Senescu
7a0ab0de2c
Add more mcp tool metadara + ChatGPT domain verification route ( #197 )
2026-05-14 13:02:08 -04:00
Ben Senescu
0ce787889a
Redirect signups to the homepage ( #196 )
2026-05-14 08:17:44 -04:00
Ben Senescu
f926a0f78c
add users to loops post google sign in ( #194 )
2026-05-13 21:44:34 -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
a98407176b
Remove unused Better Auth OAuth and JWKS tables ( #188 )
2026-05-13 15:22:10 -04:00
Ben Senescu
49a2d7f732
Set MCP access token TTL to 24 hours ( #191 )
2026-05-13 15:01:32 -04:00
Ben Senescu
fa20de2126
Send Loops contacts after email verification ( #189 )
2026-05-13 13:21:57 -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
740c899764
Create Loops profiles on user signup ( #180 )
2026-05-11 21:24:23 -04:00
Ben Senescu
b9b85a6d48
Support Cloudflare Access and local no-auth MCP modes ( #166 )
2026-05-10 17:31:30 -04:00
Ben Senescu
b633da8844
Mark Claude Desktop connector approval optional ( #175 )
2026-05-10 16:36:53 -04:00
Ben Senescu
0dd818e114
Replace better-auth with Cloudflare for oauth ( #174 )
2026-05-08 22:19:55 -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
f58efea164
Improve MCP structured result visibility ( #167 )
2026-05-08 16:17:28 -04:00
Ben Senescu
2234cb54fc
Show project nav on app pages ( #171 )
2026-05-08 16:00:04 -04:00
Ben Senescu
103b6fe91c
fix: add additional well known for claude.ai + Claude Desktop ( #170 )
...
* Simplify MCP discovery metadata and lazy auth flow
* Fix ci check for MCP discovery branch
2026-05-08 15:59:43 -04:00
Ben Senescu
36b60f240f
Merge pull request #165 from bensenescu/codex/update-ai-tab
...
Update the AI tab for MCP setup and usage guidance
2026-05-08 15:30:18 -04:00
Ben Senescu
38fbac159f
ci: run prettier on AI page
2026-05-08 15:27:12 -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
4cd02e36f4
Advertise offline_access in MCP scope metadata
2026-05-08 13:40:26 -04:00
Ben Senescu
57790b930f
feat: add OpenSEO MCP tools ( #161 )
2026-05-08 00:34:29 -04:00
Ben Senescu
0ff7bc96b2
Add stateless MCP server ( #162 )
2026-05-07 23:38:00 -04:00
Ben Senescu
6231424e88
feat: add personal access tokens ( #159 )
...
* feat: add personal access tokens
* feat: replace MCP tokens with OAuth foundation
* fix: keep OAuth constants private in auth foundation
* fix: clean up mcp oauth branch scope
* fix: expose oauth metadata endpoints
* fix: trim mcp oauth config to non-default options
Drop OIDC scopes, the org-id JWT claim, and the openid-configuration
metadata endpoint since the MCP integration is OAuth-only and the org
gets resolved server-side. Also remove options that just duplicated
better-auth defaults.
* fix: drop redundant oauth metadata helpers
Remove `session.storeSessionInDatabase: true` since better-auth only
enforces it when secondaryStorage is configured. Inline the
`getHostedBaseUrlForOAuthMetadata` alias and skip the async
`getOAuthServerConfig()` call in the protected-resource metadata handler
— the issuer is just `baseURL` without a custom jwt.issuer override.
* docs: explain cache headers on mcp metadata response
* Use escaped file routes for OAuth metadata
* save
2026-05-06 22:41:02 -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