1 pointby whitehatd2 hours ago1 comment
  • whitehatd2 hours ago
    Some more context on the build:

    I wanted to solve the problem of founders sending pitch decks into the void with zero visibility. With Leyoda, you get a shareable card at leyoda.eu/s/{id} — paste it anywhere and it renders a rich OG preview. Behind the scenes, every view is tracked with referrer attribution, geolocation, and device fingerprinting.

    The AI bot detection was a rabbit hole. Bots don't execute client-side JS, so we track them server-side during SSR. We identify 70+ crawlers organized into tiers — AI chatbots (ChatGPT, Claude, Gemini), data scrapers (GPTBot, CCBot, Bytespider), AI agents (NovaAct, Manus, Devin), and search indexers (Perplexity, Brave, Kagi). We even catch Gemini's bare "Google" user-agent.

    Stack: Java 21 / Spring Boot, Next.js 16, PostgreSQL + PostGIS, MinIO. Cards use raw CSS transforms and JS touch handlers — no animation libraries. ClamAV scans all uploads. Blue-green deploys with zero downtime.

    The result is this: Demo (shareable card link): https://leyoda.eu/s/0d91cf5f-b5a1-4e76-8d75-ad4dd9b09896

    If you open it on mobile, it feels like a “startup swipe card” + flip-to-deck.

    Happy to answer questions about the architecture or the analytics pipeline.