AI-ftershow is an interactive, single-page web application that demonstrates practical AI workflows using Google's Gemini ecosystem. Built as a tactical guide for AI implementation, it showcases "Vibe Coding" techniques—fast, conversational AI development for rapid prototyping and creative exploration.
This repository serves as both a functional demonstration and educational resource for:
- AI practitioners looking to implement structured AI workflows
- Developers interested in building AI-powered React applications
- Product managers exploring practical AI integration patterns
- Anyone wanting to master Vibe Coding with Google's AI tools
✅ Interactive Prompt Improver - Multi-modal AI prompt refinement (text/image/video) using Gemini 2.5 Flash API
✅ Hero Gem Wizard - 4-step workflow for creating custom AI experts (Gems) with research automation
✅ NotebookLM Integration Guide - Document-grounded AI workflows with multi-stakeholder perspectives
✅ Vibe Coding Demonstration - Real-world example of how this site was built
✅ Dual Language Support - Seamless English/Dutch localization via i18next
✅ Cyberpunk Design System - Custom Tailwind theme with neon aesthetics
✅ Production-Ready Architecture - TypeScript, React 19, and modern tooling
- Status: ✅ Live and Functional
- Last Updated: November 6, 2025
- Deployment: Firebase Hosting with Cloud Functions
- Environment: Production with server-side API key management
- Live URL: https://rutger-dml.web.app
- Security: API key secured in Firebase Secrets Manager (not exposed to client)
- Feedback: Temporary user feedback collection via Firestore
- Framework: React 19.1.1 with TypeScript (strict mode)
- Build Tool: Vite 7.1.12
- Styling: Tailwind CSS v4.1.16 (custom cyberpunk theme)
- Internationalization: i18next with react-i18next (EN/NL support)
- AI Integration: Google Gemini 2.5 Flash API via Cloud Functions
- Database: Firebase Firestore (feedback collection)
- Linting: ESLint 9.36.0 with TypeScript and React plugins
- Node.js 20.x or later
- npm (comes with Node.js)
- A Google Gemini API key (for AI features)
-
Clone the repository:
git clone https://github.com/rutgertuit/DML.git cd DML -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the project root:# Copy the example file cp .env.example .env # Add your Gemini API key VITE_GEMINI_API_KEY=your_api_key_here
Get your API key from Google AI Studio
-
Start development server:
npm run dev
Visit
http://localhost:5173/DML/to view the application -
Build for production:
npm run build
-
Lint code:
npm run lint
-
Preview production build:
npm run preview
-
Deploy to Firebase:
firebase deploy
Interactive AI-powered tool that refines prompts through guided dialogue using Gemini 2.5 Flash API. Features:
- Multi-modal support (text, image, and video prompts)
- Real-time chat interface with conversational refinement
- Automatic prompt extraction and formatting
- One-click testing across multiple LLM platforms
- Modality-specific analysis criteria
Four-step workflow for creating custom AI experts (Gems):
- Select Blueprint - Choose from 6 pre-configured expert types
- Design with AI - Conversational assistant helps define your Gem's mission and documents
- Generate Research Prompts - Automated creation of research document prompts
- Build Your Gem - Complete system instruction with upload guide
Comprehensive guide demonstrating document-grounded AI workflows:
- Multi-stakeholder output generation (CFO, CMO, CEO, CTO perspectives)
- Pain point identification and solutions
- 7 different output format examples from a single data source
Focused section explaining fast, conversational AI development:
- What makes Vibe Coding great (Speed, Flexibility, Creativity)
- Integrated tools showcase (Gemini, AI Studio, Google Stitch, Gemini CLI, GitHub)
- Live demo video showcasing real-world example
Behind-the-scenes 6-step workflow showing how this site was built using Vibe Coding:
- Blueprint (NotebookLM for research)
- Structure (AI Studio for scaffolding)
- Development (Gemini + Stitch for coding)
- Integration (Gemini CLI for testing)
- Deployment (Firebase Hosting + Cloud Functions)
- Polishing (Custom Gem for Dutch communication)
User feedback collection system for testing phase:
- 7-question structured feedback form
- Firestore database integration
- Email collection (optional)
- Export guide for data analysis
Curated collection of 6 Google AI tools with direct links:
- Gemini in Google Workspace
- NotebookLM
- Google Stitch
- Google Vids
- Gemini Enterprise
- Gemini CLI
DML/
├── functions/ # Firebase Cloud Functions
│ ├── src/
│ │ └── index.ts # API proxy for Gemini
│ └── package.json # Functions dependencies
├── public/ # Static assets
│ └── locales/ # Translation files
│ ├── en/translation.json # English translations
│ └── nl/translation.json # Dutch translations
├── src/
│ ├── components/ # React components
│ │ ├── HeroGemWizard/# 4-step wizard components
│ │ │ ├── HeroGemWizard.tsx # Main wizard container
│ │ │ ├── BlueprintSelector.tsx # Step 1: Choose expert type
│ │ │ ├── GemDesignAssistant.tsx # Step 2: AI-assisted design
│ │ │ ├── SourceMaterialGenerator.tsx # Step 3: Research prompts
│ │ │ ├── FinalGemInstruction.tsx # Step 4: Final output
│ │ │ └── CopyButton.tsx # Reusable copy utility
│ │ ├── Header.tsx # Navigation with language switcher
│ │ ├── HeroSection.tsx# Landing section
│ │ ├── PresentationContext.tsx# Introduction section
│ │ ├── TheVibe.tsx # "The Vibe" explanation
│ │ ├── BeforeAfter.tsx# Tabbed prompt examples
│ │ ├── PromptImprover.tsx# Interactive AI chat tool
│ │ ├── NotebookLM.tsx# Document-grounded AI guide
│ │ ├── HowVibeCodingWorks.tsx# Vibe Coding section
│ │ ├── Toolkit.tsx # Google AI tools showcase
│ │ ├── FeedbackForm.tsx# User feedback collection
│ │ ├── CookieConsent.tsx# GDPR compliance
│ │ ├── ChatBubble.tsx# Chat message component
│ │ ├── LoadingIndicator.tsx# Loading state component
│ │ └── Footer.tsx # Contact and disclaimer
│ ├── services/ # API integration layer
│ │ └── aiStudioService.ts# Gemini API client
│ ├── firebase.ts # Firebase initialization
│ ├── App.tsx # Main application with section layout
│ ├── i18n.ts # Internationalization config
│ ├── main.tsx # React entry point
│ └── index.css # Global styles + Tailwind
├── dist/ # Built application (Firebase Hosting)
├── .env.example # Environment variables template
├── firebase.json # Firebase configuration
├── firestore.rules # Firestore security rules
├── firestore.indexes.json# Firestore indexes
├── index.html # HTML entry point
├── package.json # Dependencies and scripts
├── tailwind.config.js # Custom cyberpunk theme
├── vite.config.ts # Build configuration
├── README.md # This file
├── GEMINI.md # AI assistant guidelines
├── FIREBASE_SETUP.md # Firebase deployment guide
├── FEEDBACK_GUIDE.md # Feedback data export guide
└── SECURITY.md # Security documentation
When contributing to this project:
- Follow TypeScript strict mode conventions (no
anytypes) - Use Tailwind CSS utility classes with the cyberpunk theme
- Maintain i18n support by wrapping user-facing text in
t()calls - Centralize API calls in
src/services/ - Follow PascalCase for components, camelCase for hooks
Welcome! To provide effective help, you MUST follow these rules:
-
Consult Context First: Before generating any code, you MUST read the
Gemini.MDfile in this repository. It contains the definitive project stack, architecture, deployment model, and coding standards. -
Adhere to Standards: All code you generate must follow the patterns defined in
Gemini.MD, including:- TypeScript strict mode with explicit typing
- Component structure (one
.tsxfile per section) - Tailwind CSS cyberpunk theme (colors:
#00FFFFcyan,#D900FFpurple) - i18n integration via react-i18next
- API calls centralized in
src/services/ - PascalCase components, camelCase hooks
- Semantic HTML with accessibility considerations
-
Verify Before Suggesting: Cross-reference
package.jsonfor exact dependency versions andtsconfig.jsonfor compiler settings before making recommendations. -
Preserve the User Experience: This is a working production site. Any changes must maintain functionality, responsive design, and the cyberpunk aesthetic.
-
Test Your Suggestions: Ensure any code you generate is TypeScript-safe, ESLint-compliant, and follows React 19 best practices.
Key Files to Reference:
GEMINI.md- Complete project context and guidelinespackage.json- Dependencies and scriptstsconfig.json- TypeScript configurationtailwind.config.js- Custom theme configurationsrc/services/aiStudioService.ts- API integration pattern
[Specify license if applicable]
For questions or issues, please open an issue in the GitHub repository.