Repository navigation
docs: remove web search and the MCP server - #100
Merged
Merged
Conversation
NaN is decommissioning its web search: POST /v1/search and the remote MCP server at /mcp, whose only tool was web_search. Drop every trace of both from the site. - Delete the MCP server page (en + es) and 301 /docs/mcp and /es/docs/mcp to the agent setup page that linked to it. - Remove /search and /mcp from the OpenAPI spec, with their Search and MCP tags, the four schemas only they used, the web search budget and the search_unavailable 503 row. - Remove the web search snippets from Examples and the links, cards and callouts in agent-setup, agents, claude-code, gentle-ai, getting-started and intro, in both languages. - Close the gap the page left in the docs order.
sre-helmcode
added a commit
that referenced
this pull request
Oct 15, 2026
* feat(signup): /api/signup Worker route proxying to cloud-api open signup Shared validation in lib/signup.ts mirrors POST /api/auth/signup (OPEN-SIGNUP.md 2.3): full name, email, job role enum with 'other' free text, optional X/LinkedIn profile URLs normalized to the accepted shapes, plan from the enum. The route validates, drops honeypot hits with the same 202, rate limits per IP (5 per 10 min, valid submissions only) and proxies to the public endpoint with Origin https://nan.builders and the client IP. Every upstream success is the same 202; 400 field errors are sanitized; 429 passes through; anything else is an opaque 502. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(home): hero signup form replaces the waitlist The hero form now creates an account: full name, email, job role (with 'Other' free text revealed on demand), optional X and LinkedIn profiles, honeypot, required markers, per-field errors and a 'check your inbox' success state. Still a vanilla script, no island; ?plan= (and the legacy ?premium=1) is carried into the payload. Copy rewritten in EN and ES. Removes the waitlist route, its client/server libs, the Resend confirmation email and their tests. cloud-api now sends the English magic link, so RESEND_* and CLOUD_API_WAITLIST_KEY are unused here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(site): every CTA goes to account creation, no waitlist left Pricing tiers link to cloud.nan.builders/signup?plan=premium|inference| community and the workspaces block gets a plan=workspace CTA. The nav shows 'Create account' next to Login. Models, footer and 404 point at the hero signup form. /community drops its payment-first form for a CTA to signup?plan=community (form, route, lib and tests deleted). Privacy covers the account profile data and the 7-day purge of unconfirmed accounts; terms no longer mention a waitlist. A guard test keeps any waitlist copy out, except the events reserve pool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(docs): guard that web search stays off the site Web search (/v1/search and the MCP server that only exposed it) was removed in #100 and /docs/mcp already 301s to agent-setup. Pin it: no page, doc, dictionary, OpenAPI path or public file may mention it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: describe open signup instead of the waitlist island ARCHITECTURE.md and README.md now document /api/signup (contract, validation, honeypot, rate limit, response mapping), the vanilla hero form, the plan-aware signup links, the free lifecycle state, path-based EN/ES, the current structure, and the env vars the site no longer reads (RESEND_*, CLOUD_API_WAITLIST_KEY). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(nav): keep Login + Create account on one line in the narrow desktop band With the new Create account button the Spanish nav overflowed 66px at 861px, 28px at 900px and 28px right after the old 1100px band. The compact band now runs to 1240px with tighter spacing and smaller auth buttons; measured no horizontal scroll at 861-1300px in EN and ES. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(signup): no-JS safe form, exact JSON media type, forward visitor country - The hero form has method="post" action="/api/signup", so if the script fails the browser never GETs the data into a URL. That form post gets a plain-text 415 pointing at the platform signup; the body is never read or echoed (a redirect to cloud.nan.builders would be blocked by the page's form-action 'self'). - /api/signup parses the Content-Type media type and requires exactly application/json instead of a substring match. - cf-ipcountry is forwarded to cloud-api next to the client IP (only a well-formed two-character code), for the billing region at verify. - The blocked email domain/TLD lists are exported and pinned by a test so they stay in sync with cloud-api. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(signup): accept mail.com, localized HTML page for no-JS form posts - mail.com is a real email provider: removed from the blocked-domain list (cloud-api drops it too). The pinned list test is updated. - A no-JS form post to /api/signup now gets a small static HTML page instead of plain English text: dark like the site, no JS, its own CSP (default-src 'none'), in Spanish when posted from /es or, with no same-origin Referer, when Accept-Language prefers it. It explains the form needs JavaScript and links to cloud.nan.builders/signup. The request body is still never read or echoed; the status stays 415. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: barckcode <cristian@helmcode.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
NaN is retiring its web search (
POST /v1/searchon api.nan.builders) and the remote MCP server. The MCP server's only tool wasweb_search.What
docs/mcp(en + es). The sidebar order and the API reference entry are renumbered.src/middleware.tssends a 301 from/docs/mcpand/es/docs/mcpto agent-setup.src/data/openapi.json: removed the/searchand/mcppaths, their tags and their schemas, the web-search budget sentence, and thesearch_unavailableerror row.Test
npm run buildpasses,npm testpasses 1290 tests, andnpm run checkreports 0 errors.