CORE DIRECTORY // SYSTEM.USER.DIANA_ISMAIL

Labs by Diana — Experiments that ship.

Side projects that got out of hand. AI tools built for problems I kept tripping over — now live, now yours.

Agentic-AIActive

GEO Audit

MODULE_005

TECHNICAL_OVERVIEW

v2.10.17ActiveAgentic-AI

Submit a URL and GEO Audit fetches the page content via Cheerio and Turndown (HTML to Markdown, capped at 30K characters), then scores it across three audit tiers. The free basic audit evaluates three core metrics — Fact Density, Entity Salience, and Extractability — and returns an overall GEO score with AI citation simulation, findings, and recommendations. The advanced audit (1 credit) expands to eight metrics, adding Source Citation, Schema Markup, Direct Answer Formatting, Multimedia Optimization, and Conversational Flow, with an executive summary, citation examples, competitor gap analysis, and platform fit assessment. The commerce audit (2 credits) scores against six weighted protocols — Universal Baseline (40%), Google UCP (20%), OpenAI ACP (15%), Amazon Buy for Me (10%), Perplexity (10%), and Microsoft Copilot (5%) — each running 7–9 binary checks to produce a readiness verdict: discovery-ready at 50+, transaction-ready when any non-Universal protocol also scores 60+.

All three audit types stream results via SSE. The frontend and backend are fully decoupled: React 19 on Vite 7 communicates with an Express 4 API on Node 22, with VITE_* vars baked into the browser bundle at build time and all API keys restricted to the server layer. LLM model selection (OpenAI, Gemini, Anthropic) and prompt versions are managed through a database-backed admin UI with version history, so model and prompt changes deploy without code changes. JWT authentication enforces a role hierarchy (user/admin/super_admin). Stripe handles credit purchases. Results render as Recharts visualisations with PDF export. Built with React 19, TypeScript, Vite 7, Tailwind CSS 4, Express 4, PostgreSQL, Zod, Docker, Nginx, and deployed on Railway.

PROJECT_LEARNINGS_LOG

KEY_LEARNING_01

SSE streaming requires fetch() with ReadableStream, not EventSource, when auth cookies are needed — EventSource does not support sending credentials or custom headers, a hard constraint that only surfaced during integration with authenticated endpoints.

KEY_LEARNING_02

Tailwind CSS v4's oklch() colour space breaks html2canvas's CSS parser. Rather than patching stylesheets (getComputedStyle reads resolved values, not raw text), the fix pre-renders each Recharts SVG to a PNG data URL via XMLSerializer + offscreen canvas, then swaps it in the onclone callback so html2canvas never inspects an SVG element.

KEY_LEARNING_03

SSRF protection via hostname regex must cover the full private IP space (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16, plus ::1) — missing a single octet range leaves fetch-based server-side requests open to internal network scanning.

GEOAI Search OptimizationReact 19TypeScriptViteTailwind CSSExpress.jsNode.jsPostgreSQLOpenAIGeminiAnthropicCheerioTurndownSSE StreamingRechartsStripeZodJWTResendDockerNginxRailwaysemantic-release

SYSTEM.INT // 2026 LABS_CORE v2.18.4

LATENCY: 24msSTATUS: NOMINAL