How I AIVibe-coding a kid-friendly AI fortune teller for your Halloween festivities | Marco Casalaina
CHAPTERS
- 0:00 – 1:01
Haunted recording leads to a spontaneous Halloween vibe-code episode
Claire explains the regular episode is derailed by a “haunted” technical snafu, so they pivot to a quick, parent-friendly Halloween AI build. The goal: do something fun and practical with LLMs on the fly.
- •Podcast recording fails, prompting an improvised Halloween edition
- •Theme: using LLMs to create “spooky stuff” for kids
- •Invitation for viewers to share their own Halloween vibe-coding ideas
- 1:01 – 1:44
Marco’s annual costume + neighborhood ‘block fortune teller’ tradition
Marco describes his yearly Captain Picard costume and his role at a Piedmont, CA block party where neighbors go all-out with decorations and effects. His contribution is a fortune-teller table with a glowing crystal ball for hundreds of trick-or-treaters.
- •Marco dresses as Captain Picard every year; leans into the Star Trek brand
- •Neighborhood blocks off the street; neighbors create elaborate Halloween setups
- •Marco plays the fortune teller with a simple glowing crystal ball prop
- 1:44 – 2:46
How the fortune-telling worked before: pre-generated fortunes on a phone
He explains his previous low-tech workflow: generate a list of fortunes with GPT (earlier GPT-3, then GPT-4), store them in a phone note, and pick one at random during the event. He emphasizes keeping fortunes kid-friendly and appropriate.
- •Fortunes were pre-created using GPT and saved in a phone note
- •Marco would “randomly” pick a fortune while staying in character
- •Focus on kid-friendly, fun, safe fortunes for young children
- 2:46 – 3:29
Choosing a tool and defining the simplest app: GitHub Spark
Instead of just talking about it, Marco decides to build the app live. He chooses GitHub Spark (over alternatives like Lovable, Bolt, v0) and prompts for a simple mobile app that generates a fortune when a button is tapped.
- •Decision to build live rather than describe the idea abstractly
- •Tool choice: GitHub Spark, despite other vibe-coding options
- •Initial prompt: mobile app + button tap generates a fortune-teller style fortune
- 3:29 – 4:32
Why Spark: prior success building a chemistry flashcards app
Marco shares a recent example where Spark quickly produced a useful flashcards interface for his daughter’s honors chemistry study (polyatomic ions). He frames the fortune teller similarly—as a kind of “flashcard” generator experience.
- •Prior Spark project: polyatomic ions flashcards for studying
- •Spark generated a phone-friendly interface with minimal input
- •Fortunes are analogous to flashcards: one-at-a-time reveals
- 4:32 – 5:07
Watching Spark work: auto-PRD, HTML/CSS generation, and quick UI
They observe Spark generating a PRD and then building the front-end (HTML/CSS) rapidly. Claire notes the design looks unusually cute compared to many vibe-coding outputs, and the first version is ready quickly.
- •Spark produces a PRD automatically before implementation
- •Rapid generation of page structure and styling
- •Claire reacts positively to the UI quality and speed
- 5:07 – 6:40
For serious builds: Spec Kit for scoping and asking the hard questions
Marco contrasts the quick Halloween build with his “real project” workflow, where he uses Spec Kit to create robust feature specs. He describes how Spec Kit asks clarifying questions (edge cases, constraints) to strengthen the spec and can integrate with multiple coding assistants.
- •Spec Kit is Marco’s default for serious, complex features
- •It prompts clarifying questions (e.g., feedback length, edge cases)
- •Works with GitHub Copilot and other tools like Claude Code and Cursor
- 6:40 – 8:06
First fortune output: poetic, vague—then iterating to one-sentence kid-friendly
They test the initial app and get a very abstract, cosmic-style fortune. Claire likes the ambiguity but flags that Marco’s use case needs kid-friendliness, so Marco updates the prompt to enforce one-sentence, kid-friendly fortunes.
- •Initial fortune is poetic and non-specific
- •Prompt iteration: constrain to one sentence + kid-friendly language
- •Demonstrates quick refinement via natural-language prompting
- 8:06 – 8:29
Further refinement: make fortunes concrete, simpler words, and more humorous
Even after making it kid-friendly, they find the language still a bit abstract and wordy for very young kids. Marco adds constraints for concreteness, humor, and smaller words, aiming for toddlers and early elementary audiences.
- •Add constraints: more concrete scenarios, more fun, more humor
- •Simplify vocabulary for ages as young as 2–3
- •Real-world requirement: fortunes should be instantly understandable and memorable
- 8:29 – 9:23
Real-world ‘fortune teller’ dynamics: parents, kids, and unexpected impact
Marco explains that with very young kids he sometimes gives ultra-simple fortunes without any app. He shares how a fortune like “you’ll make a new friend today” stuck with one child for an entire day—highlighting how influential these playful predictions can be.
- •Sometimes the best fortune is simple (e.g., “try a new food today”)
- •Parents react strongly—sometimes gratefully, sometimes surprised
- •A single fortune can become a meaningful story a child carries forward
- 9:23 – 10:21
Testing the new outputs: pizza-rock fortune, repetition, and ‘integration testing’
They try the improved generator and get a very concrete, funny fortune about a shiny pizza-slice rock. Repeated “rock” themes appear, prompting Marco to joke about needing integration tests—then they get a different scenario involving a squirrel stealing a snack.
- •Concrete fortune example: finding a pizza-like rock that makes people giggle
- •Noticing repetitive patterns in generations (too many rocks)
- •Humorous reminder: you still need to test and tune AI outputs
- 10:21 – 11:46
Wrap-up: deploying it at a block party with voice + future Halloween tradition
Claire plans to use the idea at her own block party and suggests adding a spooky voice interface. They close by framing this as a potential annual Halloween episode tradition and provide the usual like/subscribe/podcast plugs.
- •Claire intends to reuse the app and add a spooky voice layer
- •They plan to bring Marco back for a fuller episode later
- •Call to action: comments, likes, subscribe, and where to find the show