[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"blog-category-stories":3},[4,10,16,20,25,30,34,39,45,51,55,60,64,70,75,79,84,89,94,99,104,108,113,118,122,127,132,138,142,147,151,156,160,166,171,176,180,185],{"path":5,"title":6,"description":7,"date":8,"readTime":9},"/blog/stories/openclaw-malicious-packages","OpenClaw's 900 Malicious npm Packages: What Vibe Coders Need to Know","The OpenClaw campaign published roughly 900 malicious npm packages designed to steal credentials and install backdoors. Here's why vibe coders are especially at risk and how to protect yourself.","2026-03-13","8 min read",{"path":11,"title":12,"description":13,"date":14,"readTime":15},"/blog/stories/lovable-app-exposed-18000-users","How a Lovable App Exposed 18,000 Users, Including Students","A Lovable-hosted exam app had 16 vulnerabilities including backwards authentication logic that blocked logged-in users and let anonymous visitors access everything. 18,697 user records leaked, including K-12 students.","2026-02-27","9 min read",{"path":17,"title":18,"description":19,"date":14,"readTime":9},"/blog/stories/weekend-hack-attempt","The Weekend Hack Attempt I Almost Missed","A founder's story of discovering an ongoing attack on their app while checking metrics on a lazy Sunday. How monitoring alerts and quick action prevented disaster.",{"path":21,"title":22,"description":23,"date":14,"readTime":24},"/blog/stories/what-hackers-target","What Hackers Look for in Vibe Coded Apps","A look at how attackers find and exploit vulnerabilities in AI-generated applications. Understanding the attacker mindset to build better defenses.",null,{"path":26,"title":27,"description":28,"date":29,"readTime":15},"/blog/stories/ai-assisted-fortigate-attack","How Attackers Used AI to Breach 50,000 FortiGate Firewalls","In early 2025, AI-assisted attackers compromised 50,000 FortiGate firewalls in weeks. Here's what happened and why it matters for every app builder.","2026-02-24",{"path":31,"title":32,"description":33,"date":29,"readTime":15},"/blog/stories/supabase-rls-missing","How Missing RLS Nearly Killed an Event Ticketing Startup","An event ticketing platform founder discovers their Supabase database had no Row Level Security. Any user could see any other user's data. The story of discovery, panic, and recovery.",{"path":35,"title":36,"description":37,"date":29,"readTime":38},"/blog/stories/user-reported-bug","A User Found Our Security Bug","How a customer support ticket about 'weird behavior' led to discovering and fixing a critical authorization vulnerability in our application.","5 min read",{"path":40,"title":41,"description":42,"date":43,"readTime":44},"/blog/stories/security-audit-wake-up","The Security Audit That Was a Wake-Up Call for a Property Management SaaS","What happens when professionals review your code for security issues. The findings were humbling, but the experience transformed how one property management startup builds software.","2026-02-19","7 min read",{"path":46,"title":47,"description":48,"date":49,"readTime":50},"/blog/stories/recovered-in-48-hours","How a Healthcare Scheduling Platform Recovered from a Breach in 48 Hours","A step-by-step timeline of incident response that worked. From discovery to recovery in 48 hours at a healthcare scheduling startup, including the critical decisions and lessons learned.","2026-02-17","12 min read",{"path":52,"title":53,"description":54,"date":49,"readTime":24},"/blog/stories/security-debt-cost","The True Cost of Security Debt - A Cautionary Tale","A fitness subscription startup accumulated security debt for two years. When it came due, it cost them 10x what prevention would have. Here's the math nobody wants to do.",{"path":56,"title":57,"description":58,"date":59,"readTime":24},"/blog/stories/password-breach-notification","The Password Breach That Affected a Recruiting Platform's Whole Team","A third-party service a recruiting platform used got breached, exposing credentials the team had reused. How credential stuffing almost compromised their systems.","2026-02-16",{"path":61,"title":62,"description":63,"date":59,"readTime":24},"/blog/stories/pen-test-experience","An HR Tech Startup's First Penetration Test - What to Expect","An HR tech startup hired their first penetration tester and didn't know what to expect. Here's what the process looked like, what they found, and whether it was worth the investment.",{"path":65,"title":66,"description":67,"date":68,"readTime":69},"/blog/stories/openai-key-abuse","When Someone Stole My OpenAI Key","A developer woke up to $2,000 in OpenAI charges after their API key was found in a public repository. The story of discovery, damage control, and prevention.","2026-02-12","6 min read",{"path":71,"title":72,"description":73,"date":74,"readTime":44},"/blog/stories/investor-asked-about-security","When an Investor Asked About Security - How to Be Ready","An investor asked 'What's your security posture?' and we weren't ready. Here's how we turned that awkward moment into a system for being prepared.","2026-02-09",{"path":76,"title":77,"description":78,"date":74,"readTime":9},"/blog/stories/learning-from-failure","What a CRM Startup Founder Learned from Their Biggest Security Failure","A CRM startup founder reflects on the security incident that taught them the most. The mistakes made, the lessons learned, and how failure became the best teacher.",{"path":80,"title":81,"description":82,"date":83,"readTime":44},"/blog/stories/insurance-claim-denied","When Insurance Denied a Real Estate Tech Company's Breach Claim","A real estate tech company had cyber insurance and a breach. The insurer denied the claim. The painful lesson about what cyber insurance actually covers and the fine print that matters.","2026-02-06",{"path":85,"title":86,"description":87,"date":88,"readTime":44},"/blog/stories/github-secrets-public","An Indie Developer's GitHub Secrets Went Public","The story of an indie SaaS developer accidentally pushing secrets to a public GitHub repository. How it happened, how fast they were found, and the scramble to fix everything.","2026-02-05",{"path":90,"title":91,"description":92,"date":93,"readTime":69},"/blog/stories/hacker-reached-out","The Hacker Who Reached Out to a Food Delivery Startup First","A white hat hacker found a vulnerability in a food delivery startup's platform and reported it responsibly before anyone could exploit it. This is the story of that email and what followed.","2026-02-04",{"path":95,"title":96,"description":97,"date":98,"readTime":15},"/blog/stories/from-zero-to-secure","From Zero Security to Sleep-at-Night Confidence","A practical guide based on our journey from security-ignorant to security-confident. The specific steps that got us there without becoming security experts.","2026-02-03",{"path":100,"title":101,"description":102,"date":103,"readTime":15},"/blog/stories/first-security-incident","A Freelance Platform Founder's First Security Incident","A freelance platform founder's honest account of their first security incident. The panic, the mistakes made during response, and the lessons that shaped how they think about security.","2026-02-02",{"path":105,"title":106,"description":107,"date":103,"readTime":9},"/blog/stories/moltbook-exposed-api-keys","How Moltbook Exposed 1.5 Million API Keys in Client-Side Code","Moltbook launched with their Supabase database wide open. No Row Level Security. 1.5 million API keys exposed in client-side JavaScript. A basic scan would have caught this before launch.",{"path":109,"title":110,"description":111,"date":112,"readTime":69},"/blog/stories/firewall-saved-us","How a Firewall Rule Saved a Gaming Platform from a Massive Attack","A simple Cloudflare firewall rule a gaming startup set up months ago blocked 50,000 malicious requests in one night. Here's what the attack looked like and why basic protections matter.","2026-01-30",{"path":114,"title":115,"description":116,"date":117,"readTime":9},"/blog/stories/domain-almost-stolen","Someone Almost Stole a Travel Booking Startup's Domain Through Social Engineering","How a social engineering attack nearly transferred a travel booking startup's domain to an attacker. The warning signs the team missed and how they recovered control just in time.","2026-01-28",{"path":119,"title":120,"description":121,"date":117,"readTime":9},"/blog/stories/env-file-indexed","Google Indexed a Social Media Tool's .env File - A Startup Security Nightmare","How a social media scheduling startup's .env file got indexed by Google, exposing database credentials and API keys to anyone who searched. The scary discovery and the team's emergency response.",{"path":123,"title":124,"description":125,"date":126,"readTime":24},"/blog/stories/dependency-vulnerability","A Dependency Vulnerability Put a Logistics SaaS's Users at Risk","How an outdated npm package with a known vulnerability exposed a logistics startup's application to attacks. The scramble to patch and lessons about dependency management.","2026-01-23",{"path":128,"title":129,"description":130,"date":131,"readTime":44},"/blog/stories/database-exposed","The Day My Database Was Exposed","A startup founder discovers their Supabase database was publicly accessible. No RLS, no auth checks. User data was exposed for three weeks before anyone noticed.","2026-01-22",{"path":133,"title":134,"description":135,"date":136,"readTime":137},"/blog/stories/customer-data-breach","The Customer Email That Started a Crisis at a B2B Analytics Platform","A customer of a B2B analytics platform reported seeing another user's data. What followed was a 72-hour crisis of investigation, damage control, and difficult conversations.","2026-01-20","11 min read",{"path":139,"title":140,"description":141,"date":136,"readTime":9},"/blog/stories/customer-trust-rebuilt","How a Marketplace Startup Rebuilt Customer Trust After a Security Incident","After a security incident exposed user data, a marketplace startup lost 23% of its customers in two weeks. Here's how the team communicated, what they changed, and how they eventually rebuilt confidence.",{"path":143,"title":144,"description":145,"date":146,"readTime":15},"/blog/stories/competitor-found-flaw","When a Competitor Found a Project Management SaaS's Security Flaw","A competitor publicly disclosed a security vulnerability in a project management SaaS product. The embarrassment, the scramble to fix it, and what the team learned about responsible disclosure.","2026-01-19",{"path":148,"title":149,"description":150,"date":146,"readTime":24},"/blog/stories/credit-card-testing","When Fraudsters Used a Small E-Commerce Store for Credit Card Testing","How criminals used a small e-commerce startup's checkout page to test stolen credit cards, resulting in chargebacks, fraud alerts, and a suspended Stripe account.",{"path":152,"title":153,"description":154,"date":155,"readTime":24},"/blog/stories/bot-attack-overnight","How a Bot Attack Overnight Crashed an Ed-Tech Platform's Servers","How automated bots overwhelmed an ed-tech platform's unprepared servers in the middle of the night. The chaos of waking up to a crashed system and how the team built resilience.","2026-01-15",{"path":157,"title":158,"description":159,"date":155,"readTime":24},"/blog/stories/community-helped","How the Dev Community Helped Me Fix a Security Mess","When I discovered multiple vulnerabilities in my app, the developer community helped me understand and fix them. A story about learning security together.",{"path":161,"title":162,"description":163,"date":164,"readTime":165},"/blog/stories/aws-bill-crypto","The $12,000 AWS Bill That Changed Everything","How an exposed AWS credential led to a cryptocurrency mining operation on my account. The shocking bill, the investigation, and how I got most of it refunded.","2026-01-13","10 min read",{"path":167,"title":168,"description":169,"date":170,"readTime":9},"/blog/stories/api-key-leaked-stripe","When My Stripe API Key Got Leaked","A founder's story of discovering their Stripe secret key was exposed in a public GitHub repo. The panic, the response, and the lessons learned.","2026-01-12",{"path":172,"title":173,"description":174,"date":175,"readTime":9},"/blog/stories/almost-gave-up","Why I Almost Gave Up on Security","The emotional journey of dealing with security as a solo founder. The overwhelm, the near-surrender, and how I found a sustainable approach.","2026-01-07",{"path":177,"title":178,"description":179,"date":175,"readTime":24},"/blog/stories/api-abuse-costs","How API Abuse Nearly Bankrupted a Developer Tools Startup","Someone found a developer tools company's unprotected AI API endpoint and racked up $47,000 in OpenAI charges in a single weekend. The story of how the team discovered and stopped the abuse.",{"path":181,"title":182,"description":183,"date":184,"readTime":24},"/blog/stories/100-scans-lessons","What I Learned Scanning 100 Vibe Coded Projects","After scanning 100 AI-generated projects, clear patterns emerged. Here are the most common vulnerabilities in vibe coded apps and how to avoid them.","2026-01-05",{"path":186,"title":187,"description":188,"date":184,"readTime":24},"/blog/stories/admin-panel-found","When Someone Found a Health-Tech Startup's Unprotected Admin Panel","A stranger found a health-tech startup's admin panel at /admin with no authentication. They could see all patient data, modify settings, and delete accounts. How the team fixed it.",1775843918546]