{"id":28304683,"url":"https://github.com/giladfuchs/next-ecommerce","last_synced_at":"2026-04-04T22:33:52.200Z","repository":{"id":294268250,"uuid":"986440580","full_name":"giladfuchs/next-ecommerce","owner":"giladfuchs","description":"Free, Modern, accessible monorepo e-commerce platform built with Next.js 16. Includes two standalone implementations: Payload CMS–based and Express with a custom admin. Features a dynamic storefront and production-ready commerce flow","archived":false,"fork":false,"pushed_at":"2026-03-20T13:02:39.000Z","size":1989,"stargazers_count":60,"open_issues_count":5,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-21T05:36:10.628Z","etag":null,"topics":["ecommerce","express","nextjs","payloadcms","postgresql","storefront","typescipt"],"latest_commit_sha":null,"homepage":"https://payload.url-link.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giladfuchs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-19T15:59:13.000Z","updated_at":"2026-03-20T13:02:43.000Z","dependencies_parsed_at":"2025-07-09T11:51:25.859Z","dependency_job_id":"eda473ef-f855-4566-b351-e6d918af89ab","html_url":"https://github.com/giladfuchs/next-ecommerce","commit_stats":null,"previous_names":["giladfuchs/next-ecommerce"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/giladfuchs/next-ecommerce","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giladfuchs%2Fnext-ecommerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giladfuchs%2Fnext-ecommerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giladfuchs%2Fnext-ecommerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giladfuchs%2Fnext-ecommerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giladfuchs","download_url":"https://codeload.github.com/giladfuchs/next-ecommerce/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giladfuchs%2Fnext-ecommerce/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecommerce","express","nextjs","payloadcms","postgresql","storefront","typescipt"],"created_at":"2025-05-24T01:11:24.409Z","updated_at":"2026-04-04T22:33:52.188Z","avatar_url":"https://github.com/giladfuchs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## 🧱 Payload Version\n\nThis repository contains the **Express + PostgreSQL** e-commerce template.\n\nIf you're looking for the **Payload CMS (Next.js + Payload 3)** version, see:\n\n- [`/payload`](payload) — Payload-based store (Next.js + Payload CMS 3)\n\n\n---\n\n# Next.js E-commerce Template 🛍️\n\nA modern, accessible e-commerce platform built with Next.js 16 (frontend) and Express + PostgreSQL (backend), designed for both customers and store administrators.\n\u003cbr/\u003eIncludes a dynamic storefront, full admin dashboard, backend API, image upload, order tracking, and multilingual support (RTL \u0026 LTR).\n\n---\n\n## 🌐 Live Preview\n\nThis project uses a mixed mock dataset of **Hebrew (RTL)** and **English (LTR)** product and category entries.  \nThe layout is fully optimized for both directions, ensuring a seamless multilingual experience.\n\n- **🇺🇸 LTR (English):** [modern-ecommerce-store.vercel.app/en](https://modern-ecommerce-store.vercel.app/en)\n- **🇮🇱 RTL (Hebrew):** [modern-ecommerce-store.vercel.app/he](https://modern-ecommerce-store.vercel.app/he)\n- **🔐 Admin Panel:** [modern-ecommerce-store.vercel.app/admin](https://modern-ecommerce-store.vercel.app/admin) — includes a built-in login form\n\n---\n\n## ▲ Deploy Your Own\n\nDeploy your own version of this e-commerce storefront.\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/giladfuchs/next-ecommerce)\n\nThis deploy uses Next.js route handlers (app/api) as the server.\u003cbr/\u003e\nAfter creating your project, make sure to go to the Vercel dashboard  \nand update your environment variables based on [functions/.env.example](functions/.env.example)\n\n\n\n---\n## 📦 Environment Variables\n\nTo run the app locally or in production, you must configure the appropriate environment variables.\n\nSee the example files for full variable lists and inline comments:\n\n- [`frontend/.env.example`](frontend/.env.example) — for frontend mode\n- [`functions/.env.example`](functions/.env.example) — for Next.js API routes \u0026 Frontend\n- [`backend/.env.example`](backend/.env.example) — for Express backend mode\n\n---\n\n## 🚀 Getting Started (for Local Development)\n\nThis project supports multiple development modes:\n\n- **Fullstack** — run a real backend with PostgreSQL + Express\n- **Next.js API** — use serverless functions instead of Express\n- **Mock** — use local mock data for instant setup\n\nChoose the guide that fits your workflow:\n\n- [🛍️ `frontend/README.md`](frontend/README.md) — run the frontend with mock data or connect to a backend\n- [🛠️ `backend/README.md`](backend/README.md) — set up the Express API and database\n- [⚙️ `functions/README.md`](functions/README.md) — uses Next.js API routes for backend logic (no separate server needed)\n---\n\n## ✨ Key Features\n\n### 🧑‍💻 Frontend (`/frontend`)\n\n- 💅 Fully styled with **MUI v7**\n- 🛍️ Dynamic storefront with product filtering and category browsing\n- 🧾 **Admin dashboard** with full model management (products, categories, orders, images)\n- 🧠 SEO \u0026 Open Graph via **Next.js 16 Metadata API**\n- ♿ **Accessibility bar** with font scaling and contrast settings\n- 🛒 **Cart and admin state managed via Redux Toolkit** with **persisted state**\n- 🧪 **Playwright-based E2E tests** for key storefront and admin flows\n\n### 🔌 Backend (`/backend`)\n\n- 🔄 RESTFUL CRUD API for products, categories, orders, and images\n- 🔐 Token-based authentication using **JWT**\n- 🗃️ **TypeORM + PostgreSQL** schema design\n- 📤 Image upload via **Vercel Blob** + processing with **Multer + Sharp**\n- ✉️ Optional: email and WhatsApp order notifications\n- ✅ **100% test coverage** for API routes using **Vitest + Supertest**\n\n---\n\n## 🧩 Tech Stack\n\n### Frontend\n\n- **Next.js 16**, **React 19**, **TypeScript**\n- **MUI 7**\n- **Redux Toolkit** with **redux-persist**\n- **AG Grid**, **Formik**, **Yup**, **react-intl**, **Sonner**\n- **Playwright** for E2E testing\n\n### Backend\n\n- **Express.js** + **TypeScript**\n- **TypeORM** with **PostgreSQL**\n- **JWT** + **bcryptjs** for authentication\n- **Multer** + **Sharp** for image upload \u0026 processing\n- **Vercel Blob** for cloud storage\n- **Nodemailer**, **SendGrid**, **CallMeBot** for notifications\n- **Vitest** + **Supertest** for full API test coverage\n\n---\n## 🤝 Contributing\n\nContributions are welcome!  \nIf you find this project useful, consider giving it a ⭐ on GitHub — it helps others discover it!\n\nTo contribute, fork the repository and submit a pull request with your enhancements or bug fixes.\n\n---\n\n## 📄 License\n\nThis project is licensed under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiladfuchs%2Fnext-ecommerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiladfuchs%2Fnext-ecommerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiladfuchs%2Fnext-ecommerce/lists"}