How I AI: Vibe-Coding a Kid-Friendly AI Fortune Teller App for Halloween with GitHub Spark
In a special Halloween episode, I sit down with Marco Casalaina of Microsoft to live-code a mobile fortune teller app for trick-or-treaters using GitHub Spark, and we explore how to refine prompts for perfectly kid-friendly results.
Claire Vo

Welcome to a very special, slightly spooky, and completely unplanned Halloween edition of How I AI! Sometimes, technology gets a little haunted. In our case, an expired corporate credit card prevented our scheduled recording. But you can't stop the spirit of AI creativity! I was really looking forward to my chat with Marco Casalaina, the VP of Products for Core AI at Microsoft. Instead of rescheduling, he generously offered to show us a fun and timely AI workflow he was building for his own Halloween block party.
Marco is a product leader at the forefront of AI, but he also has a deep engineering background and still codes almost every day. This episode is a great look at that builder's mindset in action. He has a wonderful Halloween tradition: dressing up as the neighborhood's official fortune teller for the hundreds of kids who come by for trick-or-treating. In the past, this meant pre-generating fortunes with GPT and scrolling through them on his phone. This year, he decided to give his setup an upgrade.
In this episode, Marco shows us, step-by-step, how he uses a technique called 'vibe coding' to build a functional, stylized mobile app right on the spot. We get to watch him go from a simple idea to a fully working application in minutes, all driven by a series of conversational prompts. It’s a great showcase of how generative AI can be used for quick prototyping and creating delightful, practical tools for everyday fun. Here's a look at how he did it.
Workflow: Building a Halloween Fortune Teller App with GitHub Spark
The main event of our spooky special was watching Marco build a mobile fortune teller app live on the show. His goal was to replace his old system—a static list of fortunes—with a dynamic app that could generate a new, unique, and kid-friendly fortune with the tap of a button. He chose GitHub Spark for this because it can quickly put together a web-based application from a simple text prompt, which is ideal for this kind of fast, creative project.
Step 1: The Initial Prompt
Everything started with a clear, concise prompt. Marco didn't need to overcomplicate it; he just stated his goal. He opened up GitHub Spark and typed in this instruction:
make a mobile app, which when I click a button generates a new fortune. In the context of a fortune teller.
That’s all it took. He defined the basic parts (a mobile app, a button), the action (generate a new fortune), and the theme ('fortune teller'). Spark immediately started generating a Product Requirements Document (PRD), HTML, CSS, and JavaScript to build the application.
Step 2: First Generation and Review
Within a minute, Spark produced the first version of the app. I was immediately impressed—the design was really lovely, with a cosmic, mystical background and a simple button that said, "Tap to reveal your fortune." A lot of AI-generated UIs can be bland, but this one had a great feel right away.

We clicked the button, and here was the first fortune it generated:
"In the tapestry of the cosmos, the stars weave a path illuminated by your dreams, trust in their guiding light."
It was poetic, but we both agreed it was a bit too abstract and wordy for the 2- and 3-year-olds who would be reading it. I pointed out that it's a perfect fortune because it's completely ambiguous and means nothing, but we needed something more concrete and fun.
Step 3: Iterating with Refinement Prompts
This is where conversational AI development really gets interesting. Instead of editing code, Marco simply typed a new request into the chat interface. He gave Spark a new set of instructions to adjust the output:
make each fortune only one sentence and make it kid friendly
Spark regenerated the app's logic based on this feedback. The new result was definitely better:
"when you sprinkle kindness like fairy dust, the whole world transforms into a playground of magical adventures and shimmering smiles."
We were getting closer! It was kid-friendly, but still a little abstract and used some big words. We decided to iterate one more time, getting even more specific with our feedback:
Make the fortunes a little more concrete. And maybe a little more humorous. Try not to use such big words.Step 4: The Final Kid-Friendly Result
This last prompt did the trick. The AI understood that we needed simple language, humor, and tangible ideas. The results were perfect for young trick-or-treaters:
"This week you will find a shiny rock that looks like a slice of pizza and makes everyone giggle"
And another one:
"Today a fluffy squirrel will steal your snack, but then share a secret about the best hiding spots in the park."

Success! In just a few minutes, using a handful of conversational prompts, Marco had a working, stylized mobile app tailored perfectly to his needs. It really shows how you can use natural language to build and refine a simple application without writing a single line of code.
Pro-Tip: Scoping Complex Projects with Spec Kit
While vibe coding with GitHub Spark is amazing for small, fun projects, Marco also shared what he uses for more serious, complex engineering tasks at his day job. He gave us a quick look at SpecKit, a tool designed to help developers write thorough, robust feature specifications.
When Marco is working on a major feature, he uses Spec Kit to outline the requirements. Here, the AI isn't doing all the work; it acts as an intelligent partner. As you write the spec, it analyzes your requirements and asks clarifying questions to help you spot edge cases, ambiguities, and potential problems. For example, if you're writing a spec for user feedback, it might ask:
- "How long should the feedback be?"
- "What if the user gives you a ton of feedback? Then what do I do?"

This process forces you to think through the problem more deeply, which leads to a much stronger, more complete specification before development even begins. Marco uses it with tools like GitHub Copilot, but it also works with others like Cursor and Claude Code. It’s a great way to use AI to refine and improve human-led engineering processes, not just to generate code from scratch.
A Spooky Success
What started as a haunted recording session turned into one of my favorite impromptu episodes. Marco's fortune teller app is the perfect example of how accessible and useful AI development tools have become. You don't need to be a professional developer to bring a fun idea to life anymore. With a clear vision and a willingness to iterate through conversation, you can build something delightful and practical in minutes.
I was so inspired that I'm planning to steal Marco's idea for my own block party, maybe even hooking it up to a spooky voice generator! This Halloween, I hope you're inspired to try a little vibe coding of your own. What fun, simple app could you build to make a holiday or event a little more magical?
Thank you again to Marco Casalaina for jumping in and sharing such a great workflow with us. We'll definitely have him back for a full episode soon!


