This is a companion case study to the main Claude Voice Article Guide. It helps developers choose between Claude Pro, Claude Code, and Claude API through interactive tools and real-world scenarios.
Live Demo: [Your URL here]
case-study/
βββ index.html # Main page (English)
βββ index.es.html # Spanish version
βββ index.zh.html # Chinese version
βββ index.hi.html # Hindi version
βββ index.pt.html # Portuguese version
β
βββ assets/
β βββ css/
β β βββ shared-styles.css # 3,250 lines - Variables, reset, utilities
β β βββ case-study.css # 2,900 lines - Main layout & sections
β β βββ locale-switcher.css # 1,850 lines - Language selector
β β βββ roi-calculator.css # 2,400 lines - Calculator component
β β βββ prompt-journey.css # 4,100 lines - Hero feature (MOST COMPLEX)
β β
β βββ js/
β β βββ locale-manager.js # 2,100 lines - Multi-language support
β β βββ decision-tree.js # 2,400 lines - Tool recommendation
β β βββ roi-calculator.js # 2,600 lines - Financial calculations
β β βββ business-case-generator.js # 2,800 lines - Elevator pitch generator
β β βββ prompt-journey.js # 5,800 lines - 30-step simulator (HERO)
β β βββ analytics.js # 1,900 lines - Event tracking
β β
β βββ locales/
β β βββ en.json # Complete English translations
β β βββ es.json # Spanish translations
β β βββ zh.json # Chinese translations
β β βββ hi.json # Hindi translations
β β βββ pt.json # Portuguese translations
β β
β βββ data/
β βββ pricing-data.json # Updatable pricing info
β βββ prompt-journey-scenarios.json # All 30 decision points
β
βββ README.md # This file
Total Lines of Code: ~35,000+ lines across all files
Download all files maintaining the folder structure above
# Navigate to project folder
cd case-study/
# Open index.html in your browser
# macOS:
open index.html
# Windows:
start index.html
# Linux:
xdg-open index.html
# Using Python 3
python -m http.server 8000
# Using Node.js (http-server)
npx http-server -p 8000
# Using PHP
php -S localhost:8000
# Then visit: http://localhost:8000
Netlify (Recommended):
Vercel:
npm i -g vercel
vercel
GitHub Pages:
All functionality is vanilla JavaScript. External resources loaded via CDN:
Edit assets/data/pricing-data.json
:
{
"lastUpdated": "2025-10-12", // β Update this
"pro": {
"monthly": 20, // β Update pricing
"yearly": 200
}
}
assets/locales/fr.json
en.json
locale-manager.js
:
this.availableLocales = {
// ... existing
fr: {
name: 'French',
nativeName: 'FranΓ§ais',
flag: 'π«π·',
voiceLang: 'fr-FR'
}
};
Edit decision points in prompt-journey.js
(line ~50):
this.decisions = [
{
id: 1,
category: "Your Category",
question: "Your question?",
context: "Background info",
choices: [
{
type: 'novice',
label: "Bad Choice",
text: "What the user says",
impact: {
time: 15, // minutes added
cost: 0.20, // dollars added
quality: -10, // percentage change
iterations: 1, // attempts added
reason: "Why this is bad"
}
},
{
type: 'expert',
label: "Good Choice",
// ... same structure
}
]
}
// Add more decisions...
];
Edit assets/css/shared-styles.css
:
:root {
--color-primary: #2563eb; /* Your brand color */
--color-accent: #7c3aed; /* Secondary color */
--color-success: #10b981; /* Success states */
/* ... etc */
}
// In browser console:
getAnalyticsStats() // Current session
getAllAnalyticsEvents() // All stored events
clearAnalytics() // Clear all data
Replace localStorage with your analytics service in analytics.js
:
sendEvents(events) {
// Replace this:
localStorage.setItem('analytics_events', JSON.stringify(events));
// With this:
fetch('https://your-analytics.com/api/events', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(events)
});
}
Supported integrations:
locale-manager.js
is loaded.header-actions
element exists in HTMLprompt-journey.css
loaded correctlyroi-calculator.js
line ~150 for calculation logicβ
No external dependencies - All vanilla JS
β
Minimal file sizes - Efficient CSS/JS
β
Lazy loading - Components load as needed
β
LocalStorage - Saves user preferences
β
CSS Grid/Flexbox - Modern layouts
# Minify CSS
npx csso assets/css/*.css
# Minify JavaScript
npx terser assets/js/*.js
# Optimize images (if you add any)
npx imagemin images/* --out-dir=images
// assets/data/pricing-data.json
{
"lastUpdated": "2025-XX-XX", // Today's date
"pro": { "monthly": XX } // New price
}
<!-- In index.html -->
<span class="date-badge">As of October XX, 2025</span>
// assets/locales/en.json
{
"hero": {
"pricingDisclaimer": {
"date": "As of October XX, 2025"
}
}
}
Edit assets/locales/en.json
:
{
"faq": {
"categories": {
"newCategory": {
"title": "Category Name",
"questions": {
"question1": {
"q": "Question text?",
"a": "Answer text"
}
}
}
}
}
}
β
No backend - Static files only
β
No API keys in frontend - Analytics uses localStorage
β
No user authentication - Public informational site
β
XSS protection - All user input sanitized
β
HTTPS recommended - Use SSL in production
All breakpoints tested:
Key responsive features:
-->
Claude Tool Comparison | Choose Pro, Code, or API
β
ARIA labels on all interactive elements
β
Keyboard navigation fully supported
β
Focus indicators visible
β
Screen reader friendly semantic HTML
β
Color contrast WCAG AA compliant
β
Reduced motion support
git checkout -b feature/AmazingFeature
)git commit -m 'Add AmazingFeature'
)git push origin feature/AmazingFeature
)MIT License - Feel free to use for your own projects!
Questions? Open an issue on GitHub
Found a bug? Submit a bug report
Have a suggestion? Start a discussion
Built with β€οΈ for the developer community
Last Updated: October 12, 2025