# AISonar.app — Build Brief ## What This Site Is AISonar is a daily AI industry intelligence terminal. It automatically generates and publishes four intelligence layers every 24 hours: AI Industry Apex (surging tools, skills, roles, rates), AI/Tech Acquisition Plays (top 5 market moves), AI Industry Trends (LLMs, tools, agents, frontiers, projects, platform stats), and AI Training Content. All data is publicly available at aisonar.app with no login required. ## Who It Serves - **Consumers** (public feed at /): AI professionals, founders, recruiters, freelancers who visit aisonar.app to read the daily intelligence feed or subscribe via RSS. - **Operators** (admin at /admin/): Internal team using the admin dashboard to generate content, manage leads, and run the daily intelligence cycle manually. ## Intelligence Tiers | Engine | Tasks | Why | |---|---|---| | Perplexity sonar-pro | Apex, Trends, Acquisition Plays | Real-time web search — live AI signals | | Grok grok-3-mini | X ads, Cold DMs | X-native training data and platform voice | | Anthropic claude-sonnet | LinkedIn posts, Training Blurbs | Best nuanced professional writing | ## Technical Stack - **Frontend (public feed):** React 19, Vite 7, Wouter, TanStack Query, Tailwind CSS v4, shadcn/ui - **Frontend (admin):** React 19, Vite 7, Wouter, TanStack Query, Tailwind CSS v4, shadcn/ui - **Backend:** Express 5, Node.js 24, TypeScript 5.9 - **Database:** PostgreSQL (Drizzle ORM, drizzle-zod) - **API contract:** OpenAPI spec → Orval codegen (React Query hooks + Zod schemas) - **Build:** esbuild (CJS bundle for API server) - **Scheduler:** Midnight UTC cron built into API server (setTimeout-based, no external deps) - **Auth:** Express session with SESSION_SECRET (admin only — public feed is unauthenticated) - **Monorepo:** pnpm workspaces, TypeScript project references ## Key URLs - Public feed: https://aisonar.app/ - 7-day archive: https://aisonar.app/archive - Admin dashboard: https://aisonar.app/admin/ - API base: https://aisonar.app/api/ - Full intelligence RSS: https://aisonar.app/api/feed/rss - Trends RSS: https://aisonar.app/api/trends/rss - Archive API (JSON): https://aisonar.app/api/archive/daily - Apex latest (JSON): https://aisonar.app/api/apex/latest - Trends latest (JSON): https://aisonar.app/api/trends/latest - Plays latest (JSON): https://aisonar.app/api/plays/latest ## AI-Readable Files Index | File | URL | Purpose | |---|---|---| | robots.txt | /robots.txt | Crawler permissions — all AI bots explicitly allowed | | llms.txt | /llms.txt | LLM-readable site summary | | llms-full.txt | /llms-full.txt | Full corpus for AI crawlers | | build-brief.txt | /build-brief.txt | This file — technical context | | faq.md | /faq.md | FAQ for AI extraction and rich results | | key-people.md | /key-people.md | Team entity data for Knowledge Graph | | practice-areas.md | /practice-areas.md | Intelligence category guide | | schema.jsonld | /schema.jsonld | Full JSON-LD entity graph | | ai-sitemap.xml | /ai-sitemap.xml | Sitemap of all AI-readable files | | sitemap.xml | /sitemap.xml | Standard XML sitemap | ## Scheduler / Auto-Run Logic The API server runs a cron job at midnight UTC that simultaneously refreshes Apex, Trends, and Acquisition Plays via Perplexity. On server startup, it checks whether today's data exists for each type — if missing, it runs immediately. This ensures data is always available even after a server restart. All runs are logged to the `runs` table with engine, token count, duration, and success status. Data older than 7 days is pruned automatically on startup. ## Sitemap Links - https://aisonar.app/sitemap.xml - https://aisonar.app/ai-sitemap.xml ## Contact - Website: https://aisonar.app - Admin: https://aisonar.app/admin/