The Immersive Lens Vibe Coding Challenge
Three coding challenges. Three difficulty levels. Infinite possibilities.
The Vibe Coding Mindset
This challenge is about exploration, iteration, and making something uniquely yours. Here's what to remember:
Iteration is the Point
If things don't work out at first, that's fine! Refine. Tell the AI what didn't work or why the app isn't what you envisioned. Don't give up. Ideate!
Make It YOUR Vision
Even if you get your app right the first time, change things. Change the colors. The font. The behavior. Add features. The intent is to make this YOUR VISION.
You Can't AI Wrong
There's no single "correct" solution. Experiment. Break things. Learn. The process is more valuable than perfection.
The Three Categories
Each category has example challenges, but feel free to explore your own ideas! The examples are inspiration, not requirements.
Category 1: Interactive
Make it respond
Build something that responds to user input in real-time. This is your warmup - focus on DOM manipulation, event handling, and creating an engaging user experience with immediate visual feedback.
Example Challenges:
- Magic Decision Maker User types a question, clicks a button, and gets a random answer with animation. Add sound effects or confetti for extra flair!
- Mood Ring Color Picker Use buttons or sliders to mix RGB colors. Show live preview and hex code values as the user adjusts.
- Dad Joke Generator Button that displays random dad jokes from an array. Add a "groan meter" that tracks how many jokes have been told.
Category 2: File Handling
Upload, transform, download
Work with the FileReader API and Canvas to accept file uploads, process them, and create downloadable outputs. This introduces data transformation and file manipulation.
Example Challenges:
- Quick Meme Generator Upload an image, add top/bottom text using canvas, and download the result. Perfect for sharing!
- Text File Analyzer Upload a .txt file and show word count, character count, and most common words. Download results as a report.
- Certificate Maker Enter a name and achievement, generate a printable certificate with styling, and download as an image.
Category 3: Webcam
Lights, camera, code
Access the user's webcam using the MediaDevices API to create interactive camera-based applications. This is the boss level - working with live video streams and real-time processing.
Example Challenges:
- Podcast Selfie Booth Access webcam, add a countdown timer (3-2-1), capture a photo, and download the selfie. Perfect podcast memento!
- ASCII Art Webcam Convert live webcam video to ASCII characters in real-time. Retro-cool aesthetic meets modern web APIs.
- Color Detector Show webcam feed and let users click anywhere to extract that color's RGB/hex value. Display a swatch with the value.
The Prompt Template
Copy this template and paste it into your AI coding partner along with your challenge description. These constraints ensure your code is accessible, secure, and easy to understand.
* Everything in one single HTML file - HTML, CSS, and JavaScript together * No build tools - no React, Vue, or anything requiring npm * CDN libraries are fine if they help * Use vanilla JavaScript only * Fully responsive - works on phone, tablet, and desktop * Fully accessible - semantic HTML, ARIA labels, keyboard navigation * No data sent to any server - everything runs in the browser only * If the app has teacher-editable content (words, questions, names, data), store it in a clearly labeled array or object at the very top of the JavaScript - not scattered through the code - so it is easy to find and update without touching anything else
Why: Makes your app incredibly portable - you can share it, host it anywhere, or save it offline. No complex folder structures or missing dependencies. Just one file that works everywhere.
Why: Build tools add complexity and can break. By avoiding frameworks like React or Vue that need npm, your code stays simple, debuggable, and works immediately when you open the file. Anyone can understand and modify it.
Why: If you need a library (like Font Awesome for icons or Chart.js for graphs), you can include it from a CDN (Content Delivery Network) using a simple <script> or <link> tag. This keeps setup simple while still giving you powerful tools.
Why: Pure JavaScript (no jQuery, no frameworks) means your code is faster, lighter, and works in any browser. It's also easier to learn from and debug. Modern vanilla JS is surprisingly powerful and clean.
Why: People use phones, tablets, and desktops. Your app should work beautifully on all of them. Use CSS techniques like flexbox, grid, and media queries to ensure your layout adapts to any screen size.
Why: Everyone should be able to use your app, including people using screen readers or keyboard navigation. Use semantic HTML (<button> not <div>), add ARIA labels, and make sure everything works with Tab and Enter keys.
Why: Privacy and security. Everything runs locally in the user's browser - no data leaves their computer. This means no server costs, no privacy concerns, and no network dependencies. Your app works offline!
Why: If someone wants to customize your app (change quiz questions, update names, modify data), they should be able to find and edit that content easily without digging through code. Put all customizable data in clearly labeled variables at the start of your JavaScript section.
Getting Started
Choose your AI coding partner and follow these steps to start building:
Using Claude
- Go to claude.ai
- Start a new conversation
- Paste the prompt template above
- Add your challenge description (e.g., "Create a Magic Decision Maker that...")
- Claude will create your app in a single HTML file
- Download or copy the code and open it in your browser
Sharing: You can share your Claude conversation directly using the share button, or if you're using Claude Code, you can publish the artifact to share your creation.
Using Gemini
- Go to gemini.google.com
- Start a new conversation
- Important: Activate Canvas mode (look for the Canvas option in the interface)
- Paste the prompt template above
- Add your challenge description
- Gemini will create your app in Canvas
- Download the HTML file and open it in your browser
Sharing: Share your Gemini conversation (with Canvas output visible) using the share button in the interface.
Using ChatGPT
- Go to chat.openai.com
- Start a new conversation
- Recommended: Use Canvas mode if available (click the Canvas button)
- Paste the prompt template above
- Add your challenge description
- ChatGPT will generate your app
- Copy the code and save it as an HTML file, or download from Canvas
Sharing: Share your conversation via the Canvas link or take screenshots of your creation to share on social media.
Using Any AI That Can Code
- Open your preferred AI coding assistant
- Paste the prompt template above
- Add your challenge description clearly
- Request that everything be in a single HTML file
- Review the generated code
- Save as .html and open in your browser
- Iterate and refine as needed
Sharing: Share screenshots of your app or the conversation, or host the HTML file on a platform like GitHub Pages or CodePen.