Kids News Generator

An AI-powered platform that transforms real-world news into age-appropriate, kid-friendly articles with generated illustrations.

ReactTypeScriptFastAPIPythonOpenAIFLUXPostgreSQLDockerCapacitor
Visit Deployed Project

February 2026

Overview

Kids News Generator is a full-stack application that makes current events accessible to children. It pulls real news articles, rewrites them for specific age groups (3–6, 7–9) using OpenAI's GPT-4o-mini, generates kid-friendly illustrations with FLUX, and serves them through a mobile-ready React frontend.

Key Features

  • Age-adaptive content — Rewrites news for different age groups (3–6, 7–9) with appropriate vocabulary and tone
  • AI illustrations — Generates kid-friendly images using FLUX, validated with CLIP for relevance
  • Mobile-ready — Android app via Capacitor alongside the web frontend
  • Async processing — Celery + Redis for background article generation and image tasks

Technical Details

Built with a React/TypeScript frontend (Vite + Tailwind CSS) and a FastAPI/Python backend. Uses OpenAI GPT-4o-mini for text generation, FLUX for image generation, and CLIP for image validation. PostgreSQL for storage, Celery + Redis for task queues, and Nginx as a reverse proxy. Fully containerized with Docker.

What I Learned

Deploying this project to production was where the real lessons came. Live generation of articles and images on every request quickly revealed how expensive API calls to OpenAI and FLUX can be — costs added up fast when each user visit triggered new generations. This forced me to rethink the architecture: instead of generating content on demand, I shifted to a prefetch strategy where articles and illustrations are generated on a schedule and cached in the database, so users are served pre-generated content. This drastically cut costs while also improving response times. Beyond cost management, I learned about chaining multiple AI models together, orchestrating async tasks with Celery, and the importance of planning for real-world usage patterns before deploying AI-powered features.