A full-stack movie search application built with Bun, React, TypeScript, and Hono.
movie-search-app/
├── client/ # React frontend (Vite + TypeScript)
│ ├── src/
│ └── package.json
├── api/ # Hono backend API
│ ├── src/
│ └── package.json
├── scripts/ # Data fetching utilities
│ └── src/
├── docker-compose.dev.yml # Development environment
├── docker-compose.prod.yml # Production environment
└── Makefile # Build and deployment commands
- Runtime: Bun - Fast JavaScript runtime
- Frontend: React + TypeScript + Vite
- Backend: Hono (lightweight web framework)
- Data: TMDB API integration
- Containerization: Docker + Docker Compose
- Build Tool: Vite for frontend, Bun for backend
- Bun installed
- Docker and Docker Compose installed
# Clone and setup
git clone <repository-url>
cd movie-search-app
# Install dependencies
bun install
# Start development environment
make dev-build# Development
make dev-up # Start development environment
make dev-down # Stop development environment
make dev-build # Build and start development
make dev-logs # View development logs
# Production
make prod-up # Start production environment
make prod-down # Stop production environment
make prod-build # Build and start production
make prod-logs # View production logs
# Utilities
make clean # Clean up containers and volumes
make help # Show all available commands# Development
docker compose -f docker-compose.dev.yml up --build
# Production
docker compose -f docker-compose.prod.yml up --build- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Frontend: http://localhost:80
- Backend API: http://localhost:3000
The app fetches movie data from TMDB API using the scripts in scripts/:
# Fetch latest movie data
bun run fetch-data- Start development:
make dev-build - View logs:
make dev-logs - Stop services:
make dev-down - Clean up:
make clean
- Build and start:
make prod-build - Monitor logs:
make prod-logs - Stop services:
make prod-down