Replace Server-Sent Events streaming implementation with straightforward
JSON request/response pattern to simplify debugging and reduce complexity.
Changes:
- server.js: Convert /api/chat/stream to /api/chat with JSON response
- src/lib/api.ts: Remove SSE parsing logic, add ChatResponse interface
- src/hooks/useChat.ts: Handle JSON response instead of stream chunks
This change makes the request flow easier to debug and troubleshoot
while maintaining the same conversation functionality.
Remove the environment variable fallback for API_BASE_URL to ensure
all API requests are routed through the proxy server. This provides
consistent authentication and security handling in all environments.
Replace Python http.server with Express to handle:
- Large IAP JWT headers that caused 500 errors
- API request proxying with GCP identity tokens
- Static React build serving with SPA fallback
Update api.ts to use relative URLs in production for proxy routing.
Replace Tyndale AI branding with Woolnoth identity including:
- New brand colors: Deep Navy (#24293e), Soft Light Grey (#f4f4f6),
Cool Slate Blue (#5c6f91), and Burnt Coral Red (#e94f37)
- Updated typography from Montserrat/Outfit to Inter/Plus Jakarta Sans
- Add reusable Logo component for consistent branding
- Update favicon and page title
- Apply new color scheme across all components (chat, landing, pages)
- Update CSS variables and Tailwind config for brand consistency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implement a new biography page accessible via /tyndale route that provides
visitors with information about William Tyndale and his historic contribution
to Bible translation. The page features a card-based layout with a brief
summary of his life and work.
Changes:
- Create TyndalePage component with responsive card design
- Add /tyndale route to application routing
- Add "About Tyndale" link to landing page navigation
Initialize complete frontend project structure with the following components:
- React 18 + Vite development environment with TypeScript
- Tailwind CSS for styling with custom animations
- Radix UI components for accessible UI primitives
- React Router for navigation between landing and chat pages
- TanStack Query for efficient API data management
Key features implemented:
- Landing page with hero, features, and footer sections
- Real-time chat interface with message history
- Study/Trading mode toggle for different interaction types
- Custom hooks for chat state management
- API integration layer with backend service
- Responsive design with scroll areas and card layouts
Docker deployment configuration:
- Multi-stage Dockerfile with Node.js build and Nginx production
- Custom nginx configuration for SPA routing on port 3000
- Optimized production build process
Development tools:
- ESLint for code quality
- TypeScript for type safety
- PostCSS with Autoprefixer
- Environment variable configuration with .env.example