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+, Docker Desktop
# 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 testLive 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 15 + 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.js App Router pages
β βββ π api/ # API proxy route (avoids CORS)
β βββ π cart/ # Cart page
β βββ π checkout/ # Checkout page
β βββ π favourites/ # Favourites page
β βββ π orders/ # Orders page
β βββ π product/ # Product detail page
β βββ π profile/ # User profile page
β βββ π signin/signup/ # Auth pages
β βββ π layout.tsx # Root layout
βββ π features/ # Feature-based modules
β βββ π addresses/ # Delivery addresses
β βββ π auth/ # Auth (login, register)
β βββ π cart/ # Shopping cart
β βββ π favorites/ # Favourites
β βββ π products/ # Product catalog
β βββ π reviews/ # Product reviews
β βββ π user/ # User profile
βββ π shared/ # Cross-feature shared code
βββ π api/ # Axios client
βββ π components/ # Shared UI components
βββ π providers/ # App-level providers
βββ π types/ # Shared TypeScript types
βββ π utils/ # Utility functions
π« No Kubernetes, no cloud-managed services β the app ships as a Docker container directly via SSH.
The full production setup is in the backend docker-compose.yml. On every merge to master, GitHub Actions builds and pushes a Docker image to production automatically. CI runs on every push and PR to development. Only maintainers can merge to master.
π Explore the .github/ 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 testpasses 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