{
  "a11y": {
    "skipToContent": "Skip to content"
  },
  "seo": {
    "home": {
      "title": "IT Nuts | IT Management, Security & AI Solutions",
      "description": "We are IT Nuts. We're crazy about technology, but we take your IT dead seriously. IT outsourcing, cybersecurity and AI solutions for businesses."
    },
    "about": {
      "title": "About Us | IT Nuts",
      "description": "We're not a corporation in suits. We're a crew of tech enthusiasts who live by code, breathe cloud and dream in binary."
    },
    "services": {
      "title": "IT Services | IT Nuts",
      "description": "IT outsourcing, cybersecurity, cloud solutions, custom development, AI audits, consulting and automation."
    },
    "stats": {
      "title": "System Status | IT Nuts",
      "description": "We don't sell promises. We sell metrics. 99.5% SLA uptime target, incident response under 60 minutes, zero data loss."
    },
    "contact": {
      "title": "Contact | IT Nuts",
      "description": "Tell us what's bugging you. We respond within 24 hours. Usually sooner."
    },
    "aissistant": {
      "title": "AIssistant: AI Receptionist for Small Businesses | IT Nuts",
      "description": "An AI receptionist that answers calls, replies to emails and books appointments. 24/7. In your language. Starting at €99/mo."
    },
    "cases": {
      "title": "Case Studies | IT Nuts",
      "description": "How we work on the inside: the agent-team case study, backed by data from git, the backlog and reviews."
    },
    "blog": {
      "title": "Blog | IT Nuts",
      "description": "Case studies from the field, technical deep-dives, thoughts on AI. No marketing fluff."
    },
    "matrix": {
      "title": "AIssistant Plan Comparison | IT Nuts",
      "description": "Full comparison of AIssistant plans: Email, Email Pro, Voice, Combo, Executive and Enterprise. Limits, features, add-ons and pricing."
    },
    "privacy": {
      "title": "Privacy & cookies | IT Nuts",
      "description": "What personal data IT Nuts s.r.o. processes when you visit the website or contact us, for what purpose, for how long, and what your rights are. No cookies, no analytics."
    },
    "notFound": {
      "title": "Page Not Found | IT Nuts",
      "description": "This page doesn't exist or has moved. Head back to the IT Nuts homepage."
    },
    "caseAgentTeam": {
      "title": "Case study: 58 commits, three stacks, one day | IT Nuts",
      "description": "How one developer with a team of five AI agents completed 30 backlog items in a single day. Agent team topology, adversarial review, and the AIssistant project numbers."
    },
    "blogPost": {
      "p2": {
        "title": "LangGraph vs. custom orchestration: what we chose for AIssistant | IT Nuts",
        "description": "Why we didn't build AIssistant on an out-of-box framework and wrote our own state machine instead. Trade-offs, security layers, and lessons learned."
      },
      "p3": {
        "title": "GDPR and AI: what every AI chatbot in the EU must have | IT Nuts",
        "description": "A concrete checklist for AI chatbots and agents: data residency, right to erasure, logging, transparency, and what regulators actually check."
      },
      "p4": {
        "title": "Why a receptionist costs a fortune and why it won't slow your business | IT Nuts",
        "description": "The math for small businesses: the true cost of a receptionist, when a human pays off, when AI does, and when to combine both."
      },
      "p6": {
        "title": "RAG over internal data: when it makes sense and when it doesn't | IT Nuts",
        "description": "Clients want \"AI over our documents\". We break down the decision tree: when to deploy RAG, when better search is enough, and when another path wins."
      },
      "p7": {
        "title": "AI Agent Security I: The lethal trifecta, prompt injection and layered defense | IT Nuts",
        "description": "What the lethal trifecta of AI agents is and why it makes security a survival requirement. Intent architecture, prompt injection anatomy and six layers of defense."
      },
      "p8": {
        "title": "AI Agent Security II: Advanced jailbreaks, hallucinations and defense in practice | IT Nuts",
        "description": "Crescendo, Skeleton Key, Many-Shot Jailbreaking. Hallucinations as a security problem, hard limits in code, kill switch and a security roadmap."
      },
      "p9": {
        "title": "Why invest in custom software | IT Nuts",
        "description": "Off-the-shelf or custom-built? The key factors that speak for custom software in the long run: control, security and total cost."
      }
    }
  },
  "navbar": {
    "menuLabel": "Open navigation menu",
    "about": "About",
    "services": "IT Services",
    "stats": "Stats",
    "contact": "Contact",
    "aissistant": "AIssistant",
    "cases": "Case Studies",
    "blog": "Blog",
    "tryFree": "Try for free",
    "consultFree": "Free consultation"
  },
  "footer": {
    "tagline": "AI-first IT crew from Prague. Makers of AIssistant. We're crazy about technology, but we take your IT dead seriously.",
    "colProduct": "Product",
    "colServices": "Services",
    "colCompany": "Company",
    "linkPricing": "Pricing",
    "linkCompare": "Compare plans",
    "linkPrivacy": "Privacy & cookies",
    "linkStatus": "System Status",
    "status": "All systems operational",
    "copyright": "© {{year}} IT Nuts s.r.o. OPERATING AT MAXIMUM INSANITY.",
    "systemStatus": "System Status",
    "contact": "Contact",
    "discordJoin": "Join",
    "legal": {
      "ico": "Company ID",
      "icoValue": "29622361",
      "vat": "VAT ID",
      "vatValue": "CZ29622361",
      "baseValue": "Evropská 2758/11, 160 00 Prague 6 - Dejvice, Czech Republic",
      "phoneValue": "+420 606 728 483"
    }
  },
  "terminal": {
    "dialogLabel": "IT Nuts terminal",
    "closeLabel": "Close terminal",
    "inputLabel": "Terminal command",
    "welcome": "IT Nuts Terminal v1.0",
    "helpPrompt": "Type \"help\" for a list of commands.",
    "commandNotFound": "Type \"help\" for a list of commands.",
    "help": {
      "title": "Available commands:",
      "help": "  help          - show this list",
      "services": "  services      - our services",
      "aissistant": "  aissistant    - about AIssistant",
      "contact": "  contact       - contact details",
      "about": "  about         - about IT Nuts",
      "stats": "  stats         - system metrics",
      "pricing": "  pricing       - AIssistant pricing",
      "clear": "  clear         - clear the terminal",
      "sudoRm": "  sudo rm -rf / - ???",
      "ping": "  ping          - pong?",
      "whoami": "  whoami        - who are you?",
      "matrix": "  matrix        - follow the white rabbit",
      "coffee": "  coffee        - ☕",
      "exit": "  exit          - close the terminal"
    },
    "services": {
      "header": "┌─ IT NUTS SERVICES ────────────────────┐",
      "spacer": "│                                       │",
      "item1": "│  > IT Outsourcing                     │",
      "item2": "│  > Cloud & DevOps                     │",
      "item3": "│  > Cybersecurity                      │",
      "item4": "│  > AIssistant - AI Receptionist       │",
      "item5": "│  > Custom Development                 │",
      "footer": "└───────────────────────────────────────┘",
      "more": "More at: "
    },
    "aissistant": {
      "title": "AIssistant v1.0",
      "separator": "═══════════════════════════════════",
      "line1": "AI receptionist for small businesses.",
      "line2": "Answers calls. Replies to emails.",
      "line3": "Books appointments. 24/7.",
      "pricing": "Plans starting at €99/mo.",
      "trial": "14 days free with any plan.",
      "more": "More at: "
    },
    "contact": {
      "header": "┌─ CONTACT ─────────────────────────────┐",
      "spacer": "│                                       │",
      "email": "│  Email:  info@it-nuts.cz              │",
      "web": "│  Web:    it-nuts.com                  │",
      "cta": "│  > Write to us: ",
      "footer": "└───────────────────────────────────────┘"
    },
    "about": {
      "title": "IT NUTS - Tech Enthusiasts",
      "separator": "──────────────────────────────────",
      "line1": "Small team. Big ambitions.",
      "line2": "We do IT management, security",
      "line3": "and AI solutions for businesses",
      "line4": "that want to run better.",
      "more": "More at: "
    },
    "stats": {
      "title": "SYSTEM STATUS: ONLINE",
      "separator": "──────────────────────",
      "uptime": "Uptime SLA:     99.5%",
      "responseTime": "Incident response: < 60 min",
      "dataLoss": "Data lost:      0",
      "more": "More at: "
    },
    "pricing": {
      "title": "AIssistant PRICING",
      "separator": "════════════════════════════════",
      "trial": "First 14 days free on any plan. Card required.",
      "email": "Email       €99       200 emails/mo        [COMING SOON]",
      "emailPro": "Email Pro   €149      500 emails/mo        [COMING SOON]",
      "voice": "Voice       €249      + 300 min calls      [COMING SOON]",
      "combo": "Combo       €299      email + voice        [COMING SOON]",
      "executive": "Executive   €749      everything unlimited [COMING SOON]"
    },
    "exit": "Closing terminal...",
    "ping": "pong! (latency: ~75ms)",
    "whoami": "guest@it-nuts.cz (a visitor with great taste)",
    "coffee": {
      "line1": "    ( (",
      "line2": "     ) )",
      "line3": "  ........",
      "line4": "  |      |]",
      "line5": "  \\      /",
      "line6": "   `----´",
      "msg": "Here's your coffee. You deserve it."
    },
    "matrix": {
      "line1": "Wake up, Neo...",
      "line2": "The Matrix has you...",
      "line3": "Follow the white rabbit.",
      "line4": "01001001 01010100 00100000",
      "line5": "01001110 01010101 01010100 01010011"
    },
    "sudo": {
      "line1": "🚨 SECURITY ALERT 🚨",
      "line2": "Nice try. Not gonna happen.",
      "line3": "Incident logged.",
      "line4": "...just kidding. But seriously, don't."
    }
  },
  "pricing": {
    "comingSoon": "Coming Soon",
    "perMonth": "/mo"
  },
  "home": {
    "hero": {
      "badge": "AI-first IT crew from Prague",
      "title": "We are <em class=\"not-italic text-primary\">IT Nuts</em>.<br />We're crazy about technology, but we take your IT <em class=\"italic text-secondary\">dead seriously</em>.",
      "lanes": {
        "it": {
          "title": "I want an IT crew"
        },
        "ai": {
          "title": "I want an AI receptionist"
        }
      },
      "lead": "We run company IT and build the AI receptionist AIssistant."
    },
    "proof": {
      "uptime": "SLA Uptime Target",
      "uptimeValue": "99.5%",
      "responseTime": "Incident Response",
      "clients": "Infrastructure Monitoring",
      "tickets": "Data Lost"
    },
    "product": {
      "badge": "Next-generation AI receptionist",
      "title": "A missed call will never miss <em class=\"italic text-primary\">a booking</em> again.",
      "priceNote": "Multilingual · 24/7 · from €99/mo",
      "liveLabel": "Live call transcript",
      "aiOnline": "AI online",
      "cta": "Try free for 14 days",
      "more": "More about AIssistant"
    },
    "about": {
      "title": "Three things that are <span class=\"text-primary\">not negotiable</span>."
    },
    "services": {
      "title": "Our <span class=\"text-secondary\">superpowers</span>",
      "subtitle": "Besides our product, we do ordinary IT too. Because someone has to. Servers, backups, networks and that mysterious cable nobody knows where it leads. We keep your infrastructure humming so your uptime (and your mood) never drops.",
      "allButton": "All services",
      "card1": {
        "title": "Custom Development",
        "text": "Java/Kotlin backends, integrations, web apps. Our home turf."
      },
      "card2": {
        "title": "Workflow Automation & AI Agents",
        "text": "Custom LangGraph agents, n8n, AI over your data (RAG)."
      },
      "card3": {
        "title": "AI & Tech Consulting",
        "text": "Architecture reviews, stack selection, AI readiness audits."
      },
      "card4": {
        "title": "Cloud & DevOps",
        "text": "AWS/Azure/GCP, Terraform, CI/CD. No unnecessary complexity."
      },
      "automation": {
        "title": "Automation",
        "text": "Process automation, RPA, workflow. Let the machines do the work for you."
      },
      "consulting": {
        "title": "Consulting",
        "text": "CTO as a Service, IT strategy, digital transformation. We'll show you the way."
      }
    },
    "cta": {
      "title": "Ready for IT that won't drive you <span class=\"text-secondary\">up the wall</span>?",
      "subtitle": "Write to us. The first consultation is free.",
      "button": "Drop the IT nuts a line"
    }
  },
  "about": {
    "hero": {
      "title": "Why entrust your company to a bunch of <span class=\"text-primary\">&ldquo;nuts&rdquo;</span>?",
      "text": "We're not a corporation in suits. We're a crew of tech enthusiasts who live by code, breathe cloud and dream in binary. We treat every project as our own."
    },
    "values": {
      "detail": {
        "title": "Obsession with Detail",
        "text": "Every pixel, every endpoint, every config file: we fine-tune everything until it's perfect. Not because we have to, but because we can't help it."
      },
      "speech": {
        "title": "Plain Language",
        "text": "No corporate bullshit. We speak clearly, write plainly and explain everything so you understand it even without an IT degree."
      },
      "uptime": {
        "title": "Zero Tolerance for Downtime",
        "text": "Your business runs 24/7 and we respect that. Monitoring, alerting, redundancy: we do everything to make sure your system never goes down."
      }
    },
    "team": {
      "title": "Who's behind it all",
      "subtitle": "A crew that isn't afraid to pull servers out of the rack, or to finish an AI agent by sunrise.",
      "milan": {
        "role": "Chief Architect / Caffeine Addict",
        "name": "Milan &ldquo;Root&rdquo; Jir&aacute;sek",
        "photoAlt": "Milan “Root” Jirásek"
      },
      "lucie": {
        "role": "BigData Mage / Python Queen",
        "name": "Lucie &ldquo;Sudo&rdquo; Kapustov&aacute;",
        "photoAlt": "Lucie “Sudo” Kapustová",
        "relation": "We collaborate with"
      },
      "jiri": {
        "role": "Cloud Whisperer / Server Guru",
        "name": "Jiří &ldquo;Ping&rdquo; Kolařík",
        "photoAlt": "Jiří “Ping” Kolařík",
        "relation": "We collaborate with"
      },
      "founder": {
        "lead": "I founded IT Nuts and I still design the architecture of every project myself, so I can stand behind what I build.",
        "h1": {
          "title": "Since 2009",
          "text": "I started out on company intranets and reports, then moved on to web applications. Today I mostly build large systems that companies run their core business on."
        },
        "h2": {
          "title": "Payments and banks",
          "text": "I built payment services for a large telecom operator and an investment platform for a digital bank."
        },
        "h3": {
          "title": "How I build systems",
          "text": "I design with Domain-Driven Design and choose how the parts of a system communicate based on what that system needs."
        },
        "h4": {
          "title": "Operations too",
          "text": "What I write, I also run. I have my own Kubernetes cluster, I configure servers with Ansible and everything runs in a private network."
        }
      }
    },
    "cta": {
      "title": "Now you know who you'll be talking to.",
      "ctaPrimary": "Book a consultation",
      "ctaSecondary": "Our Services"
    }
  },
  "services": {
    "hero": {
      "title": "What can we do? Miracles on demand <em class=\"italic text-secondary\">(and IT by tomorrow)</em>.",
      "text": "From AI products through IT management to the cloud. One crew, one contract, one contact, no agency overhead."
    },
    "inquiry": "Book a consultation",
    "cards": {
      "dev": {
        "title": "Custom Development",
        "tagline": "Backends, integrations and internal systems built on a modern stack.",
        "b1": "Java / Kotlin backends (Spring, Ktor)",
        "b2": "API integrations and event-driven architectures",
        "b3": "Web applications (Angular / React)",
        "b4": "Refactoring and modernization of legacy systems",
        "price": "from 1,500 CZK / hour"
      },
      "automation": {
        "title": "Workflow Automation & AI Agents",
        "tagline": "We build AI agents and automations that replace manual routine.",
        "b1": "Custom AI agents (LangGraph, custom orchestration)",
        "b2": "n8n / Make / Zapier integrations",
        "b3": "AI connected to your internal data (RAG)",
        "b4": "ROI analysis + a pilot in 2 weeks",
        "price": "from 40,000 CZK / process"
      },
      "consulting": {
        "title": "AI & Tech Consulting",
        "tagline": "We help you pick the technology, architecture and path so AI makes sense for you.",
        "b1": "Tech strategy and architecture review",
        "b2": "AI readiness audit: what makes sense and what doesn't",
        "b3": "Stack selection, process design, code review",
        "b4": "Hourly consultations with no long-term commitment",
        "price": "from 2,400 CZK / hour"
      },
      "cloud": {
        "title": "Cloud & DevOps",
        "tagline": "Practical cloud deployment and operations. Without unnecessary complexity.",
        "b1": "AWS / Azure / GCP deployment",
        "b2": "Terraform, CI/CD pipelines",
        "b3": "Containerization (Docker, Kubernetes)",
        "b4": "Monitoring, logging, sensible defaults",
        "price": "based on scope"
      },
      "outsourcing": {
        "title": "IT Outsourcing",
        "tagline": "AI-powered IT management. One contract, one contact, lower overhead.",
        "b1": "AI-assisted support (AIssistant + escalation)",
        "b2": "Monitoring of servers and key systems",
        "b3": "A great fit for small and medium businesses",
        "b4": "Premium compared to standard outsourcing, but smarter",
        "price": "from 35,000 CZK / month"
      },
      "security": {
        "title": "Cybersecurity",
        "tagline": "Hygiene, best practices and secure defaults. Specialized audits with partners.",
        "b1": "Security review of code and infrastructure",
        "b2": "GDPR hygiene, secrets management, MFA",
        "b3": "Secure defaults (TLS, backups, access control)",
        "b4": "Penetration testing in cooperation with partners",
        "price": "from 40,000 CZK / project"
      }
    },
    "process": {
      "title": "How collaboration <span class=\"text-primary\">works</span>",
      "s1": {
        "title": "Intro consultation",
        "text": "Free, 45 minutes. We go through your situation, goals and pain points. We find out if we click."
      },
      "s2": {
        "title": "Audit + proposed solution",
        "text": "1–2 weeks. Technical and process audit, concrete recommendations and a budget."
      },
      "s3": {
        "title": "Pilot or full operation",
        "text": "For IT management we start fully from day 1. For projects, a pilot within an agreed scope."
      },
      "s4": {
        "title": "Continuous improvement",
        "text": "Monthly reporting, quarterly reviews, ongoing optimization of costs and processes."
      }
    },
    "finalCta": {
      "title": "Not sure what to pick?",
      "text": "45 minutes of free consultation. We'll figure out what makes sense for you.",
      "button": "Book a consultation"
    },
    "people": {
      "title": "Who you will talk to",
      "link": "About us"
    }
  },
  "stats": {
    "hero": {
      "title": "Proof of our <span class=\"text-primary\">sanity</span>.",
      "text": "We don't sell promises. We sell metrics. Every number on this page is a real output from our systems. No rounding, no asterisks."
    },
    "uptime": {
      "label": "SLA Uptime Target"
    },
    "clients": {
      "label": "First Clients"
    },
    "responseTime": {
      "label": "Incident Response"
    },
    "dataLoss": {
      "title": "Data Lost on Our Watch"
    },
    "techStack": {
      "title": "Tech-Stack Obsession<span class=\"text-primary\">.</span>",
      "text": "Our infrastructure runs on proven open-source technologies with enterprise-grade support. No experiments on your hardware."
    }
  },
  "contact": {
    "hero": {
      "title": "Let's <em class=\"italic text-primary\">talk</em>.",
      "text": "Tell us what's bugging you. A new project, a crazy idea, or a bug that won't let you sleep: whatever it is, we're here for you. No forms into the void, we respond like humans."
    },
    "info": {
      "company": "IT Nuts s.r.o.",
      "ico": "Company ID",
      "icoValue": "29622361",
      "vat": "VAT ID",
      "vatValue": "CZ29622361",
      "location": "Base",
      "locationValue": "Evropská 2758/11<br>160 00 Prague 6 - Dejvice, Czech Republic",
      "email": "E-mail",
      "phone": "Phone",
      "phoneValue": "+420 606 728 483",
      "discord": "Discord",
      "discordJoin": "Join",
      "response": "Reply to an enquiry",
      "responseValue": "within 24 hours, usually sooner"
    },
    "form": {
      "title": "Write to us",
      "subtitle": "We respond within 24 hours. Usually sooner.",
      "nameLabel": "Your Name / Alias",
      "emailLabel": "Email for Reply",
      "messageLabel": "What's bugging you? (Project, idea, bug...)",
      "namePlaceholder": "John 'The Nut' Doe",
      "emailPlaceholder": "hello@logic.io",
      "messagePlaceholder": "I need to build something crazy...",
      "submit": "Drop the IT nuts a line",
      "comingSoon": {
        "title": "This form doesn't work yet",
        "text": "But we do. Write to us at <a href=\"mailto:info@it-nuts.cz\" class=\"text-primary-soft-ink font-bold underline-offset-4 hover:underline\">info@it-nuts.cz</a> and we'll get back to you before you finish your coffee."
      }
    },
    "lanes": {
      "title": "What can we help with?",
      "ai": {
        "title": "AIssistant, the AI receptionist",
        "text": "Interest in the product, pricing or the launch date.",
        "subject": "AIssistant – interest"
      },
      "it": {
        "title": "Free IT consultation",
        "text": "45 minutes. Your situation, goals and pain points.",
        "subject": "Consultation"
      },
      "action": "Write an e-mail",
      "call": {
        "title": "Rather call?",
        "action": "Call"
      },
      "note": "The e-mail opens with the subject filled in. If nothing opens, the address is below too."
    },
    "direct": {
      "title": "Direct contact"
    },
    "mailtoNote": "Opens an e-mail to info@it-nuts.cz. We reply within 24 hours, usually sooner.",
    "copy": {
      "idle": "Copy",
      "done": "Copied",
      "manual": "Copy",
      "manualHint": "The address is selected, copy it with Ctrl+C (⌘C).",
      "doneSr": "The address info@it-nuts.cz is on your clipboard."
    }
  },
  "cases": {
    "hero": {
      "title": "How we work <em class=\"italic text-primary\">on the inside</em>.",
      "text": "Backed by data from git, the backlog and reviews."
    },
    "readMore": "Full case study",
    "agentTeamCard": {
      "industry": "Agentic AI development",
      "company": "AIssistant (our own product)",
      "headline": "58 commits, three stacks, one day",
      "story": "One developer, a team of five AI agents and 30 backlog items completed in a single day. What development looks like when both implementation and review are done by agents with separated powers, and why the most important team member isn't allowed to write code.",
      "m1v": "58",
      "m1l": "commits in one day",
      "m2v": "+18,958",
      "m2l": "lines of code",
      "m3v": "39",
      "m3l": "review runs"
    },
    "agentTeam": {
      "backLink": "All case studies",
      "title": "<span class=\"text-primary\">58 commits</span>, three stacks, one day",
      "lede": "How one developer with a team of five AI agents completed 30 backlog items in a single day, and why the most important team member is the one who isn't allowed to write code.",
      "author": "Milan Jirásek",
      "byline": "the AIssistant project · July 11, 2026 · data: git history + backlog + reviewer memory",
      "tmux": {
        "bar": "tmux · claude-swarm-1 · 6 panes",
        "ariaLabel": "Team topology: team-lead orchestrating four specialists and a read-only reviewer in tmux panes",
        "lead": {
          "t": "team-lead",
          "d": "Orchestrates, routes review findings. <strong>May not write code or verify.</strong>"
        },
        "kt": {
          "t": "kotlin-backend",
          "d": "Kotlin · Spring Boot<br>API · billing · RLS"
        },
        "ng": {
          "t": "frontend",
          "d": "Angular<br>UI · i18n · specs"
        },
        "py": {
          "t": "python-backend",
          "d": "Python · Pipecat<br>voice · Twilio"
        },
        "java": {
          "t": "java-backend",
          "d": "Java · Spring Boot<br>as needed"
        },
        "rev": {
          "t": "reviewer",
          "d": "Adversarial, security-first review. <strong>Read-only, cannot edit code.</strong> Persistent memory in 43 files in git."
        },
        "caption": "Team topology: independent Claude Code instances in tmux panes, communicating via messages. Implement → review → fix → re-review until \"review clean.\""
      },
      "stats": {
        "s1": {
          "v": "58",
          "l": "commits in one day<br>(10:39–23:42)"
        },
        "s2": {
          "v": "+18,958",
          "l": "lines of code,<br>303 files"
        },
        "s3": {
          "v": "30/38",
          "l": "backlog items<br>completed"
        },
        "s4": {
          "v": "39",
          "l": "review runs,<br>avg 1.6 rounds"
        }
      },
      "context": {
        "title": "Context",
        "p1": "<strong>AIssistant</strong> is a SaaS product for the Czech market: a multi-channel AI assistant handling bookings and customer communication for businesses over email and phone. A technically non-trivial system: multi-tenant architecture with Row Level Security on PostgreSQL, Stripe billing with three tiers and add-ons, telephony via Twilio, a realtime voice pipeline (STT → LLM → TTS) with a sub-500 ms latency target, and hard GDPR constraints, meaning all processing inside the EU.",
        "p2": "Three programming languages, three applications, one person. The classic answer would be \"hire a team.\" The answer in this project was to build one out of AI agents.",
        "p3": "And this is not \"AI-assisted development\" at the margins: <strong>practically all of the product's code (over a hundred thousand lines across three stacks) was written by AI agents.</strong> The human role is product and operations: requirements, priorities, decisions, approvals, and deployment. The day described here is not an exceptional showcase; it is the normal working mode in which the product was built."
      },
      "decisions": {
        "title": "Three design decisions",
        "p1": "<strong>1 · The team-lead must not write code or verify.</strong> Its definition contains explicit prohibitions: no implementing (an emergency escape hatch of ~5 lines), no running tests or reading diffs between implementation and review. The temptation to \"save a round-trip\" by self-verifying is explicitly labelled a bug in the role definition. Separating implementation from verification is the entire point of the role.",
        "p2": "<strong>2 · The reviewer must not change code.</strong> It may only read, analyze, and report, \"as if the code will ship to production immediately and will be hit by hostile inputs, bad timing, and partial failures.\" Findings carry a severity <span class=\"whitespace-nowrap\">(<span class=\"inline-block w-2 h-2 rounded-full bg-error align-middle mr-1\" aria-hidden=\"true\"></span>blocker</span> / <span class=\"whitespace-nowrap\"><span class=\"inline-block w-2 h-2 rounded-full bg-tertiary align-middle mr-1\" aria-hidden=\"true\"></span>warning</span> / <span class=\"whitespace-nowrap\"><span class=\"inline-block w-2 h-2 rounded-full bg-mute align-middle mr-1\" aria-hidden=\"true\"></span>nit)</span>, an exact <span class=\"mono\">file:line</span>, a concrete fix, and an owner. Done means \"review clean\": zero open findings.",
        "p3": "<strong>3 · The reviewer has persistent memory versioned in git.</strong> 43 topic files, ~230 recorded patterns: traps that have already burned someone in this specific project. The team-lead injects them into every specialist's brief before spawning. A mistake found in March no longer even reaches review in July.",
        "p4": "Beyond the roles, quality is held by <strong>skill packs</strong> (nine files of codified standards that take precedence over any prompt) and <strong>OpenAPI-first contracts</strong>. The spec is the source of truth for all three stacks and the reviewer checks for drift."
      },
      "process": {
        "title": "The process: from audit to \"review clean\"",
        "s1": "<strong>Scope analysis.</strong> The team-lead picks specialists from the task's \"technology fingerprints.\" When ambiguous it over-spawns; every brief has a self-elimination clause.",
        "s2": "<strong>Parallel implementation.</strong> Specialists on different stacks work concurrently; dependencies are handled with a \"contract ready\" message.",
        "s3": "<strong>Review</strong> follows immediately after implementation. The reviewer reads the diff and its blast radius: call sites, migrations, generated clients, tests.",
        "s4": "<strong>Finding routing.</strong> The team-lead splits findings by owner and sends them back verbatim.",
        "s5": "<strong>Stateless re-review.</strong> The reviewer re-reads the affected files and judges by the current code, not by notes. The loop runs to zero findings.",
        "p1": "Even <strong>that day's backlog came from the same mechanism</strong>: at 10:39 an adversarial audit of the three stacks against the feature matrix produced 38 tasks with priorities, dependencies, and line-level references, including findings like a paid feature missing its enforcement, which would otherwise have meant a silent revenue leak."
      },
      "day": {
        "title": "The day in numbers",
        "hours": {
          "title": "Commits by hour · Jul 11, 2026",
          "sub": "58 commits between 10:39 and 23:42. The 9 pm peak is billing, FE, and infra closing in parallel.",
          "ariaLabel": "Bar chart of commits by hour: peak of 11 commits at 9 pm"
        },
        "rounds": {
          "title": "Review rounds per change",
          "sub": "39 review runs: half clean on the first pass, none needed more than three rounds.",
          "r1": "1 round",
          "r2": "2 rounds",
          "r3": "3 rounds"
        },
        "sev": {
          "title": "Findings by severity",
          "sub": "40 documented findings in one day, all resolved before \"review clean.\"",
          "blocker": "blocker",
          "warning": "warning",
          "nit": "nit"
        },
        "scope": "The scope was not \"many small tweaks.\" A single day produced, among other things: per-minute call metering with hard quotas, operator fallback with toll-fraud protection, a Stripe plan-change flow with a proration saga, CSV exports with OWASP protection, kill-switch parity for the voice channel, production deployment configuration, and PIN-gated voice search. Plus ten new DB migrations and an FE test suite that grew from 701 to 783 tests, 783/783 green at end of day."
      },
      "findings": {
        "title": "What the review actually caught",
        "intro": "The technical specifics are deliberately generalized in this published version. Every finding was fixed before the branch was merged, but a map of one's own attack surface does not belong in a case study. Five classes from that day:",
        "f1": {
          "title": "Tenant isolation masked by the test environment",
          "tag": "blocker",
          "text": "A security check wired in the wrong order would have blocked legitimate traffic for an entire channel in production. Tests missed it: the test database role had higher privileges than the production one and silently bypassed the isolation policies. The reviewer forced a regression test under the same role production uses."
        },
        "f2": {
          "title": "Over-scoped secrets between services",
          "tag": "warning",
          "text": "One service was receiving the platform's complete secret set in its deployment configuration while needing a fraction of it. A compromise of one component would have become a compromise of everything. Result: a least-privilege, per-service split of configuration."
        },
        "f3": {
          "title": "A configurable value with financial impact",
          "tag": "warning",
          "text": "A setting a customer can change themselves could redirect a paid external operation onto the operator's account. Fix: an in-code allowlist plus a guard at the external platform level as a launch precondition."
        },
        "f4": {
          "title": "Injection into data exports",
          "tag": "warning",
          "text": "A classic OWASP class: externally influenced data behaves as executable content when the export is opened in a spreadsheet. Plus a warning about the memory footprint of bulk exports."
        },
        "f5": {
          "title": "An oracle in a verification flow: designed in ahead of time",
          "text": "Verifying a secret must not reveal, through response behavior, whether the secret even exists. The authorization flag may only be set in deterministic code after a cryptographically verified response, never from the prompt: <strong>the LLM is never a security boundary; deterministic code is.</strong>"
        },
        "outro": "None of these are style nits. They are classes of bugs that slip past senior review in ordinary teams. They require holding database security-policy semantics, external-platform billing, and office-software behavior in your head at the same time."
      },
      "why": {
        "title": "Why it works",
        "i1": "<strong>The separation of implementation and verification is structural, not voluntary.</strong> An implementer cannot approve itself and the orchestrator cannot skip review. The roles technically don't allow it.",
        "i2": "<strong>Reviewer memory compounds.</strong> Every finding becomes an input to the next brief; the team's learning curve is stored in git.",
        "i3": "<strong>Standards are codified, not tribal.</strong> Skill rules take precedence over prompts and over existing code.",
        "i4": "<strong>Contracts instead of coordination.</strong> The OpenAPI spec lets three stacks work in parallel; drift is caught by review, not by an integration surprise a week later.",
        "i5": "<strong>Stateless re-review.</strong> The reviewer cannot wave a fix through based on its description; it must re-read the code."
      },
      "limits": {
        "title": "Honest limits",
        "i1": "<strong>The human remains product owner and ops.</strong> Product decisions, the Stripe catalog, Twilio configuration, production secrets, and the deploy are explicitly human gates. \"Review clean\" does not mean \"deployed.\"",
        "i2": "<strong>The metrics measure output and discipline, not business value.</strong> 18,958 lines in a day speaks to process capacity; correctness is better evidenced by the 39 review runs and the regression tests those findings produced.",
        "i3": "<strong>Review has real costs.</strong> An average of 1.6 rounds means real extra spend in tokens and time. That is by design, not overhead to optimize away.",
        "i4": "<strong>Commit counts are a lower bound.</strong> The repository's history was squashed during development; 179 commits says little about the real number of iterations. The July 11 session, by contrast, is preserved commit by commit, which is why it is the study's primary data sample.",
        "i5": "<strong>The process admits its own blind spots.</strong> The reviewer records findings about its own environment and process, not just about the code."
      },
      "project": {
        "title": "Whole-project numbers",
        "period": "(Feb 21 – Jul 11, 2026)",
        "loc": {
          "title": "Lines of code by stack",
          "sub": "~115,000 lines total. The backend has more test code than production code.",
          "l1": "Kotlin BE",
          "l1prod": "35,592",
          "l1test": "38,823",
          "l2": "Angular FE",
          "l2prod": "23,216",
          "l2test": "10,997",
          "l3": "Python voice",
          "l3prod": "3,814",
          "l3test": "2,518",
          "prodLegend": "production code",
          "testLegend": "test code"
        },
        "table": {
          "hMetric": "Metric",
          "hValue": "Value",
          "r1k": "Total commits",
          "r1v": "179 (after squash, lower bound)",
          "r2k": "Total code",
          "r2v": "~115,000 lines",
          "r3k": "DB migrations",
          "r3v": "118",
          "r4k": "Test files (BE / FE / PY)",
          "r4v": "219 / 73 / 14",
          "r5k": "Reviewer memory",
          "r5v": "43 files · ~230 patterns"
        },
        "detail": "A detail worth highlighting: <strong>the backend has more test code (38,823 lines) than production code (35,592 lines).</strong> That is not a property of AI coding in general. It is a direct consequence of a reviewer that refuses to sign off changes without error-path coverage, and of a memory full of patterns like \"the superuser test masks this bug; it needs a test under the application role.\""
      },
      "conclusion": {
        "title": "Conclusion",
        "p1": "An agentic team is not \"faster autocomplete.\" It is an organizational pattern: roles with separated powers, adversarial verification as an unbypassable gate, codified standards, and memory that compounds over time. With this pattern, one person managed a day's output comparable to a multi-person team's sprint, with a quality audit trail most human teams don't keep.",
        "pull": "The biggest leverage is not in who writes the code, but in how the loop that refuses to let it through is built."
      },
      "foot": "Technical background: the agents run on Claude (Anthropic) in Claude Code; orchestration via tmux panes and inter-agent messages. All numbers come from the AIssistant repository's git history, backlog documents, and reviewer memory. Descriptions of security findings are deliberately generalized; all were resolved within the review process. © 2026 IT Nuts s.r.o.",
      "cta": {
        "title": "Building something similar?",
        "text": "In a free 45-minute consultation we'll go through where an agent team helps you and where it doesn't.",
        "button": "Book a consultation"
      }
    },
    "cta": {
      "title": "Want something similar for yourself?",
      "text": "In a free 45-minute consultation we go through your situation, goals and pain points.",
      "button": "Book a consultation"
    }
  },
  "blog": {
    "hero": {
      "title": "What we write when we're not <em class=\"italic text-primary\">tuning code</em>.",
      "text": "Case studies from the field, technical deep-dives, thoughts on AI. No marketing fluff."
    },
    "filterAll": "All",
    "catAI": "AI",
    "catEngineering": "Engineering",
    "catProduct": "Product",
    "catSecurity": "Security",
    "featured": "Featured",
    "readSuffix": "read",
    "p1": {
      "title": "How AIssistant answered 186 calls in 3 weeks",
      "excerpt": "A case study from a veterinary clinic where the phone rang unanswered. We break down how the AI recognizes call intent and when it escalates.",
      "date": "Apr 8, 2026",
      "readTime": "6 min",
      "author": "Milan Jirásek"
    },
    "p2": {
      "title": "LangGraph vs. custom orchestration: what we chose for AIssistant",
      "excerpt": "Why we ended up not using an out-of-box framework and wrote our own state machine. Trade-offs and lessons learned.",
      "date": "Apr 2, 2026",
      "readTime": "9 min",
      "author": "Milan Jirásek"
    },
    "p3": {
      "title": "GDPR and AI: what every AI chatbot in the EU must have",
      "excerpt": "A concrete checklist. Data residency, right to erasure, logging and transparency. Plus what the regulators actually check.",
      "date": "Mar 28, 2026",
      "readTime": "5 min",
      "author": "Milan Jirásek"
    },
    "p4": {
      "title": "Why a receptionist costs a fortune and why it won't slow your business",
      "excerpt": "The math for small businesses. When a human receptionist pays off, when AI does, and when to combine both.",
      "date": "Mar 21, 2026",
      "readTime": "4 min",
      "author": "Milan Jirásek"
    },
    "p5": {
      "title": "How to migrate an 80M-revenue shop to AWS with zero downtime",
      "excerpt": "Terraform, blue-green deployment and 6 weeks of preparation. A technical deep-dive that might convince you migration doesn't have to hurt.",
      "date": "Mar 14, 2026",
      "readTime": "8 min",
      "author": "Milan Jirásek"
    },
    "p6": {
      "title": "RAG over internal data: when it makes sense and when it doesn't",
      "excerpt": "Clients want \"AI over our documents\". But often the better path is fine-tuning or simply better search. We break down the decision tree.",
      "date": "Mar 7, 2026",
      "readTime": "7 min",
      "author": "Milan Jirásek"
    },
    "newsletter": {
      "title": "Once a month,<br/>only what matters.",
      "text": "AI, engineering, a bit of humor. No spam, no affiliate links.",
      "button": "Subscribe",
      "note": "Signup currently runs over e-mail, and the button drafts one for you."
    },
    "readMore": "Read article",
    "post": {
      "back": "Back to blog",
      "relatedTitle": "Related article",
      "cta": {
        "aissistant": {
          "title": "An AI receptionist for your business",
          "text": "AIssistant answers the phone, replies to e-mail and books the slot in your calendar. Pricing and launch status are on the product page.",
          "button": "More about AIssistant"
        },
        "consultation": {
          "title": "Dealing with something similar?",
          "text": "In a free 45-minute consultation we'll look at your situation and see if we click.",
          "button": "Book a consultation"
        }
      }
    },
    "p7": {
      "title": "AI Agent Security I: The lethal trifecta, prompt injection and layered defense",
      "excerpt": "What is the lethal trifecta of AI agents and why does it make security a survival requirement? Intent architecture, the anatomy of prompt injection attacks and six layers of defense.",
      "date": "Apr 10, 2026",
      "readTime": "13 min",
      "author": "Milan Jirásek"
    },
    "p8": {
      "title": "AI Agent Security II: Advanced jailbreaks, hallucinations and defense in practice",
      "excerpt": "Crescendo, Skeleton Key, Many-Shot Jailbreaking and poisoned MCP tools. Hallucinations as a security problem, hard limits in code, the kill switch and a security roadmap: what to implement when.",
      "date": "Apr 16, 2026",
      "readTime": "14 min",
      "author": "Milan Jirásek"
    },
    "p9": {
      "title": "Why invest in custom software",
      "excerpt": "Off-the-shelf or custom-built? The key factors that speak for custom software in the long run: control, security and total cost of ownership.",
      "date": "Feb 25, 2026",
      "readTime": "6 min",
      "author": "Milan Jirásek"
    }
  },
  "notFound": {
    "title": "We couldn't find that page.",
    "text": "The link might be outdated, or there's a typo in the address. No worries, let's get you back to the homepage.",
    "homeLink": "Back to homepage",
    "more": "Or try:"
  },
  "matrix": {
    "hero": {
      "title": "One AIssistant, <em class=\"italic text-primary\">five plans</em> and Enterprise made to measure.",
      "text": "A complete overview of what each plan can do: limits, channels, features and add-ons. Every higher plan includes everything below it, and adds more."
    },
    "notice": {
      "title": "Product in preparation",
      "text": "AIssistant can't be ordered yet; we're polishing the final details before launch."
    },
    "colFeature": "Feature",
    "cellIncluded": "Included",
    "cellExcluded": "Not included",
    "head": {
      "email": {
        "name": "Email",
        "price": "€99/mo"
      },
      "emailPro": {
        "name": "Email Pro",
        "price": "€149/mo"
      },
      "voice": {
        "name": "Voice",
        "price": "€249/mo"
      },
      "combo": {
        "name": "Combo",
        "price": "€299/mo"
      },
      "executive": {
        "name": "Executive",
        "price": "€749/mo"
      }
    },
    "rows": {
      "aiEmails": {
        "label": "AI emails",
        "email": "200 / mo",
        "emailPro": "500 / mo",
        "voice": "500 / mo",
        "combo": "1,500 / mo",
        "executive": "Unlimited"
      },
      "aiVoice": {
        "label": "AI voice calls",
        "email": "—",
        "emailPro": "—",
        "voice": "300 min",
        "combo": "300 min",
        "executive": "600 min"
      },
      "whatsapp": {
        "label": "WhatsApp messages",
        "email": "Add-on (1,500)",
        "emailPro": "Add-on (1,500)",
        "voice": "Add-on (1,500)",
        "combo": "1,500 / mo",
        "executive": "Unlimited"
      },
      "metaDm": {
        "label": "Instagram + Messenger DM",
        "email": "Add-on (1,500 shared)",
        "emailPro": "Add-on (1,500 shared)",
        "voice": "Add-on (1,500 shared)",
        "combo": "1,500 shared",
        "executive": "Unlimited"
      },
      "webChat": {
        "label": "Web chat on your site",
        "email": "Add-on (1,500)",
        "emailPro": "Add-on (1,500)",
        "voice": "Add-on (1,500)",
        "combo": "1,500 / mo",
        "executive": "Unlimited"
      },
      "contacts": {
        "label": "Contacts / CRM",
        "email": "200",
        "emailPro": "500",
        "voice": "500",
        "combo": "Unlimited",
        "executive": "Unlimited"
      },
      "services": {
        "label": "Services",
        "email": "15",
        "emailPro": "30",
        "voice": "30",
        "combo": "Unlimited",
        "executive": "Unlimited"
      },
      "faq": {
        "label": "FAQ knowledge base",
        "email": "30",
        "emailPro": "50",
        "voice": "50",
        "combo": "50",
        "executive": "Unlimited"
      },
      "nlSearchText": {
        "label": "NL Search (text)",
        "email": "50 / mo",
        "emailPro": "200 / mo",
        "voice": "200 / mo",
        "combo": "Unlimited",
        "executive": "Deep RAG"
      },
      "nlSearchVoice": {
        "label": "NL Search (voice)",
        "email": "—",
        "emailPro": "—",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "bookings": {
        "label": "Bookings / day",
        "email": "20",
        "emailPro": "50",
        "voice": "50",
        "combo": "Unlimited",
        "executive": "Unlimited"
      },
      "calendarSync": {
        "label": "Calendar sync",
        "email": "2",
        "emailPro": "3",
        "voice": "3",
        "combo": "5",
        "executive": "Unlimited"
      },
      "resources": {
        "label": "Bookable resources (person / chair / room)",
        "email": "1 + add-on",
        "emailPro": "1 + add-on",
        "voice": "1 + add-on",
        "combo": "1 + add-on",
        "executive": "1 + add-on"
      },
      "deposits": {
        "label": "Booking deposits (Stripe Connect)",
        "email": "—",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "api": {
        "label": "API + webhooks (Zapier, Make)",
        "email": "—",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "revenueDashboard": {
        "label": "Revenue dashboard",
        "email": "—",
        "emailPro": "Basic",
        "voice": "Basic",
        "combo": "Advanced",
        "executive": "Advanced"
      },
      "sharedContext": {
        "label": "Shared context across channels",
        "email": "—",
        "emailPro": "—",
        "voice": "—",
        "combo": "✓",
        "executive": "✓"
      },
      "csvExport": {
        "label": "Bulk CSV export",
        "email": "—",
        "emailPro": "—",
        "voice": "—",
        "combo": "✓",
        "executive": "✓"
      },
      "callRecordings": {
        "label": "Call transcripts",
        "email": "—",
        "emailPro": "—",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "webCalling": {
        "label": "Web calling (button on your site)",
        "email": "—",
        "emailPro": "—",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "confirmationCalls": {
        "label": "Day-before confirmation call",
        "email": "—",
        "emailPro": "—",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "missedCallSms": {
        "label": "Missed-call SMS rescue",
        "email": "—",
        "emailPro": "—",
        "voice": "With the SMS add-on",
        "combo": "With the SMS add-on",
        "executive": "With the SMS add-on"
      },
      "selfLearningFaq": {
        "label": "Self-learning FAQ",
        "email": "✓",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "roiReport": {
        "label": "Monthly ROI report",
        "email": "✓",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "twoFactor": {
        "label": "Two-factor authentication (2FA)",
        "email": "✓",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "emailLifecycle": {
        "label": "Email reminders / recall / waitlist / no-show / AI extraction",
        "email": "✓",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "connectivity": {
        "label": "Connectivity: IMAP/SMTP, M365, Microsoft Calendar, own domain",
        "email": "✓",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      },
      "support": {
        "label": "Support",
        "email": "Standard",
        "emailPro": "Standard",
        "voice": "Standard",
        "combo": "Priority < 4h",
        "executive": "< 1h"
      },
      "smsAddon": {
        "label": "SMS reminders / recall",
        "email": "Add-on",
        "emailPro": "Add-on",
        "voice": "Add-on",
        "combo": "Add-on",
        "executive": "Included"
      },
      "onlineBooking": {
        "label": "Online Booking (widget + QR)",
        "email": "Add-on",
        "emailPro": "Add-on",
        "voice": "Add-on",
        "combo": "Add-on",
        "executive": "Included"
      },
      "campaigns": {
        "label": "Campaigns",
        "email": "Add-on",
        "emailPro": "Add-on",
        "voice": "Add-on",
        "combo": "Add-on",
        "executive": "Included"
      },
      "extraMinutes": {
        "label": "Extra voice minutes (+100)",
        "email": "—",
        "emailPro": "—",
        "voice": "Add-on",
        "combo": "Add-on",
        "executive": "—"
      },
      "extraResource": {
        "label": "Extra staff member / chair",
        "email": "Add-on",
        "emailPro": "Add-on",
        "voice": "Add-on",
        "combo": "Add-on",
        "executive": "Included"
      },
      "proactiveBriefings": {
        "label": "Proactive briefings",
        "email": "—",
        "emailPro": "—",
        "voice": "—",
        "combo": "—",
        "executive": "✓"
      },
      "deepRag": {
        "label": "Deep RAG",
        "email": "—",
        "emailPro": "—",
        "voice": "—",
        "combo": "—",
        "executive": "✓"
      },
      "followUp": {
        "label": "Follow-up tracking",
        "email": "—",
        "emailPro": "—",
        "voice": "—",
        "combo": "—",
        "executive": "✓"
      },
      "locationScheduling": {
        "label": "Location-aware scheduling",
        "email": "—",
        "emailPro": "—",
        "voice": "—",
        "combo": "—",
        "executive": "✓"
      },
      "testDrive": {
        "label": "Test drive",
        "email": "✓",
        "emailPro": "✓",
        "voice": "✓",
        "combo": "✓",
        "executive": "✓"
      }
    },
    "rowsToggle": {
      "show": "Show the full table",
      "hide": "Show only the key rows"
    },
    "annual": "Annual billing = 2 months free (~17% off).",
    "addons": {
      "title": "Paid add-ons",
      "note1": "Available on top of the Email, Email Pro, Voice and Combo plans.",
      "note2": "Executive includes all add-ons automatically.",
      "a1": {
        "name": "SMS Standard / Plus",
        "price": "€25 / €49 / mo",
        "desc": "SMS reminders (48h / 24h / 2h) and SMS recall with an alphanumeric sender ID. 100 / 300 SMS monthly. Automatic missed-call rescue on Voice and Combo. Two sizes of one item: you buy exactly one and switch between sizes."
      },
      "a2": {
        "name": "Online Booking",
        "price": "€39 / mo",
        "desc": "A public booking page, an embeddable widget for your site and a QR code. CAPTCHA and rate limiting included."
      },
      "a3": {
        "name": "Campaigns",
        "price": "€25 / mo",
        "desc": "Google review collection (4–5 stars go to Google, 1–3 to internal feedback), bulk emails with segments, birthday greetings."
      },
      "a4": {
        "name": "All-in-one Bundle",
        "price": "€75 / mo",
        "desc": "SMS Standard, Online Booking and Campaigns together, saving €14 a month. The bundle and its individual items are mutually exclusive: you buy either the bundle or the items separately."
      },
      "a5": {
        "name": "Extra voice minutes",
        "price": "€49 / +100 min",
        "desc": "Voice and Combo only. Hard cap, no surprise overage. One per account; it cannot be bought twice."
      },
      "a6": {
        "name": "Extra staff member / chair",
        "price": "€25 / mo per unit",
        "desc": "Every plan includes one bookable resource (person, chair, room). Each further one is bought per unit and adds one calendar connection. Volume quotas do not grow with the number of staff; that is what the plan is for."
      },
      "a7": {
        "name": "WhatsApp channel",
        "price": "€35 / mo",
        "desc": "An AI receptionist on WhatsApp, 1,500 messages a month. For the Email, Email Pro and Voice plans only; Combo and higher plans include the channel and cannot buy it."
      },
      "a8": {
        "name": "Instagram and Messenger",
        "price": "€35 / mo",
        "desc": "An AI receptionist in Instagram and Messenger DMs, 1,500 messages a month across both channels. For the Email, Email Pro and Voice plans only; Combo and higher plans include the channel and cannot buy it."
      },
      "a9": {
        "name": "Web chat",
        "price": "€35 / mo",
        "desc": "An AI chat bubble on your own site, 1,500 messages a month. For the Email, Email Pro and Voice plans only; Combo and higher plans include the channel. Handing a booking over from the bubble needs the Online Booking add-on."
      },
      "a10": {
        "name": "All Messaging Channels Bundle",
        "price": "€90 / mo",
        "desc": "WhatsApp, Instagram and Messenger and web chat together, saving €15 a month. For the Email, Email Pro and Voice plans only; Combo and higher plans include all three channels. The bundle and its individual items are mutually exclusive: you buy either the bundle or the channels separately."
      }
    },
    "enterprise": {
      "title": "Enterprise: a <em class=\"italic text-primary\">custom</em> offer",
      "text": "For companies of 20 to 500+ employees we build tailored deployments: multi-department setup, SSO/SAML, custom integrations (ERP, CRM) and guaranteed SLAs. Nothing is built for the shelf: every enterprise feature is built for a concrete deal, and pricing and setup reflect the scope.",
      "t1": {
        "name": "Business",
        "size": "20–50 employees",
        "price": "Contact us",
        "setup": "Custom tailored deployment"
      },
      "t2": {
        "name": "Business Plus",
        "size": "50–200 employees",
        "price": "Contact us",
        "setup": "SLA 99.5%"
      },
      "t3": {
        "name": "Enterprise Custom",
        "size": "200+ employees",
        "price": "Contact us",
        "setup": "SLA 99.9% · custom integrations"
      },
      "seats": "Executive seats as an add-on: from 3 seats €649 / seat instead of €749.",
      "cta": "Write to us"
    },
    "cta": {
      "title": "Questions about the plans?",
      "text": "Write to us. We'll help with the choice and with everything around it.",
      "button": "Write to us"
    },
    "scrollHint": "Swipe the table sideways",
    "tableLabel": "Plan comparison table"
  },
  "privacy": {
    "hero": {
      "title": "Privacy & cookies",
      "text": "Who processes your personal data when you visit this website or contact us, for what purpose, for how long, and what your rights are."
    },
    "sections": {
      "controller": {
        "title": "Data controller",
        "body": "<p>The controller of your personal data is <strong>IT Nuts s.r.o.</strong>, Company ID 29622361, VAT ID CZ29622361, Evropská 2758/11, Dejvice, 160&nbsp;00 Prague&nbsp;6, Czech Republic.</p><p>For anything concerning the protection of your personal data, contact us by e-mail at <a href=\"mailto:info@it-nuts.cz\">info@it-nuts.cz</a> or by phone at +420&nbsp;606&nbsp;728&nbsp;483.</p>"
      },
      "contact": {
        "title": "When you contact us",
        "body": "<p>You can e-mail us at info@it-nuts.cz, call us at +420&nbsp;606&nbsp;728&nbsp;483 or reach us on our Discord server. We then process the data you give us yourself: usually your name, e-mail address or phone number, your username on Discord, and the content of your message. Providing the data is voluntary, but without it we cannot reply.</p><ul><li><strong>Purpose:</strong> handling your inquiry and, where you ask for it, discussing a possible engagement.</li><li><strong>Legal basis:</strong> our legitimate interest in answering the inquiry you sent us (Art. 6(1)(f) GDPR) and, where the inquiry concerns an engagement, steps taken at your request prior to entering into a contract (Art. 6(1)(b) GDPR).</li><li><strong>Retention:</strong> we keep inquiries and the related correspondence for 1 year.</li></ul><p>Discord is a third-party platform that processes its users' data under its own privacy policy.</p>"
      },
      "accessLogs": {
        "title": "Server access logs",
        "body": "<p>Every time a page is loaded, the web server automatically records the IP address the request came from (and, where applicable, the address passed on by a proxy server), the date and time of the request, the requested URL, the response status code and the amount of data transferred, the address of the page you came from (referrer) and the identification of your browser (user agent).</p><ul><li><strong>Purpose:</strong> operating and securing the website, that is diagnosing errors and detecting and fending off attacks.</li><li><strong>Legal basis:</strong> our legitimate interest in operating the website securely and reliably (Art. 6(1)(f) GDPR).</li><li><strong>Retention:</strong> 30 days, after which the records are deleted.</li><li><strong>Hosting:</strong> the website runs on servers of the hosting provider Contabo in Germany and in the United Kingdom. Contabo processes the data on our behalf as a processor.</li><li><strong>Transfer outside the EU:</strong> the United Kingdom is not a member of the EU. The transfer of data to the United Kingdom is based on the European Commission's adequacy decision for the United Kingdom under Art. 45 GDPR: Commission Implementing Decision (EU) 2021/1772 of 28 June 2021, as amended by <a href=\"https://eur-lex.europa.eu/eli/dec_impl/2025/2574/oj/eng\">Commission Implementing Decision (EU) 2025/2574</a> of 19 December 2025, which renewed it until 27 December 2031.</li></ul>"
      },
      "cookies": {
        "title": "Cookies and analytics",
        "body": "<p>This website sets no cookies and runs no analytics or any other traffic measurement. It does not use your browser's storage (local storage, session storage) either, and it loads no third-party scripts.</p>"
      },
      "rights": {
        "title": "Your rights",
        "body": "<p>In connection with the processing of your personal data, you have the following rights:</p><ul><li>the right of access to your personal data (Art. 15 GDPR),</li><li>the right to rectification of inaccurate data (Art. 16 GDPR),</li><li>the right to erasure (Art. 17 GDPR),</li><li>the right to restriction of processing (Art. 18 GDPR),</li><li>the right to data portability (Art. 20 GDPR),</li><li>the right to object to processing based on legitimate interest (Art. 21 GDPR),</li><li>the right to withdraw your consent where processing is based on consent. Withdrawal does not affect the lawfulness of processing before it. Today no processing is based on consent.</li></ul><p>To exercise your rights, e-mail us at <a href=\"mailto:info@it-nuts.cz\">info@it-nuts.cz</a>. We do not carry out automated decision-making or profiling.</p>"
      },
      "authority": {
        "title": "Supervisory authority",
        "body": "<p>If you believe we process your personal data in breach of the law, you have the right to lodge a complaint with the supervisory authority, the <strong>Office for Personal Data Protection</strong> (Úřad pro ochranu osobních údajů), Pplk. Sochora 27, 170&nbsp;00 Praha&nbsp;7, Czech Republic, <a href=\"https://uoou.gov.cz\">uoou.gov.cz</a>.</p>"
      },
      "effectiveDate": {
        "title": "Effective date",
        "body": "<p>This notice is effective from 1 October 2026.</p>"
      }
    }
  },
  "aissistant": {
    "hero": {
      "badge": "The next-gen reception",
      "heading": "AIssistant. <em class=\"italic text-primary\">The receptionist</em> that never sleeps.",
      "description": "Artificial intelligence that answers phone calls, replies to emails and books appointments for small businesses. 24/7, in your language, no computer needed.",
      "ctaPrimary": "Try free for 14 days",
      "check1": "Runs in the EU cloud",
      "check2": "Guided setup wizard",
      "check3": "GDPR",
      "notYet": "Not available to order yet."
    },
    "demo": {
      "phone": {
        "aiName": "AI assistant Lucy",
        "callStatus": "Call in progress · 1:24",
        "callerLabel": "Caller",
        "caller1": "Hello, I'd like to book a haircut and beard trim, is that possible?",
        "ai1": "Hello! Of course. A men's haircut with beard trim takes 45 minutes and costs €35. When would you like to come in?",
        "caller2": "Ideally tomorrow morning, around ten?",
        "ai2": "Tomorrow at ten is available. What name should I put the reservation under?",
        "caller3": "Peter Johnson.",
        "ai3": "Excellent, Mr. Johnson! You're booked: men's haircut with beard trim, tomorrow at 10:00 AM. I'll also send you an SMS confirmation. Goodbye!",
        "online": "AI online",
        "secure": "Encrypted transfer · EU servers"
      },
      "notifications": {
        "calendar": "Added to booking calendar",
        "sms": "SMS confirmation sent"
      }
    },
    "problem": {
      "heading": "A missed call or e-mail<br/><span class=\"text-primary\">= lost revenue.</span>",
      "description": "While you're serving a customer or taking a break, your phone rings unanswered and emails pile up. Every missed call or unanswered email is a potential loss your competitors are happy to capitalize on.",
      "calc": {
        "title": "Work out what slips away",
        "missed": "Missed calls and e-mails per week",
        "spend": "Average customer spend",
        "share": "How many of them try a competitor",
        "hint": "The starting numbers are only an example. Put in yours.",
        "hintOwn": "Using your numbers.",
        "resultLabel": "Each month, that's",
        "resultLabelExample": "On the example, each month that's",
        "yearly": "{{amount}} a year.",
        "verdict": {
          "zero": "Missing nothing? Then you don't need AIssistant. Really.",
          "below": "With these numbers the {{tier}} plan wouldn't pay for itself. We'd rather say so.",
          "above": "Each month you lose more than the {{tier}} tier will cost.",
          "receptionist": "Each month you lose more than a full-time receptionist costs.",
          "noShare": "If nobody tries a competitor, you lose nothing. Sure about that? Move the share.",
          "alternative": "The {{tier}} plan wouldn't pay for itself, the {{alt}} plan would. Is it mostly one channel? Pick just that one."
        },
        "receptionistName": "Receptionist",
        "receptionistAmount": "€1,600–2,200",
        "receptionistNote": "A month, incl. employer contributions: in Czechia a gross salary of about €1,300 (€1,500–1,800 in Prague) plus roughly 34% employer contributions. Before vacation and cover.",
        "tiersTitle": "AIssistant tiers",
        "colTier": "Tier",
        "colPrice": "Price",
        "colSaves": "Paid for by",
        "channel": {
          "email": "just email",
          "voice": "the phone",
          "combo": "everything",
          "larger": "bigger operation"
        },
        "saves": {
          "one": "{{n}} customer",
          "few": "{{n}} customers",
          "many": "{{n}} customers"
        },
        "coveredSr": "(your loss covers it)",
        "custom": "custom",
        "lost": {
          "one": "That's about {{n}} lost customer a month.",
          "few": "That's about {{n}} lost customers a month.",
          "many": "That's about {{n}} lost customers a month."
        },
        "allTiers": "All tiers ({{n}})",
        "featuredSaves": {
          "one": "Paid for by {{n}} saved customer a month.",
          "few": "Paid for by {{n}} saved customers a month.",
          "many": "Paid for by {{n}} saved customers a month."
        },
        "receptionistTo": "2200",
        "perWeek": "{{n}} a week",
        "limitMax": "At most {{value}}, so we use that.",
        "limitMin": "At least {{value}}, so we use that.",
        "verdictShort": {
          "zero": "Nothing slips away.",
          "below": "{{tier}} doesn't pay off.",
          "above": "Pays for the {{tier}} tier.",
          "receptionist": "More than a receptionist costs.",
          "noShare": "Nobody leaves? Then nothing.",
          "alternative": "{{tier}} no, {{alt}} yes."
        },
        "priceOnRequest": "on request",
        "toPricing": "The {{tier}} plan in the pricing",
        "limitEmpty": "Left empty, so we use {{value}}.",
        "largeVolume": "At this volume you are more of a bigger operation, priced to fit:",
        "channelLegend": "What slips away mostly",
        "channelOption": {
          "voice": "Calls",
          "email": "E-mails",
          "both": "Both"
        },
        "limitInvalid": "Whole positive numbers only, so we use {{value}}."
      }
    },
    "marquee": {
      "title": "Who is AIssistant a lifesaver for?",
      "item1": "DENTISTS",
      "item2": "SALONS",
      "item3": "AUTO SHOPS",
      "item4": "VETERINARIANS",
      "item5": "PHYSIOTHERAPISTS",
      "item6": "TRADESPEOPLE",
      "item7": "HOTELS",
      "item8": "GUESTHOUSES"
    },
    "features": {
      "heading": "What can our AIssistant <span class=\"text-secondary\">do?</span>",
      "feature1Title": "Communicates naturally",
      "feature1Desc": "Forget robotic voices and template replies. Our AI speaks fluently on the phone and in emails; it understands context and responds like a human.",
      "feature2Title": "Works 24/7",
      "feature2Desc": "Answers phones and replies to emails on Sunday nights and public holidays. No lunch break needed.",
      "feature3Title": "Smart calendar",
      "feature3Desc": "Built-in booking calendar synced with your Google Calendar or Outlook. No double bookings.",
      "feature4Title": "Maximum security (GDPR)",
      "feature4Desc": "Your clients' data is safe with us. Encrypted transfer, EU servers and processing under GDPR.",
      "lead": "Lucy's call goes on. Here's what just happened."
    },
    "pricing": {
      "heading": "A receptionist that makes <span class=\"text-primary\">financial sense.</span>",
      "subtitle": "By your numbers nothing slips away yet. The pricing is here in case that changes.",
      "trialNote": "Once we launch: 14 days free on a plan, on a card. Billing then starts automatically; cancel before that.",
      "notAvailable": "Not available to order yet.",
      "annualNote": "Annual billing = 2 months free.",
      "compareLink": "Full plan comparison",
      "interestCta": "I want {{tier}} at launch",
      "billingMonthly": "Monthly",
      "billingAnnual": "Annual · 2 months free",
      "email": {
        "name": "Email",
        "price": "€99",
        "f1": "Answers up to 200 emails a month, nights included",
        "f2": "Remembers 200 customers and knows 15 of your services",
        "f3": "Books up to 20 appointments a day",
        "f4": "Watches two calendars, so nothing gets double-booked",
        "f5": "Gets back to lapsed clients and fills freed-up slots from the waitlist",
        "f6": "Answers common questions from your own material",
        "annualPrice": "€82"
      },
      "emailPro": {
        "name": "Email Pro",
        "price": "€149",
        "f1": "Answers up to 500 emails a month",
        "f2": "Remembers 500 customers and knows 30 of your services",
        "f3": "Books up to 50 appointments a day across three calendars",
        "f4": "Connects to your other tools via API (Zapier, Make)",
        "f5": "Shows what your bookings earned",
        "f6": "Takes deposits upfront via Stripe, so no-shows cost you less",
        "annualPrice": "€124"
      },
      "voice": {
        "name": "Voice",
        "price": "€249",
        "f1": "Everything in Email Pro",
        "f2": "Picks up the phone and handles the call: 300 minutes a month",
        "f3": "Web calling: customers call with one button on your website",
        "f4": "A confirmation call the day before, so clients don't forget",
        "f5": "Every call as a transcript",
        "f6": "Hands the call over to you when it's out of its depth",
        "annualPrice": "€208"
      },
      "combo": {
        "name": "Combo",
        "price": "€299",
        "badge": "Recommended",
        "f1": "Everything in Voice",
        "f2": "Replies on WhatsApp, 1,500 messages a month included",
        "f3": "Instagram, Messenger and chat on your website included",
        "f4": "No limits on bookings and contacts, 1,500 emails a month",
        "f5": "Remembers each customer across every channel",
        "f6": "Support from us within 4 hours",
        "annualPrice": "€249"
      },
      "executive": {
        "name": "Executive",
        "price": "€749",
        "f1": "Unlimited e-mails and messages, 600 phone minutes a month",
        "f2": "Prepares a briefing of your day every morning",
        "f3": "Schedules meetings around where you actually are",
        "f4": "Keeps track of what needs following up",
        "f5": "Every add-on included",
        "f6": "Support from us within 1 hour",
        "annualPrice": "€624"
      },
      "enterprise": {
        "name": "Enterprise",
        "price": "Contact us",
        "badge": "Custom offer",
        "f1": "A solution built around your operation",
        "f2": "For companies with 20 to 500+ employees",
        "f3": "Several departments under one administration",
        "f4": "Connected to your ERP and CRM",
        "f5": "Guaranteed availability up to 99.9%",
        "f6": "Executive seats for management at a discount",
        "cta": "Write to us"
      },
      "launchCta": "Let me know when it launches",
      "interestSubject": "AIssistant – interest in {{tier}}",
      "priceOnRequest": "Price on request",
      "interestCtaLarger": "I want a plan for a bigger operation at launch",
      "subtitleLoss": "By your numbers, <strong class=\"text-fg\">{{amount}}</strong> slips away each month.",
      "subtitleExample": "On the calculator's example ({{missed}} missed a week, {{spend}} spend, {{share}} to a competitor), <strong class=\"text-fg\">{{amount}}</strong> slips away each month.",
      "subtitleOwn": "Put in your numbers",
      "recommended": "Recommended",
      "mailtoNote": "Each button opens an e-mail to info@it-nuts.cz with the plan in the subject. If nothing opens, the address is here:",
      "noticeStep": "Pick a plan and let us know; we will be in touch at launch.",
      "subtitleTier": "The {{tier}} plan stops it",
      "subtitleTierBelow": "The {{tier}} plan would address it, though by the numbers it does not pay off yet"
    },
    "situations": {
      "email": {
        "title": "Just email",
        "text": "You handle the phone. Emails and bookings are piling up.",
        "stepUp": "Busier?",
        "stepUpLink": "{{tier}} at {{price}}",
        "why": "Why we recommend it: it answers e-mails even at night, books appointments and keeps the calendar free of double bookings."
      },
      "voice": {
        "title": "The phone",
        "text": "Calls slip away while you work, at lunch and after closing.",
        "why": "Why we recommend it: it answers the calls that slip away today, books the appointment and confirms it the day before."
      },
      "combo": {
        "title": "Everything",
        "text": "Phone, email, WhatsApp and Instagram. One receptionist for every channel.",
        "why": "Why we recommend it: on top of Voice it adds WhatsApp, Instagram, Messenger and a chat on your website, for {{diff}} a month more."
      },
      "larger": {
        "title": "A bigger operation?",
        "text": "More branches, more people, or an assistant for management."
      }
    },
    "faq": {
      "heading": "Frequently asked questions",
      "q1": "Is it just a chatbot?",
      "a1": "Not at all. Our AIssistant uses advanced LLMs (Large Language Models) that understand context and nuances. It can hold a fluent voice conversation and write natural email replies, not just answer predefined questions.",
      "q2": "Does the AI really speak fluently?",
      "a2": "Yes, we use state-of-the-art language models with advanced multilingual support. The AI understands colloquial language and industry-specific terms from your field.",
      "q3": "What about GDPR and sensitive data?",
      "a3": "Security is our priority. All data is stored on secured European servers meeting the strictest GDPR standards. Call transcripts and emails are encrypted, and only you have access to them.",
      "q4": "How does the setup work?",
      "a4": "Our setup wizard walks you through everything step by step: connect your booking inbox, calendar and optionally your phone number. Realistically it takes no more than 30 minutes. And if you get stuck anywhere, we're one message away.",
      "q5": "What if the AI doesn't know the answer?",
      "a5": "In that case, the AI politely asks for contact details and notifies you so you can get back to the client personally, whether they called or emailed. Nothing goes unanswered.",
      "q6": "When does AIssistant launch?",
      "a6": "We are not announcing a date yet. Write to us and we will tell you as soon as we know it. Until then you pay nothing and nothing is charged."
    },
    "cta": {
      "heading": "Let artificial intelligence do the work, <br class=\"hidden md:block\"/> you focus on <span class=\"text-primary\">your&nbsp;business</span>.",
      "description": "So you never miss a call or an e-mail again.",
      "button": "I want an AI receptionist for 14 days free",
      "note": "Write to us and we'll get back to you with the launch date."
    }
  }
}
