How I AIVibe-coding a kid-friendly AI fortune teller for your Halloween festivities | Marco Casalaina
CHAPTERS
Haunted recording leads to a surprise Halloween vibe-code episode
Claire opens with an impromptu “spooky” Halloween edition after their planned recording gets derailed. The goal becomes a quick, parent-friendly AI project viewers can copy for Halloween fun.
- •Regular episode fails due to “haunted” logistics (expired corporate credit cards)
- •Pivot to a short, practical Halloween AI build
- •Invitation for viewers to share their own Halloween vibe-code ideas
Marco’s Halloween tradition: the neighborhood block-party fortune teller
Marco describes his annual role as a fortune teller at a big neighborhood Halloween block party in Piedmont, California. He sets the scene with his table setup and how kids interact with the experience.
- •Neighborhood blocks off the street; hundreds of kids attend
- •Marco runs a fortune-teller station with a glowing crystal ball prop
- •Intent: fun, kid-safe “fortunes” that feel magical
How he used to do it: pre-generated fortunes on a phone
Before building an app, Marco generated a list of fortunes ahead of time using GPT (earlier GPT-3, then GPT-4). During the event, he’d pick one at random from a notes app and perform the reading.
- •Pre-created fortune list generated with GPT models
- •Stored in phone notes and selected randomly
- •Fortunes designed to be kid-friendly and quick to deliver
Choosing a vibe-coding tool: building it live with GitHub Spark
Instead of just describing the idea, Marco decides to build a simple mobile app on the fly. He considers multiple tools but chooses GitHub Spark based on prior success.
- •Mentions alternative tools (Lovable, Bolt, v0)
- •Selects GitHub Spark for this build
- •Simple app goal: button tap generates a fortune in a fortune-teller style
Prompting the app and watching Spark generate PRD + UI code
Marco issues a straightforward prompt and Spark rapidly produces a PRD and then scaffolds the UI (HTML/CSS). They frame this as modern front-end “vibe coding,” where iteration happens through prompts.
- •Spark generates a PRD first, then builds index/CSS
- •Front-end scaffolding appears quickly
- •They note it’s impressive how far a single prompt gets them
Why Spark: a quick detour into a previous chemistry flashcards app
Marco explains he previously used Spark to build a flashcards app for his daughter’s honors chemistry studies (polyatomic ions). That experience builds confidence that Spark can handle a simple fortune “card” style app too.
- •Prior Spark project: polyatomic ion flashcards
- •Worked well on mobile with a simple list-driven interface
- •Fortunes are conceptually similar to flashcards (one-at-a-time content)
From playful demo to serious builds: Marco’s SpecKit workflow
While the fortune app finishes, Marco contrasts quick demos with “serious projects,” where he uses SpecKit to write better specifications. He describes how SpecKit asks clarifying questions and supports multiple coding assistants.
- •Marco’s background: VP of Products, Core AI at Microsoft; still codes daily
- •SpecKit helps produce rigorous feature specs by prompting clarifications
- •Example: adding user feedback correction to an agent workflow
- •Works with GitHub Copilot, Claude Code, Cursor, and others
First run fortune: pretty, ambiguous, and not kid-optimized
They try the generated app and read its first fortune aloud—mystical and nicely written but vague. Claire jokes that its ambiguity makes it a classic “fortune teller” line, while acknowledging they want something more kid-appropriate.
- •App UI appears (e.g., “Tap to reveal your fortune”)
- •First fortune is cosmic and inspirational but abstract
- •They decide to tighten constraints for kids (shorter, simpler, funnier)
Iterating via prompts: one sentence, kid-friendly, more concrete and funny
Marco refines the prompt: fortunes should be one sentence, kid-friendly, less abstract, more humorous, and avoid big words. They discuss how very young kids need ultra-simple, concrete fortunes.
- •Add constraints: one sentence + kid-friendly
- •Further constraints: more concrete, more humorous, simpler language
- •Real-world usage: toddlers may need fortunes as simple as “You’ll try a yummy new food”
- •Acknowledges social impact: kids remember fortunes; parents react
Testing outputs: pizza-rock fortune, repetition issues, and a squirrel twist
They generate a new fortune that’s specific and funny (pizza-shaped shiny rock), then notice repeated “rock” patterns in subsequent outputs. Marco points out the need to test and adjust prompts, ending with a silly squirrel scenario.
- •Concrete fortune example: shiny rock like a slice of pizza
- •Pattern repetition emerges (multiple “rock” fortunes)
- •Callout: you have to “integration test” generative content
- •Alternative fortune: squirrel steals a snack then shares a secret
Claire’s next step: add voice for a spooky, kid-friendly fortune booth
Claire plans to reuse the idea for her own upcoming block party, including hooking it up to voice for a spooky fortune-teller effect. They position it as a fun, repeatable Halloween tradition for the show.
- •Claire will replicate it for her block party setup
- •Plan: add spooky voice output for extra atmosphere
- •They suggest making Halloween AI builds an annual tradition
Wrap-up and call to action
Claire closes with standard show outro: engagement requests and where to find the podcast. They tease Marco returning for the originally planned topic in a future episode.
- •Thanks viewers; like/subscribe/comment prompt
- •Podcast available on Apple Podcasts, Spotify, and more
- •Directs to howiaipod.com
- •Tease: Marco will return for the rescheduled deeper discussion