SaaS-like mini application developed with Next.js (App Router) and TypeScript, focused on frontend architecture, separation of concerns, and browser-based persistence.
- Next.js
- TypeScript
- localStorage
- Docker
- Makefile
- Simulate authentication (fake login)
- Work with protected routes
- Separate UI, logic, and types
- Persist data without a backend
- Practice SaaS frontend project structure
- Fake login (stored in localStorage)
- Protected /dashboard route
- Project management
- Task management per project
- Mark tasks as completed
- Simple statistics (counters)
src/
├─ app/ # Routes (App Router)
├─ components/ # UI components
├─ services/ # Domain logic (pure functions)
├─ types/ # TypeScript interfaces
└─ utils/ # Helpers (storage / SSR-safe)
- Data is stored in localStorage
- Helpers prevent SSR-related errors
npm install
npm run devThe project includes a Dockerfile and Makefile for containerized execution.
make buildor
docker build -t task-manager .make runor
docker run --rm -it -p 3000:3000 -v "$(PWD)":/app task-managerThe application will be available at:
http://localhost:3000
make stop
make clean
make bash- Base image: node:20-alpine
- Installs dependencies
- Exposes port 3000
- Runs npm run dev
- No backend
- No real authentication
- Project focused on architecture and logic
- UI intentionally kept simple