Inspiration

Ghost stories are a global cultural phenomenon. Paranormal creators on YouTube attract hundreds of millions of monthly views, and surveys consistently show that a large percentage of people believe they’ve experienced something supernatural. But while people love consuming ghost stories, the real ones — shared in conversations, messages, or memories — almost always disappear. They’re never preserved, never validated, and never mapped. I wanted to build something that captures these real experiences, enhances them into beautifully crafted narratives, and places them on a global, explorable map. Something that brings structure, storytelling, and community verification to the paranormal world. That idea became GhostAtlas.

What it does

GhostAtlas is a mobile-first paranormal storytelling platform, now live on the iOS App Store, with Android under review. It transforms real ghost encounters into immersive AI-enhanced experiences and maps them across the world. 🗺 Global Haunted Map Users can explore real encounters pinned to exact locations, discovering haunted spots near them or anywhere in the world. ✍️ AI-Enhanced Storytelling (Powered by AWS Bedrock) When a submission is approved: Claude 3 Sonnet rewrites the raw encounter into a clean, atmospheric narrative Stable Diffusion XL generates eerie illustrations AWS Polly Neural Voices produce a haunting narration All orchestrated through an SQS-based pipeline. 👣 Ghost Buster System (Community Verification) Users can “bust” a story by visiting the encounter location within 50 meters and around the original time window. They can: Share what they felt Rate the spookiness Add observations This adds authenticity and collaborative discovery. 📝 Submission Flow + Admin Review Anyone can submit a story, but only approved stories go live — ensuring quality and preventing spam. 🌐 Website Viewer A lightweight web app allows public reading of stories.

How we built it

GhostAtlas was built using a combination of AWS Bedrock AI, serverless infrastructure, and Kiro’s spec-driven development workflow. 🔧 Backend Architecture (Serverless AWS) AWS CDK (TypeScript) for IaC Lambda functions for API handlers DynamoDB tables for Encounters, Verifications, Ratings S3 for images, narration, and story assets API Gateway (100 req/min rate limit) SQS + DLQ powering the Bedrock enhancement pipeline CloudFront for global distribution CloudWatch + X-Ray for monitoring Geohash + Haversine for location proximity logic GitHub Actions for CI/CD fast-check for property-based testing 🤖 AWS Bedrock AI Pipeline Claude 3 Sonnet → story rewriting SDXL → illustrations AWS Polly → narration Everything coordinated via SQS with safe retries. 🧠 Using Kiro for Development Kiro was used to engineer the entire system:

  1. Four Spec Suites ghostatlas-aws-backend ghostatlas-core ghostatlas-ui-theme ghostatlas-web-app Each containing detailed requirements, architecture, and implementation steps.
  2. Steering Documents product.md — vision, UX, aesthetics structure.md — monorepo layout, naming conventions tech.md — the whole stack, commands, testing tooling These ensured Kiro always had full context.
  3. Task-Driven Development 19 major tasks and 60+ subtasks were executed through Kiro’s structured workflow.
  4. MCP Integration The aws-docs MCP server allowed Kiro to query real AWS documentation and generate accurate CDK, IAM, and Lambda code.

Challenges we ran into

Designing a safe and reliable AI pipeline for rewriting, illustration, and narration. Ensuring database integrity across Encounters, Verifications, and Ratings. Handling geospatial accuracy for the Ghost Buster system. Maintaining consistent horror-themed UI across Flutter and web. Optimizing CloudFront + S3 for fast global content delivery. Balancing story creativity with factual faithfulness during AI rewriting. Synchronizing the entire system through SQS, DLQ, and multiple Lambdas. Ensuring Kiro followed the exact project structure using spec + steering files.

Accomplishments that we're proud of

Successfully launched the iOS app before the deadline. Built a complete AI story enhancement pipeline using Bedrock end-to-end. Created a fully serverless backend that scales automatically. Designed a polished horror-themed UI and story viewer. Developed a Ghost Buster verification mechanism — something not found in any paranormal app. Created one of the most structured and detailed Kiro workspaces with: 4 spec suites 3 steering docs Full MCP integration Task-driven execution Delivered an app that is both technically deep and creatively atmospheric.

What we learned

How to use Kiro’s specs, steering, and MCP integration to build large-scale projects efficiently. How to design serverless AI pipelines with Bedrock + SQS + Lambda. The importance of data modeling around geospatial storytelling. Techniques for combining AI generation with human authenticity. How to turn a paranormal concept into a structured, production-ready application.

What's next for GhostAtlas

Android launch once approved Follow system for creators and ghost busters Voice-note based story submission Local haunted routes for travelers Regional-language story enhancement via Bedrock Community tiers for verified explorers Partnerships with content creators in the paranormal space AR mode to explore haunted locations interactively Geo-based horror experiences during night-time explorations GhostAtlas is just the beginning — a foundation for a global, living archive of supernatural encounters.

Share this project:

Updates