[{"data":1,"prerenderedAt":246},["ShallowReactive",2],{"navigation":3,"childcare-websites":146},[4],{"title":5,"path":6,"stem":7,"children":8,"page":145},"Articles","\u002Farticles","articles",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141],{"title":10,"path":11,"stem":12},"Building a Claude Code Plugin with Hooks","\u002Farticles\u002F2026-01-04-building-claude-code-plugin-with-hooks","articles\u002F2026-01-04-building-claude-code-plugin-with-hooks",{"title":14,"path":15,"stem":16},"Where should I validate? Everywhere, and for different reasons","\u002Farticles\u002F2026-04-18-validation-across-the-stack","articles\u002F2026-04-18-validation-across-the-stack",{"title":18,"path":19,"stem":20},"Error handling across the stack","\u002Farticles\u002F2026-04-23-error-handling-across-the-stack","articles\u002F2026-04-23-error-handling-across-the-stack",{"title":22,"path":23,"stem":24},"3 Ways to Run NestJS Cron Jobs When Running Multiple Instances","\u002Farticles\u002F3-ways-to-run-nestjs-cron-jobs-when-running-multiple-instances","articles\u002F3-ways-to-run-nestjs-cron-jobs-when-running-multiple-instances",{"title":26,"path":27,"stem":28},"Building a Custom Content Slider (Carousel) in Angular","\u002Farticles\u002Fbuilding-a-custom-content-slider-carousel-in-angular","articles\u002Fbuilding-a-custom-content-slider-carousel-in-angular",{"title":30,"path":31,"stem":32},"Building Jobven: Designing a Developer-Friendly API","\u002Farticles\u002Fbuilding-jobven-designing-a-developer-friendly-api","articles\u002Fbuilding-jobven-designing-a-developer-friendly-api",{"title":34,"path":35,"stem":36},"Building MapleStack: AWS S3 for Data Storage","\u002Farticles\u002Fbuilding-maplestack-aws-s3-for-data-storage","articles\u002Fbuilding-maplestack-aws-s3-for-data-storage",{"title":38,"path":39,"stem":40},"Building MapleStack: Enhancing Email Capabilities with Mailgun","\u002Farticles\u002Fbuilding-maplestack-enhancing-email-capabilities-with-mailgun","articles\u002Fbuilding-maplestack-enhancing-email-capabilities-with-mailgun",{"title":42,"path":43,"stem":44},"Building MapleStack: NestJS for Server-Side Operations","\u002Farticles\u002Fbuilding-maplestack-nestjs-for-server-side-operations","articles\u002Fbuilding-maplestack-nestjs-for-server-side-operations",{"title":46,"path":47,"stem":48},"Building MapleStack: PostgreSQL for Data Storage","\u002Farticles\u002Fbuilding-maplestack-postgresql-for-data-storage","articles\u002Fbuilding-maplestack-postgresql-for-data-storage",{"title":50,"path":51,"stem":52},"Building MapleStack: React for an interactive user interface","\u002Farticles\u002Fbuilding-maplestack-react-for-an-interactive-user-interface","articles\u002Fbuilding-maplestack-react-for-an-interactive-user-interface",{"title":54,"path":55,"stem":56},"Building MapleStack: Securing Connections with Let's Encrypt","\u002Farticles\u002Fbuilding-maplestack-securing-connections-with-lets-encrypt","articles\u002Fbuilding-maplestack-securing-connections-with-lets-encrypt",{"title":58,"path":59,"stem":60},"Building MapleStack: Simplifying User Authorization with AWS Cognito","\u002Farticles\u002Fbuilding-maplestack-simplifying-user-authorization-with-aws-cognito","articles\u002Fbuilding-maplestack-simplifying-user-authorization-with-aws-cognito",{"title":62,"path":63,"stem":64},"Building MapleStack: Tailwind CSS for Streamlined Styling","\u002Farticles\u002Fbuilding-maplestack-tailwind-css-for-streamlined-styling","articles\u002Fbuilding-maplestack-tailwind-css-for-streamlined-styling",{"title":66,"path":67,"stem":68},"Debugging Multiple NestJS Applications in VSCode","\u002Farticles\u002Fdebugging-multiple-nestjs-applications-in-vscode","articles\u002Fdebugging-multiple-nestjs-applications-in-vscode",{"title":70,"path":71,"stem":72},"Enums as arrays in PostgreSQL - Updated 2024","\u002Farticles\u002Fenums-as-arrays-in-postgresql","articles\u002Fenums-as-arrays-in-postgresql",{"title":74,"path":75,"stem":76},"FindChildcare.ca","\u002Farticles\u002Ffindchildcare-ca","articles\u002Ffindchildcare-ca",{"title":78,"path":79,"stem":80},"GraphQL Server - Apollo, KoaJS and Typescript implementation","\u002Farticles\u002Fgraphql-server-apollo-koajs-and-typescript-implementation","articles\u002Fgraphql-server-apollo-koajs-and-typescript-implementation",{"title":82,"path":83,"stem":84},"How I built MapleStack's waitlist with AI: ChatGPT vs Bard","\u002Farticles\u002Fhow-i-built-maplestacks-waitlist-with-ai-chatgpt-vs-bard","articles\u002Fhow-i-built-maplestacks-waitlist-with-ai-chatgpt-vs-bard",{"title":86,"path":87,"stem":88},"How to Integrate Google reCAPTCHA v3 with NestJS in 3 Easy Steps","\u002Farticles\u002Fhow-to-integrate-google-recaptcha-v3-with-nestjs-in-3-easy-steps","articles\u002Fhow-to-integrate-google-recaptcha-v3-with-nestjs-in-3-easy-steps",{"title":90,"path":91,"stem":92},"How to resolve a blacklisted domain","\u002Farticles\u002Fhow-to-resolve-a-blacklisted-domain","articles\u002Fhow-to-resolve-a-blacklisted-domain",{"title":94,"path":95,"stem":96},"Implementing WordPress-like Tags in Nuxt Content","\u002Farticles\u002Fimplementing-wordpress-like-tags-in-nuxt","articles\u002Fimplementing-wordpress-like-tags-in-nuxt",{"title":98,"path":99,"stem":100},"Jobven","\u002Farticles\u002Fjobven","articles\u002Fjobven",{"title":102,"path":103,"stem":104},"KidzLog","\u002Farticles\u002Fkidzlog","articles\u002Fkidzlog",{"title":106,"path":107,"stem":108},"MapleStack","\u002Farticles\u002Fmaplestack","articles\u002Fmaplestack",{"title":110,"path":111,"stem":112},"Migrating from WordPress to Nuxt","\u002Farticles\u002Fmigrating-from-wordpress-to-nuxt","articles\u002Fmigrating-from-wordpress-to-nuxt",{"title":114,"path":115,"stem":116},"My Initial Server Setup Checklist","\u002Farticles\u002Fmy-initial-server-setup-checklist","articles\u002Fmy-initial-server-setup-checklist",{"title":118,"path":119,"stem":120},"Pre-authorized transaction on the Stellar network","\u002Farticles\u002Fpre-authorized-transaction-on-the-stellar-network","articles\u002Fpre-authorized-transaction-on-the-stellar-network",{"title":122,"path":123,"stem":124},"Saza: Open Source mobile and desktop Stellar wallet release.","\u002Farticles\u002Fsaza-open-source-mobile-and-desktop-stellar-wallet-release","articles\u002Fsaza-open-source-mobile-and-desktop-stellar-wallet-release",{"title":126,"path":127,"stem":128},"SpellCheckMySite.com","\u002Farticles\u002Fspellcheckmysite-com","articles\u002Fspellcheckmysite-com",{"title":130,"path":131,"stem":132},"Using Check Constraints in PostgreSQL for Value Validation","\u002Farticles\u002Fusing-check-constraints-in-postgresql-for-value-validation","articles\u002Fusing-check-constraints-in-postgresql-for-value-validation",{"title":134,"path":135,"stem":136},"Using DataLoader in GraphQL","\u002Farticles\u002Fusing-dataloader-in-graphql","articles\u002Fusing-dataloader-in-graphql",{"title":138,"path":139,"stem":140},"Using Typescript in NodeJS development","\u002Farticles\u002Fusing-typescript-in-nodejs-development","articles\u002Fusing-typescript-in-nodejs-development",{"title":142,"path":143,"stem":144},"Welcome!","\u002Farticles\u002Fwelcome","articles\u002Fwelcome",false,{"id":147,"title":148,"body":149,"demo":150,"description":156,"extension":157,"faq":158,"form":179,"head":149,"hero":191,"howItWorks":205,"meta":221,"navigation":222,"ogImage":149,"path":223,"problem":224,"robots":149,"schemaOrg":149,"seo":227,"sitemap":230,"stem":231,"whyMe":232,"__hash__":245},"childcareWebsites\u002Fchildcare-websites.yml","Childcare websites, built and looked after for you",null,{"title":151,"body":152,"note":153,"url":154,"image":155},"See what it looks like","Here is a complete, live example built for a made-up centre. Click through it, try the form, switch the language.","Every centre gets its own design. This is just one of them.","https:\u002F\u002Fnorthstar.oliha.dev","\u002Fassets\u002Fimages\u002Fchildcare\u002Fnorthstar-hero.webp","A done-for-you website for your childcare centre. Free to build, kept current and maintained, so it is never one more thing on your plate.","yml",{"title":159,"items":160},"Questions owners ask",[161,164,167,170,173,176],{"label":162,"content":163},"Is this just a template?","No. Every centre gets its own design, built around its brand, photos and programs. The live example is one of several looks, not a one-size template.",{"label":165,"content":166},"What does it cost?","The build is free. There is a small monthly amount to host and maintain it, which I am happy to talk through once I know a bit about your centre. No upfront cost to start.",{"label":168,"content":169},"What do you need from me?","Some photos and a few details about your programs and hours. I do the rest.",{"label":171,"content":172},"How long does it take?","Usually a first draft to look at within a few days of getting your details, then live once you are happy.",{"label":174,"content":175},"Do I own it?","Your content and photos are yours. I look after the build and the hosting so you do not have to.",{"label":177,"content":178},"Can it run in more than one language?","Yes. If your families speak more than one language, the site can too.",{"title":180,"description":181,"name":182,"centre":183,"email":184,"message":185,"submit":186,"successTitle":187,"successBody":188,"errorTitle":189,"errorBody":190},"Tell me about your centre","A couple of details and I will follow up. No pressure, happy to just answer questions.","Your name","Centre name","Email","Anything you would like me to know (optional)","Send","Got it","Thanks. I will be in touch shortly.","That did not send","Please try again in a moment, or email hello@oliha.dev.",{"kicker":192,"title":193,"description":194,"links":195},"For childcare centres","A website for your centre, built and looked after for you","The build is free. I design it, host it, and keep it current, so your website is never one more thing on your to-do list.",[196,200],{"label":180,"to":197,"color":198,"size":199},"#enquire","primary","lg",{"label":201,"to":154,"target":202,"color":203,"variant":204,"size":199},"See a live example","_blank","neutral","subtle",{"title":206,"description":207,"items":208},"I handle the whole thing","You run the centre. I run the website. That is the deal.",[209,212,215,218],{"title":210,"body":211},"Free to build","I design and build the site around your centre, your photos, your programs. There is no upfront cost to get started.",{"title":213,"body":214},"Hosted and maintained","I host it and keep it current, year after year, so it stays looked after without you ever becoming the website person.",{"title":216,"body":217},"Built to actually work","Real pages, a working enquiry form that lands in your inbox, and room to run in more than one language if your families need it.",{"title":219,"body":220},"You own your content","Your words and your photos stay yours. You send me a few details to start, and that is about all it takes from you.",{},true,"\u002Fchildcare-websites",{"title":225,"body":226},"Your website has been on the to-do list for two years","Most childcare owners do not have time to build a website, let alone keep it current. So it either does not exist, or it was set up once and never touched again. Meanwhile the families looking for care are looking online first.",{"title":228,"description":229},"Childcare Websites, Built and Maintained for You","A done-for-you website for your daycare or childcare centre. The build is free; I host it and keep it current so you never have to think about it.",{"loc":223},"childcare-websites",{"title":233,"body":234,"points":235},"I do not just build websites, I build childcare software","This is not a freelancer who happened to land a daycare. I work in childcare technology every day, which means I understand the centre behind the website.",[236,239,242],{"title":237,"body":238},"I build the directory","FindChildcare.ca, where families search for providers.",{"title":240,"body":241},"I build the management software","KidzLog, used by centres to run the day to day.",{"title":243,"body":244},"And I build the sites","So your website fits how a real childcare centre actually works.","V9wl9Ap2lPwNiTzYo_G4Q-GDjC-AkSUvBPxl0Sl5bzg",1781389105464]