{"componentChunkName":"component---src-templates-blog-post-js","path":"/stop-overthinking-vpns/","result":{"data":{"site":{"siteMetadata":{"title":"Catwomaniya"}},"mdx":{"id":"fabec94e-3f49-57a2-b3a1-d7e734c06302","excerpt":"Most people using a VPN think they're being smart about privacy. They're not wrong. But my reason for getting one had nothing to do with privacy - at least not…","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"stop overthinking VPNs. just build your own.\",\n  \"date\": \"2026-05-06\",\n  \"description\": \"The privacy problem with commercial VPNs and why self-hosting matters\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"590px\"\n    }\n  }, \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/9bf6fa08648245832e8b8394a7ad6b0d/3cb18/vp1.jpg\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"136.48648648648648%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEBQH/xAAYAQACAwAAAAAAAAAAAAAAAAABAwACBP/aAAwDAQACEAMQAAABnZwAmLAyhTXZ355rDa//xAAcEAADAQACAwAAAAAAAAAAAAABAgMAEhMQITL/2gAIAQEAAQUCEk3CaY9S6as7PRo0c+xxnqKH3UCK/cgPH//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/AYs//8QAFxEAAwEAAAAAAAAAAAAAAAAAAQIQMf/aAAgBAgEBPwGIp0mf/8QAIBAAAQIFBQAAAAAAAAAAAAAAAAERAhIhMTIDICJBgf/aAAgBAQAGPwLkYIpiM3VyWOzUQppv6XHSGYqjNs//xAAbEAEBAQEBAQEBAAAAAAAAAAABEQAxIUFhof/aAAgBAQABPyGCga393alRgmbcxKdco8ZWARrpOF7ijwhLBqOr80AD/uDPd4lxGfhhFme7/9oADAMBAAIAAwAAABCMHfD/xAAZEQACAwEAAAAAAAAAAAAAAAABEQAQIVH/2gAIAQMBAT8QRToSwTOT/8QAGhEAAgIDAAAAAAAAAAAAAAAAAREAIRBRof/aAAgBAgEBPxB2sUjCeRnc/8QAHhABAAICAgMBAAAAAAAAAAAAAREhADFBYRBRceH/2gAIAQEAAT8QjQztuN89bqcXJMG7AtGbbwYMaqoe5MUxG2SWyPStPWEOpgbAGNneOOCdEjj9yDUlcrj5kR01cDqeMFXJEcPdfckEOAKwSCNk+D//2Q==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"companies/entities spying on you\",\n    \"title\": \"companies/entities spying on you\",\n    \"src\": \"/static/9bf6fa08648245832e8b8394a7ad6b0d/1c72d/vp1.jpg\",\n    \"srcSet\": [\"/static/9bf6fa08648245832e8b8394a7ad6b0d/a80bd/vp1.jpg 148w\", \"/static/9bf6fa08648245832e8b8394a7ad6b0d/1c91a/vp1.jpg 295w\", \"/static/9bf6fa08648245832e8b8394a7ad6b0d/1c72d/vp1.jpg 590w\", \"/static/9bf6fa08648245832e8b8394a7ad6b0d/3cb18/vp1.jpg 605w\"],\n    \"sizes\": \"(max-width: 590px) 100vw, 590px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \"), mdx(\"p\", null, \"Most people using a VPN think they\\u2019re being smart about privacy.\"), mdx(\"p\", null, \"They\\u2019re not wrong. But my reason for getting one had nothing to do with privacy - at least not at first. It started when my country began randomly blocking websites. It started with Chinese apps like TikTok, then tools like \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://techcrunch.com/2025/08/18/linktree-goes-dark-in-india-and-the-company-isnt-sure-why/\"\n  }), \"Linktree\"), \", then this year \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://techcrunch.com/2026/02/27/india-disrupts-access-to-popular-developer-platform-supabase-with-blocking-order/\"\n  }), \"Supabase got temporarily banned\"), \" for no apparent reason. I just wanted access to the tools I was already using.\"), mdx(\"p\", null, \"That was the push. But over the years privacy has become something I actually care about, so it made sense to go deeper.\"), mdx(\"p\", null, \"Now about commercial VPNs.\"), mdx(\"p\", null, \"All they do is change who can see your data. Not whether your data is visible.\"), mdx(\"p\", null, \"Right now, if you\\u2019re paying for a VPN app, you\\u2019ve gone from:\"), mdx(\"p\", null, \"\\u201CMy ISP can see everything\\u201D \\u2192 \\u201CSome random company can see everything\\u201D\"), mdx(\"p\", null, \"Everyone says \\u201Cjust use a VPN for privacy.\\u201D But the question nobody asks is who you\\u2019re actually trusting when you do that. \"), mdx(\"p\", null, \"Now many of the biggest VPN brands are owned by Kape Technologies and this space is weirdly concentrated. Kape Technologies owns ExpressVPN, CyberGhost, Private Internet Access, ZenMate, and Intego. . It was founded by Israeli businessman Teddy Sagi, and has strong Israeli origins/connections.This is a company with a complex history and ties that are worth at least a Google.\"), mdx(\"p\", null, \"You don\\u2019t have to believe anything shady is happening. You just have to ask whether you\\u2019ve actually thought about who\\u2019s on the other end of that tunnel.\"), mdx(\"p\", null, \"So what\\u2019s the best move?\"), mdx(\"p\", null, \"Run your own.\"), mdx(\"h2\", null, \"Why self-hosting beats any VPN app\"), mdx(\"p\", null, \"The simple version:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"No company sitting in the middle\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"No \\u201Cwe don\\u2019t log data, trust us bro\\u201D\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"No weird ownership structures or silent acquisitions\")), mdx(\"p\", null, \"You decide what gets logged - or nothing gets logged. And practically:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Costs $3\\u201310 a month\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Works on every device\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Takes about 20 minutes to set up once\")), mdx(\"h2\", null, \"But what are the actual downsides\"), mdx(\"p\", null, \"Your VPS provider still sees metadata. You have to maintain it - updates, basic security. If the server goes down, your VPN goes down with it.\"), mdx(\"p\", null, \"And the big one: one user, one IP. That\\u2019s easier to correlate than a shared pool of thousands. So no - this is not \\u201CI am invisible now.\\u201D\"), mdx(\"p\", null, \"It\\u2019s just more control and less blind trust. \"), mdx(\"p\", null, \"If that\\u2019s a lot, here\\u2019s good ones we still trust: \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://protonvpn.com/\"\n  }), \"Protonvpn\")), mdx(\"h2\", null, \"The setup\"), mdx(\"p\", null, \"Step 1 - Rent a VPS\\nA cloud server with a public IP. Pick any:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Contabo\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"DigitalOcean\\nAround $5 a month.\")), mdx(\"p\", null, \"Step 2 - Install WireGuard\\nWireGuard is probably the main protocol you need to know for self-hosting a VPN today. It\\u2019s lightweight, fast, modern, and much simpler than older setups like OpenVPN. Use wg-easy, it\\u2019s Docker-based and gives you a dashboard, one-click client creation and QR codes for your phone.\"), mdx(\"p\", null, \"The basic flow is:\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"rent a cheap VPS\\ninstall WireGuard/wg-easy\\ncreate a client profile\\nscan the QR code in the WireGuard app\\nand route your traffic through your own server\")), mdx(\"p\", null, \"And if your goal is serious anonymity? That\\u2019s where tools like Tor and good opsec matter more.\"), mdx(\"h2\", null, \"Who this is actually for\"), mdx(\"p\", null, \"This makes sense if you don\\u2019t want your ISP tracking everything, you don\\u2019t trust VPN companies and you want something cheap and predictable.\"), mdx(\"p\", null, \"It doesn\\u2019t make you anonymous. But it puts you in control of your own traffic instead of handing it to a company whose business model you can\\u2019t verify. \"), mdx(\"p\", null, \"No more \\u201Ctrust us bro.\\u201D\"), mdx(\"p\", null, \"At some point the tools got simple enough that running your own just became the obvious choice. \"), mdx(\"span\", {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"590px\"\n    }\n  }, \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/47311/vp2.jpg\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"100%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMEAQL/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAcXfcjJNRaOYEsHf/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQIAAyERQv/aAAgBAQABBQJK8KchrMWLjsdBz12f/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAGBEAAgMAAAAAAAAAAAAAAAAAARACEUH/2gAIAQIBAT8BMqWr/8QAGhAAAgIDAAAAAAAAAAAAAAAAABABMTJBQv/aAAgBAQAGPwLkxg0rcr//xAAbEAADAAMBAQAAAAAAAAAAAAAAAREhQVFxgf/aAAgBAQABPyGtu/hVHlKNPDFKPI1U6V10WgzcTkujZn//2gAMAwEAAgADAAAAEOM4w//EABgRAAIDAAAAAAAAAAAAAAAAAAARARBB/9oACAEDAQE/EHIza//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/EEhj/8QAHRABAQEBAAEFAAAAAAAAAAAAAREAITFBgZGhwf/aAAgBAQABPxBJPAAUP0dxBRUGvn4ze2HIEN0kB4c5oFdXIWXmHzEge7P3P4SKT00Bes3/2Q==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"companies/care about privacy\",\n    \"title\": \"companies/care about privacy\",\n    \"src\": \"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/1c72d/vp2.jpg\",\n    \"srcSet\": [\"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/a80bd/vp2.jpg 148w\", \"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/1c91a/vp2.jpg 295w\", \"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/1c72d/vp2.jpg 590w\", \"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/a8a14/vp2.jpg 885w\", \"/static/5f639a4a8b3b2ce14d4f1721fe0e8995/47311/vp2.jpg 1080w\"],\n    \"sizes\": \"(max-width: 590px) 100vw, 590px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"stop overthinking VPNs. just build your own.","date":"May 06, 2026","description":"The privacy problem with commercial VPNs and why self-hosting matters"}}},"pageContext":{"slug":"/stop-overthinking-vpns/","previous":{"fields":{"collection":"blog","slug":"/claude-md-best-practices-2/"},"frontmatter":{"title":"CLAUDE.md Part 2: what to add when you're building a mobile app with AI"}},"next":null}}}