A modern React/Next.js coffee marketplace frontend β built in the open, for engineers who want real experience.
π Live Demo Β· π’ Good First Issues Β· π¬ Community
| Repository | β Stars | π΄ Forks |
|---|---|---|
| π§ Backend | ||
| π¨ Frontend | ||
| π§ͺ QA |
β If this project helps you learn or inspires you, please give it a star β it means a lot to the community!
π Prerequisites: Node.js 20+ and npm, Docker Desktop for backend-backed local runs
# 1. π₯ Clone
git clone https://github.com/Sunagatov/Iced-Latte-Frontend.git && cd Iced-Latte-Frontend
# 2. π Copy the example env file
cp .env.example .env.local
# 3. π¦ Install dependencies
npm ci
# 4. βΆοΈ Run
npm run devπ App runs at http://localhost:3000
β οΈ The backend must be running for products and login to work. See Getting Started Option A to start it with one Docker command.
π‘ See Getting Started for Docker setup, E2E tests, and troubleshooting.
π§ͺ Run the tests:
npm testπ Lint and type-check:
npm run lint
npm run tsc -- --noEmitLive application interface: iced-latte.uk
Iced Latte is a non-profit sandbox project started in 2022 as a private pet project, then opened to the community to give junior engineers, students, and mentees practical experience in a real tech project with processes similar to those in actual tech teams. The first participants were students, Telegram channel subscribers, and mentees from ADPList and Women In Tech. The project has since grown and earned recognition from both the open-source community and the wider tech community.
β If this project helps you learn or inspires you, please give it a star β it means a lot to the community!
Iced Latte has earned recognition from the broader tech community.
- The backend repository reached GitHub's Trending page β listed among resources "the GitHub community is most excited about today" β gaining 85 stars in a single day with 27 active contributors. (link to the archive)
- Iced Latte made it to the finals of KaiCode β an annual open-source festival launched by Huawei, which positions itself as an incubator of open-source technologies and rewards the most promising projects. Iced Latte was selected among 412 applications and placed in the third group of 26 finalist repositories considered for the prize. Jury members are not allowed to assess their own projects, so the selection was fully independent.
- Iced Latte was recognized by JetBrains β a leading software company specializing in intelligent development tools. As an active participant in the open-source community, JetBrains supports recognized global open-source projects by providing complimentary licenses for non-commercial development. JetBrains granted Iced Latte 8 free All Products Pack licenses (February 2024, License Reference No. D379769990).
- Iced Latte was recommended by Eddie Jaoude β one of the most influential open-source experts, a GitHub Star with 174K followers on X and 17.6K on LinkedIn β who called it a great example of a Java open-source project. Many Iced Latte contributors shared their positive experience in the comments.
| π Category | π§ Technology |
|---|---|
| π» Core | Next.js 16 + TypeScript 5 + React 19 |
| ποΈ State Manager | Zustand |
| π¨ CSS Framework | TailwindCSS 4 |
| π‘ Data Fetching | Axios + SWR |
| π Forms | React Hook Form + Yup |
| π§ͺ Testing | Jest, React Testing Library, Playwright |
| π’ Deployment | Docker, GitHub Actions, Vercel |
src/
βββ app/ # Next App Router entries, route handlers, shell layout, providers
β βββ api/ # Next route handlers and proxy endpoints
β βββ layout/ # Header, footer, and app-shell UI
β βββ providers/ # App bootstrap and global runtime wiring
βββ features/ # Product/domain slices
β βββ addresses/ # Delivery address management
β βββ auth/ # Sign-in, sign-up, password reset, auth guards
β βββ cart/ # Shopping cart flows and state
β βββ checkout/ # Checkout flow
β βββ favorites/ # Favourites
β βββ home/ # Home page route and hero section
β βββ orders/ # Orders and order success
β βββ products/ # Catalog and product details
β βββ reviews/ # Reviews and ratings
β βββ session/ # Session orchestration across auth/cart/favourites
β βββ user/ # Profile and user account flows
βββ shared/ # Cross-feature building blocks
β βββ api/ # Axios client
β βββ auth/ # Cookies, token helpers, session tracing
β βββ types/ # Shared TypeScript types
β βββ ui/ # Reusable UI primitives
β βββ utils/ # Non-auth generic utilities
βββ types/ # Global declaration files
- Keep
app/thin. It should own Next routing, shell layout, and provider wiring, not feature business logic. - Keep route implementations under the owning feature whenever the route has meaningful UI or orchestration logic.
- Use
shared/uionly for domain-agnostic primitives. Header, footer, hero sections, and auth guards are not generic UI. - Keep auth cookies, token helpers, and request tracing under
shared/auth. - Do not let
shared/import fromapp/or from feature modules.
π« No Kubernetes, no cloud-managed services. This repo builds and publishes a Docker image; the broader runtime wiring lives in the backend/Vault deployment setup.
The full production setup is in the backend docker-compose.yml. On every push to master, GitHub Actions builds and pushes the frontend Docker image. CI runs on every push to development and on pull requests targeting development.
π Explore the GitHub workflows folder for the full CI/CD pipeline.
π Contributions are welcome. Here's how to get involved:
| π― Situation | π Action |
|---|---|
| π Found a bug | Open an issue with the bug label |
| π‘ Want a feature | Start a Discussion first |
| π¨βπ» Ready to code | Pick a good first issue, comment "I'm on it" |
| π§ Big change | Comment on the issue before writing code β many tickets have hidden constraints |
| π·οΈ Label | π Meaning |
|---|---|
π’ good first issue |
Simple, well-scoped β great for first-timers |
π΄ bug |
Something is broken |
π΅ high priority |
Do this first |
π‘ enhancement |
Accepted improvement to an existing module |
π new feature |
New functionality β discuss before starting |
βͺ idea |
Needs design discussion β don't implement yet |
- π Search existing issues before opening a new one
- π Clearly describe observed vs expected behaviour
- π For minor fixes, just open a PR directly
- π― Keep PRs focused β one concern per PR
- β
Make sure
npm run lint,npm run tsc -- --noEmit, andnpm testpass locally before pushing - π Reference the issue number in your PR description
π€ Forks are welcome. Please share useful features back via PR so the community benefits and your fork stays easy to sync.
π CC BY-NC 4.0 β free for educational and personal use with author attribution. Commercial use requires explicit written permission from the author (zufar.sunagatov@gmail.com).
- π¬ Telegram community: Zufar Explained IT
- π€ Personal Telegram: @lucky_1uck
- π± WhatsApp: Message me
- π§ Email: zufar.sunagatov@gmail.com
- π Issues: GitHub Issues