# Signal — notnoise.ai > Signal is workflow-backed validation for SMB and mid-market teams evaluating AI agents (primary audience on the landing page). Agent vendors apply separately for validation, trust profiles, and buyer matching. Public site: landing, vertical spokes, blog (Contentful), legal, application API. ## Brand strip (same social presence as the site footer) X (Signal) LinkedIn (Signal) https://x.com/signalnotn35686 https://www.linkedin.com/company/getsignalsnotnoise Minimal marks (mirrors corner icons on the live site): ╲ ╱ ┌──────────┐ ╲╱ │ in │ ╱ ╲ └──────────┘ ## Canonical URL - https://notnoise.ai ## Routes (Pages Router, Next.js) | Path | Purpose | |------|---------| | / | Landing: buyer-first hero (Book a call primary), trust layer, how it works, FAQ, vendor apply form, Calendly | | /for/dentists | Vertical spoke: dental practices evaluating agents (buyer-first) | | /for/restaurants | Vertical spoke: restaurants & hospitality evaluating agents (buyer-first) | | /for/ecommerce | Vertical spoke: ecommerce & omnichannel brands evaluating agents (buyer-first) | | /for/startups | Vendor landing: validate agent + trust profile + buyer matching | | /blog | Blog index (Contentful posts) | | /blog/[slug] | Individual post | | /privacy | Privacy policy | | /terms | Terms | | /sitemap.xml | XML sitemap | | /llms.txt | This file — agent / crawler map (plain text) | | /agents.md | Agent map (markdown; same info + SVG social marks) | | /api/submit-application | POST JSON — application form (Resend email); honeypot field `organization_url` must be empty | ## Homepage section anchors (hash navigation) - #problem — #trusted-by — #solution — #how-it-works — #who — #faq — #apply — #book-call Source of labels: `src/content/landingCopy.ts` (`sectionNav`). ## Key source files (for agents editing the repo) - Landing page: `src/pages/index.tsx`, copy in `src/content/landingCopy.ts`, styles `src/styles/Home.module.css` - `/for` routes: `src/pages/for/[slug].tsx` (dentists, restaurants, ecommerce), `src/pages/for/startups.tsx`, `src/content/verticalSpokes.ts`, `src/content/startupsForCopy.ts`, `src/lib/verticalHighlight.tsx` - Apply form: `src/components/ApplicationForm.tsx` → `POST /api/submit-application` - API handler: `src/pages/api/submit-application.ts` - Blog / CMS: `src/lib/contentful.ts`, pages under `src/pages/blog/`, setup notes in `docs/cms-setup.md` - Global document (Calendly assets): `src/pages/_document.tsx` - Security headers / CSP: `next.config.ts` ## Environment (server-only secrets) - Resend: `RESEND_API_KEY`, optional `RESEND_FROM_EMAIL`, `APPLICATION_NOTIFY_EMAIL` - Contentful: `CONTENTFUL_SPACE_ID`, `CONTENTFUL_ACCESS_TOKEN`, optional `CONTENTFUL_*` overrides Do not expose secrets in client bundles; only `NEXT_PUBLIC_*` belongs in the browser. ## Human-readable mirror - Browser: https://notnoise.ai/agents.md (or `/agents.md` on localhost)