{"id":14957409,"url":"https://github.com/wayofdev/next-starter-tpl","last_synced_at":"2025-04-09T18:19:44.029Z","repository":{"id":65354436,"uuid":"575411792","full_name":"wayofdev/next-starter-tpl","owner":"wayofdev","description":"🤖 This is a microservices-ready template for building Next.js applications, used by Wayofdev. It comes bundled with Turbo and is managed as a monorepo using PNPM","archived":false,"fork":false,"pushed_at":"2025-03-27T02:34:31.000Z","size":4706,"stargazers_count":67,"open_issues_count":16,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T18:19:25.868Z","etag":null,"topics":["boilerplate","docker","docker-compose","jest","microservice","next-js","next-js-app","next-js-starter-template","next-js-template","next-starter-template","nextjs","nextjs-boilerplate","nextjs-docker","nextjs-template","pnpm","pnpm-workspace","turborepo","typescript","vercel"],"latest_commit_sha":null,"homepage":"https://next-starter-tpl-docs.wayof.dev","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/wayofdev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"wayofdev"}},"created_at":"2022-12-07T13:04:57.000Z","updated_at":"2025-04-04T06:50:57.000Z","dependencies_parsed_at":"2023-12-18T03:23:32.780Z","dependency_job_id":"c33c2b5d-2e83-4841-bcf6-8e0164d133cf","html_url":"https://github.com/wayofdev/next-starter-tpl","commit_stats":{"total_commits":670,"total_committers":8,"mean_commits":83.75,"dds":"0.18507462686567167","last_synced_commit":"73a43db7904273a5d126d539fbb4a74b2948d7ae"},"previous_names":[],"tags_count":37,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayofdev%2Fnext-starter-tpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayofdev%2Fnext-starter-tpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayofdev%2Fnext-starter-tpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayofdev%2Fnext-starter-tpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wayofdev","download_url":"https://codeload.github.com/wayofdev/next-starter-tpl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085325,"owners_count":21045139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["boilerplate","docker","docker-compose","jest","microservice","next-js","next-js-app","next-js-starter-template","next-js-template","next-starter-template","nextjs","nextjs-boilerplate","nextjs-docker","nextjs-template","pnpm","pnpm-workspace","turborepo","typescript","vercel"],"created_at":"2024-09-24T13:14:51.891Z","updated_at":"2025-04-09T18:19:44.011Z","avatar_url":"https://github.com/wayofdev.png","language":"TypeScript","funding_links":["https://github.com/sponsors/wayofdev"],"categories":[],"sub_categories":[],"readme":"\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg width=\"456\" src=\"https://raw.githubusercontent.com/wayofdev/next-starter-tpl/master/assets/logo.gh-light-mode-only.png#gh-light-mode-only\"\u003e\n\u003cimg width=\"456\" src=\"https://raw.githubusercontent.com/wayofdev/next-starter-tpl/master/assets/logo.gh-dark-mode-only.png#gh-dark-mode-only\"\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://next-starter-tpl-docs.wayof.dev\"\u003e\u003cb\u003eView Documentation / Demo\u003c/b\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://actions-badge.atrox.dev/wayofdev/next-starter-tpl/goto\"\u003e\u003cimg alt=\"Build Status\" src=\"https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fwayofdev%2Fnext-starter-tpl%2Fbadge\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/wayofdev/next-starter-tpl/tags\"\u003e\u003cimg alt=\"GitHub package.json version\" src=\"https://img.shields.io/github/package-json/v/wayofdev/next-starter-tpl?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"LICENSE.md\"\u003e\u003cimg src=\"https://img.shields.io/github/license/wayofdev/next-starter-tpl.svg?style=flat-square\u0026color=blue\" alt=\"Software License\"/\u003e\u003c/a\u003e\n\u003ca href=\"#\"\u003e\u003cimg alt=\"Commits since latest release\" src=\"https://img.shields.io/github/commits-since/wayofdev/next-starter-tpl/latest?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codeclimate.com/github/wayofdev/next-starter-tpl\"\u003e\u003cimg alt=\"Code Climate maintainability\" src=\"https://img.shields.io/codeclimate/maintainability/wayofdev/next-starter-tpl?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codeclimate.com/github/wayofdev/next-starter-tpl/issues\"\u003e\u003cimg alt=\"Code Climate issues\" src=\"https://img.shields.io/codeclimate/issues/wayofdev/next-starter-tpl?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codeclimate.com/github/wayofdev/next-starter-tpl\"\u003e\u003cimg alt=\"Code Climate technical debt\" src=\"https://img.shields.io/codeclimate/tech-debt/wayofdev/next-starter-tpl?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codeclimate.com/github/wayofdev/next-starter-tpl\"\u003e\n\u003cimg alt=\"Codecov\" src=\"https://img.shields.io/codecov/c/github/wayofdev/next-starter-tpl?flag=web\u0026style=flat-square\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n# NextJS Starter Template\n\n## 📄 About\n\nThis repository contains a [monorepo](https://turbo.build/repo/docs/handbook/what-is-a-monorepo) boilerplate written in [Next.js](https://nextjs.org/), managed by the [pnpm](https://pnpm.io) package manager.\n\nYou can use it with the backend template, written in Laravel — [laravel-starter-tpl](https://github.com/wayofdev/laravel-starter-tpl).\n\n### → Purpose\n\n- Establish a clear structure and present a lifecycle perspective (developer experience, continuous integration/continuous deployment, and deployments);\n- Demonstrate how to create and consume shared packages, locales, assets, and API types;\n- Provide a fully configured repository with integrated tools and configs, such as tsconfig, eslint, jest, cypress, tailwind, changelogs, versioning, codecov, codeclimate, sentry, and others;\n- Clarify advantages of using a monorepo, such as team cohesion, consistency, duplication, refactorings, and atomic commits.\n\n### → Utilities and Features\n\nThis repository has some additional tools already setup for you:\n\n- Supporting [NextJS 13.1.1+](https://nextjs.org/blog/next-13)\n- [TypeScript](https://www.typescriptlang.org/) support for static type checking\n- Strict Mode for TypeScript and React 18\n- [ESLint](https://eslint.org/) for code linting and configured presets: NextJS Recommended, NextJS Core Web Vitals and [Airbnb Style Guide](https://www.npmjs.com/package/eslint-config-airbnb)\n- Code formatting with [Prettier](https://prettier.io/)\n- Integrated with [Tailwind CSS](https://tailwindcss.com/)\n- [PostCSS](https://postcss.org/) for processing Tailwind CSS and [CSSNANO](https://cssnano.co/) for CSS optimization on production systems\n- Support for [HeroIcons](https://heroicons.com) out of the box\n- [Husky](https://typicode.github.io/husky/#/) for modern native git hooks\n- [Lint-staged](https://github.com/okonet/lint-staged) for running linters on Git staged files\n- [GitHub Actions](https://github.com/features/actions) support out of the box\n- SEO metadata, JSON-LD and Open Graph tags with [Next SEO](https://github.com/garmeeh/next-seo)\n- Sitemap support using [next-sitemap](https://www.npmjs.com/package/next-sitemap)\n- [Bundler Analyzer](https://www.npmjs.com/package/@next/bundle-analyzer) — Visualize size of webpack output files with an interactive zoomable treemap\n- Optimized [Lighthouse](https://web.dev/performance-scoring/) performance score\n- End-2-end testing with [cypress](https://www.cypress.io/) and [JestJS](https://jestjs.io/) support for writing unit tests\n- Package auto-update in all workspace projects using [npm-check-updates](https://www.npmjs.com/package/npm-check-updates)\n- Keep package.json sorted using [sort-package-json](https://www.npmjs.com/package/sort-package-json)\n- Client and server side [error reporting](https://sentry.io/) supported by [@sentry/nextjs](https://www.npmjs.com/package/@sentry/nextjs)\n\n\u003cbr\u003e\n\n🙏 If you find this repository useful, please consider giving it a ⭐️. Thank you!\n\n\u003cbr\u003e\n\n## 🤔 What's inside?\n\n[![Open in Gitpod](https://img.shields.io/badge/Open%20In-Gitpod.io-%231966D2?style=for-the-badge\u0026logo=gitpod)](https://gitpod.io/#https://github.com/wayofdev/next-starter-tpl)\n\nThis turborepo uses [pnpm](https://pnpm.io) as a package manager. It includes the following packages/apps:\n\n### → Structure\n\n```bash\n.\n├── apps\n│   ├── web                  # Next.js app - i18n, SSR, API, Jest, Cypress\n│   └── docs                 # Nextra app\n└── packages\n    ├── common-i18n          # Locales...\n    ├── facebook-pixel       # Facebook Pixel tracking functionality\n    ├── google-tag-manager   # Google Tag Manager functionality\n    └── ui                   # React stub components\n```\n\n### → Apps\n\n| Application | URL                                                       | Description                                                  |\n| ----------- | --------------------------------------------------------- | ------------------------------------------------------------ |\n| `docs`      | **[Demo](https://next-starter-tpl-docs.vercel.app/)**     | [Nextra](https://nextra.site/) documentation template generated from [Nextra: Docs Starter Kit](https://vercel.com/templates/next.js/documentation-starter-kit) |\n| `web`       | **[Demo](https://next-starter-tpl-web.vercel.app/)**      | [Next.js](https://nextjs.org/) app with TailwindCSS, Facebook Pixel and Google Tag Manager tracking, and Sentry support |\n| `storybook` | **[Demo](https://next-starter-tpl-storybook.vercel.app)** | [Storybook](https://storybook.js.org) — UI component explorer for React components |\n\n\u003e **Note:** Apps should not depend on apps, they can depend on packages\n\n### → Packages\n\n| Package              | Docs                                                         | Description                           |\n| -------------------- | ------------------------------------------------------------ | ------------------------------------- |\n| `common-i18n`        | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/common-i18n/README.md) | Locales for multi-language support    |\n| `facebook-pixel`     | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/facebook-pixel/README.md) | Facebook Pixel tracking functionality |\n| `google-tag-manager` | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/google-tag-manager/README.md) | Google Tag Manager functionality      |\n| `ui`                 | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/ui/README.md) | Shared react stub components          |\n\n\u003e **Note:** Apps can depend on packages, packages can depend on each others\n\n\u003cbr\u003e\n\n## 🚩 Requirements\n\nTo use this repository, you need to meet the following requirements:\n\n- **macOS** Monterey+ or **Linux**\n- **Docker** 20.10 or newer\n  - [How To Install and Use Docker on Ubuntu 22.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04)\n- Installed **dnsmasq** service, running in the system. You can use [ansible-role-dnsmasq](https://github.com/wayofdev/ansible-role-dnsmasq) to install and configure this service.\n- **Cloned, configured and running** [docker-shared-services](https://github.com/wayofdev/docker-shared-services) to support system-wide DNS, routing, and TLS support via Traefik.\n\n\u003cbr\u003e\n\n## 💿 Installation and Usage\n\n\u003e Warning: You should configure, set up, and run the [docker-shared-services](https://github.com/wayofdev/docker-shared-services) repository to ensure system-wide TLS and DNS support.\n\n**[Follow getting-started guide in documentation](https://next-starter-tpl-docs.wayof.dev/guide/getting-started)** 🔗\n\n\u003cbr\u003e\n\n## 🤝 License\n\n[![Licence](https://img.shields.io/github/license/wayofdev/next-starter-tpl?style=for-the-badge\u0026color=blue)](./LICENSE)\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwayofdev%2Fnext-starter-tpl.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwayofdev%2Fnext-starter-tpl?ref=badge_large)\n\n\u003cbr\u003e\n\n## 🧱 Credits and Useful Resources\n\nThis repository is based on the [nextjs-monorepo-example](https://github.com/belgattitude/nextjs-monorepo-example) template from [belgattitude](https://github.com/belgattitude).\n\n- Check his benchmark on package managers — [belgattitude/compare-package-managers](https://github.com/belgattitude/compare-package-managers)\n\nLearn more about the power of **Turborepo**:\n\n- [What is Monorepo?](https://turbo.build/repo/docs/handbook/what-is-a-monorepo)\n- [Pipelines](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks)\n- [Caching](https://turbo.build/repo/docs/core-concepts/caching)\n- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching)\n- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering)\n- [Configuration Options](https://turbo.build/repo/docs/reference/configuration)\n- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference)\n\nHere are some other monorepo templates you may find useful:\n\n- [waldronmatt/pnpm-turborepo-auto-boilerplate](https://github.com/waldronmatt/pnpm-turborepo-auto-boilerplate) — a monorepo boilerplate using pnpm, turborepo, and auto.\n- [mkosir/turborepo-boilerplate](https://github.com/mkosir/turborepo-boilerplate) — frontend turborepo boilerplate\n- [vercel/turbo](https://github.com/vercel/turbo/tree/main/examples) — turborepo examples from Vercel\n- [nextauthjs/next-auth](https://github.com/nextauthjs/next-auth) — Authentication package, built as monorepo; real life example\n\nOther projects:\n\n- [Lots of the latest examples](https://github.com/vercel/next.js/tree/canary/examples) for NextJS from Vercel\n\n\u003cbr\u003e\n\n## 🙆🏼‍♂️ Author Information\n\nThis repository was created in **2022** by [lotyp / wayofdev](https://github.com/wayofdev).\n\n\u003cbr\u003e\n\n## 🙌 Want to Contribute?\n\nThank you for considering contributing to the wayofdev community!\nWe are open to all kinds of contributions. If you want to:\n\n- 🤔 Suggest a feature\n- 🐛 Report an issue\n- 📖 Improve documentation\n- 👨‍💻 Contribute to the code\n\nYou are more than welcome. Before contributing, kindly check our [guidelines](https://next-starter-tpl-docs.wayof.dev/contribution).\n\n\u003cbr\u003e\n\n## 🫡 Contributors\n\n\u003cimg align=\"left\" src=\"https://img.shields.io/github/contributors-anon/wayofdev/next-starter-tpl?style=for-the-badge\" alt=\"Contributors\"/\u003e\n\n\u003ca href=\"https://github.com/wayofdev/next-starter-tpl/graphs/contributors\"\u003e\n  \u003cimg src=\"https://opencollective.com/wod/contributors.svg?width=890\u0026button=false\" alt=\"Contributors\"\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\n\n## 🤑 Sponsors\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\n        \u003ca href=\"https://prisma.io\" target=\"_blank\"\u003e\n          \u003cimg width=\"128px\" src=\"https://avatars.githubusercontent.com/u/110109081?s=200\u0026v=4\" alt=\"Reproto Logo\" /\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003cdiv\u003eReproto\u003c/div\u003e\u003cbr /\u003e\n        \u003csub\u003e🎖️ Financial Support\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\n        \u003ca href=\"https://varsitybase.com\" target=\"_blank\"\u003e\n          \u003cimg width=\"128px\" src=\"https://raw.githubusercontent.com/wayofdev/next-starter-tpl/master/assets/vb-logo.png\" alt=\"VarsityBase Logo\" /\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003cdiv\u003eVarsityBase\u003c/div\u003e\u003cbr /\u003e\n        \u003csub\u003e🎖️ Financial Support\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\n        \u003ca href=\"https://vercel.com\" target=\"_blank\"\u003e\n          \u003cimg width=\"128px\" src=\"https://avatars.githubusercontent.com/u/14985020?s=200\u0026v=4\" alt=\"Vercel Logo\" /\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003cdiv\u003eVercel\u003c/div\u003e\u003cbr /\u003e\n        \u003csub\u003e☁️ Infrastructure Support\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\n        \u003ca href=\"https://sentry.io\" target=\"_blank\"\u003e\n          \u003cimg width=\"128px\" src=\"https://avatars.githubusercontent.com/u/1396951?s=200\u0026v=4\" alt=\"Sentry Logo\" /\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003cdiv\u003eSentry\u003c/div\u003e\u003cbr /\u003e\n        \u003csub\u003e☁️ Infrastructure Support\u003c/sub\u003e\n      \u003c/td\u003e\n\t\t\t\u003ctd align=\"center\" valign=\"top\"\u003e\n        \u003ca href=\"https://zenhub.com\" target=\"_blank\"\u003e\n          \u003cimg width=\"128px\" src=\"https://avatars.githubusercontent.com/ml/9?s=200\u0026v=4\" alt=\"ZenHub Logo\" /\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003cdiv\u003eZenHub\u003c/div\u003e\u003cbr /\u003e\n        \u003csub\u003e☁️ Infrastructure Support\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\u003ctr\u003e\u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwayofdev%2Fnext-starter-tpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwayofdev%2Fnext-starter-tpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwayofdev%2Fnext-starter-tpl/lists"}