Skip to content
PkoLabsPkoLabs
← All posts

October 8, 2026

LifuKids web platform: how we build and ship a learning site for young children

The LifuKids web platform at lifukids.com — how we designed, built, and deployed a fast, safe learning site on AWS, and why we chose the stack we did.

  • LifuKids
  • Web
  • AWS
  • Astro

The LifuKids web platform is live at lifukids.com. It is the front door to our learning platform for young children: a fast, distraction-free site where parents can discover what LifuKids offers and jump straight into the content.

This post is a look under the hood — the stack decisions, the infrastructure, and the thinking behind them.

The stack

We built the platform on Astro with TypeScript and Tailwind CSS — the same stack we use across our projects. Astro ships zero JavaScript to the browser by default, which matters for a children’s site: fewer things to load means faster page transitions and a quieter, safer browsing experience for families.

The site is fully static. No server-side rendering, no database queries on page load. Every page is built ahead of time and served as flat HTML and CSS. The result is sub-second loads almost anywhere in the world, even on slower connections and mobile devices — exactly what we want for an audience that includes parents on the go.

AWS hosting: S3 + CloudFront

We host the platform on AWS S3 with CloudFront as the CDN. Static assets sit in an S3 bucket with public access blocked at the bucket level; CloudFront serves them through Origin Access Control, so the bucket is never exposed directly to the internet.

This setup gives us a few things that matter for a product site:

  • Speed. CloudFront caches content at edge locations globally, so a parent in Sydney loads the site as fast as one in Denver.
  • Cost. S3 and CloudFront together cost well under a few dollars a month at our traffic levels — and they scale up without a pricing cliff.
  • Simplicity. No servers to patch, no runtime to monitor. The site is files in a bucket. If CloudFront has a bad day, we can point DNS somewhere else in minutes.

Infrastructure as code

The entire infrastructure — the S3 bucket, the CloudFront distribution, the DNS records, the SSL certificate — is defined in Terraform. A single terraform apply provisions or updates everything, and the state file lives in a private S3 backend so the team always works from the same source of truth.

Deployments run through GitHub Actions. A push to the main branch triggers a build (npm run build), syncs the output to S3, and invalidates the CloudFront cache — all automated, all logged. No manual deploys, no SSH, no forgetting to clear a cache.

The content pipeline

The platform anchors a growing catalogue of stories, illustrations, and audio that we produce with our own agentic content pipeline. Our kids story generator — built on Google ADK with Gemini — drafts the stories, generates matching illustrations, and produces narration. Humans review every piece before it goes live, but the pipeline handles the heavy production work, letting us grow the catalogue steadily without a production team.

Why this matters

We built the LifuKids platform the same way we build client work: lightweight stack, infrastructure as code, automated deploys, and a clean separation between content and platform. The result is a site that loads fast, costs almost nothing to run, and can grow without hand-holding.

If you are building something similar — a content-heavy static site, a product landing page, or a platform that needs to stay fast and cheap as it scales — this same stack pattern transfers directly. Reach out if you would like to talk through the details.

Building something like this?

We help clients ship cloud, data, and AI work end to end.

Work with us