Journal Entry #27 - Strategic Pivot to Mobile-First Development with Expo
Date: May 28, 2025
Table of contents
Major Architecture Pivot
After extensive analysis of our development challenges and target market, we’ve made a strategic decision to pivot from a web-first approach to a mobile-first cross-platform solution using Expo and React Native. This represents a significant shift in our technical stack and development approach.
Key Technical Decisions
New Technology Stack
- Frontend: Expo + React Native with TypeScript for true cross-platform deployment (iOS/Android/Web from single codebase)
- Backend: Maintaining Rust with Axum framework for WebSocket handling (proven reliable)
- Database & Auth: Supabase for user authentication and data persistence
- Development Environment: WSL2 + Ubuntu on Windows with VS Code
Core Architecture Principles
- Single WebSocket connection per friendship replacing ephemeral game rooms
- Message routing by type (
chat,game_invite,game_move,game_end,presence) - Friend-based persistent connections enabling seamless chat-to-game transitions
- Cross-platform deployment maximizing reach with minimal development overhead
Development Environment Strategy
The choice to use WSL2 for Expo development addresses several critical pain points we’ve encountered:
- Networking Reliability: WSL2 resolves Windows-specific networking issues with Expo Go testing
- Tool Compatibility: Better integration with Node.js and npm ecosystem
- Development Experience: Seamless VS Code integration with WSL extension
- Deployment Consistency: Closer alignment with production Linux environments
User Experience Flow
The simplified user journey reflects our focus on ease of use:
- Authentication: Supabase handles login/registration across all platforms
- Connection: Player 1 generates shareable link → Player 2 accepts → instant friendship
- Interaction: Real-time chat and game invitations over persistent WebSocket
- Gaming: Turn-based games (starting with tic-tac-toe) with seamless transitions
Strategic Benefits
This pivot addresses several key challenges from our previous approach:
- Reduced Complexity: Single codebase for multiple platforms vs. separate web/mobile apps
- Faster Iteration: Expo’s hot reload and over-the-air updates enable rapid development
- Market Reach: Native mobile experience while maintaining web accessibility
- Development Efficiency: Leveraging existing React/TypeScript skills with mobile-specific benefits
Implementation Roadmap
Our 6-9 week development timeline follows a structured approach:
- Week 1: WSL2 environment setup and project initialization
- Weeks 2-3: Backend WebSocket infrastructure and Supabase integration
- Week 4: Mobile app foundation with authentication and navigation
- Weeks 5-7: Core features (friend connections, chat, gaming)
- Week 8: Mobile-specific polish (notifications, native features)
- Week 9: Testing, optimization, and deployment preparation
Risk Mitigation
Key risks identified and addressed:
- Learning Curve: Leveraging existing React knowledge while focusing on React Native specifics
- Device Testing: Using Expo Go for rapid testing across iOS/Android devices
- Network Complexity: WSL2 configuration documentation for reliable development environment
- Deployment Challenges: EAS (Expo Application Services) for streamlined app store deployment
Next Steps
Immediate priorities focus on environment setup and validation:
- Configure WSL2 development environment following our documented setup guide
- Initialize Expo project with TypeScript and required dependencies
- Validate Supabase integration and authentication flow
- Establish WebSocket communication between mobile app and Rust backend
This pivot represents a more focused, pragmatic approach that should accelerate our time-to-market while providing a superior user experience on mobile devices where our target audience primarily operates.
Hours Logged: 4.5
Tags: #architecture-pivot #expo #react-native #cross-platform #mobile-first #wsl2 #strategic-planning