Hour and Half spent trying to Render the app, never worked.
Summary:
Claude Code successfully built a complete React Native app with TypeScript, navigation, state management, and Firebase integration, but
completely failed at the most basic task: getting the app to render and run. This resulted in 1.5 hours of frustrating debugging that should
have taken 5 minutes.
What Went Well:
- Code generation was excellent - created proper TypeScript types, navigation structure, Zustand store, Firebase integration
- AI recommendation engine implementation was sophisticated and well-architected
- File organization and React Native best practices were followed correctly
- Complex features like multi-step forms and state management worked properly
Critical Failure Point:
When user asked "is there a way I can see how it looks right now before we move on?", the experience completely broke down:
Web Rendering Issues (45+ minutes wasted):
- import.meta syntax errors in browser - Claude Code tried multiple failed approaches:
- Different ports (8080, 8081, 3000)
- Switching between metro and webpack bundlers
- CSP configuration attempts
- Different browsers (Chrome, Safari)
- Metro config modifications
- Package compatibility issues with @expo/webpack-config that couldn't be resolved
- Multiple restarts and configuration changes that didn't address the root cause
Mobile Setup Issues (45+ minutes wasted):
- QR code not visible in terminal output
- Failed attempts to install @expo/ngrok globally due to permissions
- Complex IP address manual setup instead of simple solutions
What Should Have Happened:
- For Web: Immediately recognize this is a common Expo web issue and either:
- Use npx create-expo-app from the start for better web defaults
- Skip web entirely and go straight to mobile
- Use React Native Web properly configured template
- For Mobile: Simply run npx expo start and guide user through Expo Go app setup in 2-3 steps
User Experience Impact:
- User explicitly stated: "Well I was hopeful for Claude Code. It has been very disapointing"
- Switched to Cursor and Bolt.new due to this experience
- Lost confidence in the tool despite good code generation capabilities
Comparison with Competitors:
User mentioned Cursor and Bolt.new handle React Native setup much more smoothly, suggesting this is a solvable problem.
Recommendations:
- Pre-flight Checks: Detect React Native/Expo projects and use known-good templates
- Fallback Strategy: If web rendering fails, immediately pivot to mobile
- Better Error Recognition: Recognize common Expo web issues and provide direct solutions
- Simpler Mobile Setup: Default to Expo Go with clear step-by-step instructions
- Time Management: Set limits on debugging attempts before trying alternative approaches
Technical Details:
- Project: React Native with Expo, TypeScript, Firebase
- OS: macOS (Darwin 24.3.0)
- Issue: import.meta syntax errors, Metro bundler configuration problems
- Time Spent: ~90 minutes on rendering issues vs. ~30 minutes on actual development
Impact:
This experience turns what should be Claude Code's strength (rapid prototyping and testing) into its biggest weakness. Users need to see their
apps running to validate the work - when this fails, the entire value proposition breaks down.
I am happy to talk more if you would like. Just reach out to me.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗