[{"data":1,"prerenderedAt":162},["ShallowReactive",2],{"navigation":3,"legal":34,"mdc-o9uk0x-key":49},[4],{"title":5,"path":6,"stem":7,"children":8,"page":33},"Blog","/blog","blog",[9,13,17,21,25,29],{"title":10,"path":11,"stem":12},"ESLint Without Prettier: One Tool for Formatting and Linting in TypeScript","/blog/eslint-best-practice","blog/eslint-best-practice",{"title":14,"path":15,"stem":16},"AI-Powered Web Crawling with Crawl4AI: A Practical Guide","/blog/explore-ai-driven-crawling","blog/explore-ai-driven-crawling",{"title":18,"path":19,"stem":20},"Why Your Startup Should Go Headless CMS from Day One","/blog/headless-cms-startups","blog/headless-cms-startups",{"title":22,"path":23,"stem":24},"Host Your Docker Container on Railway in 5 Minutes (8GB RAM for $5)","/blog/railway-smart-docker-host","blog/railway-smart-docker-host",{"title":26,"path":27,"stem":28},"Supabase vs Custom Auth: What I Recommend for Early-Stage SaaS","/blog/supabase-vs-custom-auth","blog/supabase-vs-custom-auth",{"title":30,"path":31,"stem":32},"How to Migrate WordPress to Strapi Headless CMS (With 1,000+ Posts)","/blog/wordpress-to-strapi-migration","blog/wordpress-to-strapi-migration",false,{"id":35,"title":36,"body":37,"content":39,"description":38,"extension":41,"lastUpdated":42,"meta":43,"navigation":44,"path":45,"seo":46,"stem":47,"__hash__":48},"legal/legal.yml","Legal",{"title":36,"description":38,"content":39,"lastUpdated":40},"Imprint, privacy policy, terms of use, and copyright information.","## Legal Documents\n\n- [Imprint](/imprint) — Legally required information about the operator of this website\n- [Privacy Policy](/privacy) — How personal data is processed under the GDPR\n\n## Terms of Use\n\nAccess to and use of this website is provided free of charge for general informational purposes. By visiting the site, you agree that the content, code samples, opinions and recommendations published here are provided \"as is\" and without warranty of any kind. Use is at your own risk.\n\nThis website does not constitute a binding offer to enter into a contract. Specific services are only provided after a separate written agreement.\n\n## Disclaimer\n\nThe author takes care to keep the content of this site accurate and up to date, but no guarantee is given as to the completeness, accuracy, timeliness, or reliability of the information presented. Liability claims regarding damage caused by the use of any information provided, including any kind of information which is incomplete or incorrect, are therefore excluded, unless caused by intent or gross negligence.\n\nExternal links are checked at the time of linking. The author has no influence on the current and future design or content of linked pages and is not responsible for them. If any linked page contains illegal content after the time of linking, please notify me and the link will be removed promptly.\n\n## Copyright\n\nUnless otherwise noted, all content, design and code on this website — including text, graphics, layouts and source code — are © Niklas Grieger and protected under applicable copyright law. Reproduction, adaptation, or distribution outside the bounds of copyright law requires prior written permission.\n\nPublic code samples shown in blog posts and project pages may additionally be licensed under their respective open-source licenses; in case of conflict, the more permissive license applies to the snippet shown.\n\n## Trademarks\n\nAll trademarks and product names mentioned on this site are the property of their respective owners. Their mention does not imply endorsement.\n\n## Governing Law\n\nThese terms and the use of this website are governed by the laws of the Federal Republic of Germany, without regard to its conflict-of-law provisions. Mandatory consumer protection rights of the country in which you reside remain unaffected.\n","2026-05-28","yml","2026-05-28T00:00:00.000Z",{},true,"/legal",{"title":36,"description":38},"legal","uuaJdYgVmOs6vB_Pni2RGaQbvB7NkDmBnGqQTmoBoZ8",{"data":50,"body":51},{},{"type":52,"children":53},"root",[54,63,91,97,103,108,114,119,124,130,135,140,146,151,157],{"type":55,"tag":56,"props":57,"children":59},"element","h2",{"id":58},"legal-documents",[60],{"type":61,"value":62},"text","Legal Documents",{"type":55,"tag":64,"props":65,"children":66},"ul",{},[67,80],{"type":55,"tag":68,"props":69,"children":70},"li",{},[71,78],{"type":55,"tag":72,"props":73,"children":75},"a",{"href":74},"/imprint",[76],{"type":61,"value":77},"Imprint",{"type":61,"value":79}," — Legally required information about the operator of this website",{"type":55,"tag":68,"props":81,"children":82},{},[83,89],{"type":55,"tag":72,"props":84,"children":86},{"href":85},"/privacy",[87],{"type":61,"value":88},"Privacy Policy",{"type":61,"value":90}," — How personal data is processed under the GDPR",{"type":55,"tag":56,"props":92,"children":94},{"id":93},"terms-of-use",[95],{"type":61,"value":96},"Terms of Use",{"type":55,"tag":98,"props":99,"children":100},"p",{},[101],{"type":61,"value":102},"Access to and use of this website is provided free of charge for general informational purposes. By visiting the site, you agree that the content, code samples, opinions and recommendations published here are provided \"as is\" and without warranty of any kind. Use is at your own risk.",{"type":55,"tag":98,"props":104,"children":105},{},[106],{"type":61,"value":107},"This website does not constitute a binding offer to enter into a contract. Specific services are only provided after a separate written agreement.",{"type":55,"tag":56,"props":109,"children":111},{"id":110},"disclaimer",[112],{"type":61,"value":113},"Disclaimer",{"type":55,"tag":98,"props":115,"children":116},{},[117],{"type":61,"value":118},"The author takes care to keep the content of this site accurate and up to date, but no guarantee is given as to the completeness, accuracy, timeliness, or reliability of the information presented. Liability claims regarding damage caused by the use of any information provided, including any kind of information which is incomplete or incorrect, are therefore excluded, unless caused by intent or gross negligence.",{"type":55,"tag":98,"props":120,"children":121},{},[122],{"type":61,"value":123},"External links are checked at the time of linking. The author has no influence on the current and future design or content of linked pages and is not responsible for them. If any linked page contains illegal content after the time of linking, please notify me and the link will be removed promptly.",{"type":55,"tag":56,"props":125,"children":127},{"id":126},"copyright",[128],{"type":61,"value":129},"Copyright",{"type":55,"tag":98,"props":131,"children":132},{},[133],{"type":61,"value":134},"Unless otherwise noted, all content, design and code on this website — including text, graphics, layouts and source code — are © Niklas Grieger and protected under applicable copyright law. Reproduction, adaptation, or distribution outside the bounds of copyright law requires prior written permission.",{"type":55,"tag":98,"props":136,"children":137},{},[138],{"type":61,"value":139},"Public code samples shown in blog posts and project pages may additionally be licensed under their respective open-source licenses; in case of conflict, the more permissive license applies to the snippet shown.",{"type":55,"tag":56,"props":141,"children":143},{"id":142},"trademarks",[144],{"type":61,"value":145},"Trademarks",{"type":55,"tag":98,"props":147,"children":148},{},[149],{"type":61,"value":150},"All trademarks and product names mentioned on this site are the property of their respective owners. Their mention does not imply endorsement.",{"type":55,"tag":56,"props":152,"children":154},{"id":153},"governing-law",[155],{"type":61,"value":156},"Governing Law",{"type":55,"tag":98,"props":158,"children":159},{},[160],{"type":61,"value":161},"These terms and the use of this website are governed by the laws of the Federal Republic of Germany, without regard to its conflict-of-law provisions. Mandatory consumer protection rights of the country in which you reside remain unaffected.",1779969971901]