{"id":26569002,"url":"https://github.com/tim-richter/next-boiler","last_synced_at":"2025-07-10T17:06:26.363Z","repository":{"id":42364840,"uuid":"406632695","full_name":"tim-richter/next-boiler","owner":"tim-richter","description":"Next.js 12 boilerplate with sensible defaults and scalable code base.","archived":false,"fork":false,"pushed_at":"2022-10-29T09:29:05.000Z","size":948,"stargazers_count":14,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T16:53:51.478Z","etag":null,"topics":["cypress","jest","nextjs","nextjs-starter","nextjs-template","radix-ui","react","sprinkles","storybook","testing-library-react","typescript","vanilla-extract"],"latest_commit_sha":null,"homepage":"","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/tim-richter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-15T06:02:02.000Z","updated_at":"2023-04-28T10:59:30.000Z","dependencies_parsed_at":"2023-01-20T01:15:32.473Z","dependency_job_id":null,"html_url":"https://github.com/tim-richter/next-boiler","commit_stats":null,"previous_names":[],"tags_count":14,"template":true,"template_full_name":null,"purl":"pkg:github/tim-richter/next-boiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-richter%2Fnext-boiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-richter%2Fnext-boiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-richter%2Fnext-boiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-richter%2Fnext-boiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tim-richter","download_url":"https://codeload.github.com/tim-richter/next-boiler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-richter%2Fnext-boiler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264614722,"owners_count":23637639,"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":["cypress","jest","nextjs","nextjs-starter","nextjs-template","radix-ui","react","sprinkles","storybook","testing-library-react","typescript","vanilla-extract"],"created_at":"2025-03-22T20:19:09.881Z","updated_at":"2025-07-10T17:06:26.347Z","avatar_url":"https://github.com/tim-richter.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\u003ch1\u003eNext Boiler\u003c/h1\u003e\u003c/div\u003e\n\n\u003ch4 align=\"center\"\u003eAn opionated \u003ca href=\"https://nextjs.org\"\u003eNextJS\u003c/a\u003e Boilerplate written in Typescript.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tim-richter/next-boiler/releases/latest\" aria-label=\"Latest Release Link\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/tim-richter/next-boiler\" alt=\"Latest Release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/tim-richter/next-boiler/blob/main/LICENSE\" aria-label=\"MIT License Link\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/tim-richter/next-boiler\" alt=\"MIT License\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Ftim-richter%2Fnext-boiler\"\u003e\n    \u003cimg src=\"https://vercel.com/button\" alt=\"Button with Vercel Logo and Deploy text\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e •\n  \u003ca href=\"#how-to-use\"\u003eHow To Use\u003c/a\u003e\n\u003c/p\u003e\n\n## Key Features\n\n- Typescript\n- Styling with zero runtime CSS-in-JS Solution [Vanilla-Extract](https://github.com/seek-oss/vanilla-extract)\n- [Storybook](https://storybook.js.org/docs/react/get-started/introduction) for developing components in isolation\n- Unit/Component Tests with [jest](https://jestjs.io/) and [testing-library](https://testing-library.com/docs/react-testing-library/intro)\n- End-to-End Tests with [cypress](https://docs.cypress.io/guides/overview/why-cypress#In-a-nutshell)\n- Written with best practices in mind\n  - Helper functions with sensible defaults for getServerSideProps/getStaticProps\n  - Ready to use layouts for all pages\n  - [plop](https://github.com/plopjs/plop) for creating pages with a uniformity.\n  - Accessibility with [Radix-UI](https://www.radix-ui.com/)\n  - i18n-ready with [next-i18next](https://github.com/isaachinman/next-i18next)\n  - Easy SEO with [next-seo](https://github.com/garmeeh/next-seo) on every page\n  - Error tracking/Performance monitoring with [sentry](https://docs.sentry.io/platforms/javascript/guides/nextjs/)\n  - [Eslint](https://eslint.org/) / [Prettier](https://prettier.io/) for code styling\n  - [Husky](https://typicode.github.io/husky/#/) and [Lint-staged](https://github.com/okonet/lint-staged) for enforcing code style on every commit\n  - Fully Automatic Version Management with [semantic-release](https://github.com/semantic-release/semantic-release)\n\n## How To Use\n\n### Initial Setup\n\nAfter cloning the project first time, run following command to install all dependencies:\n\n```sh\npnpm i\n```\n\n### Starting Dev Server\n\nThe following commands starts the dev server on http://localhost:3000. You can\nread more about the dev server in the\n[documentation](https://nextjs.org/docs/api-reference/cli#development).\n\n```sh\npnpm dev\n```\n\n### Setup Sentry\n\nSet the environment variables as defined in .env.example. Also see [docs](https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/).\n\n### Plop\n\nYou can use plop to create pages and api routes in the cli. Plop makes sure every new page\nconforms to predefined standards.\n\nTo run plop and get prompts for creating a new page run:\n\n```javascript\npnpm plop\n```\n\n## Nice to Know\n\n### Commitlint\n\nWe use commitlint to enforce commit style. If you would like to add new type enums or change the settings you can do so in the commitlint.config.js file.\n\n### VS Code Debugging\n\nGeneral purpose launch settings for vs code are located in the .vscode/launch.json file. You can run these pre-defined debug sessions in your vs code debug tab.\n\n### Project Structure\n\nThe main directories in the project are structured as following:\n\n```\n▸ .github\n▸ .storybook\n▸ cypress\n▸ public\n▾ src\n  ▸ components\n  ▸ config\n  ▸ layouts\n  ▸ pages\n  ▸ styles\n  ▸ types\n  ▸ util\n▸ test\n```\n\n#### .github\n\nThe project already comes with defaults for github-actions. This directory contains\nthe main workflow which runs all the tests of the repository and then creates a new release\nwith semantic-release. When it comes to deployment and vercel you might like to\nuse [vercel-action](https://github.com/marketplace/actions/vercel-action) to run\nall these scripts before the deployment to vercel or just run all scripts\nin one build command on vercel (ready to use: pnpm ci:test-build)\n\n#### .storybook\n\nAll storybook config goes into this directory. See\n[documentation](https://storybook.js.org/docs/react/configure/overview)\n\n#### cypress\n\nStandard cypress (typescript) installation folder. See\n[documentation](https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests#Folder-structure)\n\n#### Public\n\nThis directory is where all the static assets are stored. Also contains i18n translations\nthat will be injected by next-i18next. translationNamespaces in baseStaticHandler refers to\nthese file names. See [documentation](https://nextjs.org/docs/basic-features/static-file-serving)\nfor further questions.\n\n#### Src\n\n##### Components\n\nAll of the React components that are used on different parts of the project can\nbe found under this directory. These components are usually single responsibility\npieces that are handling their own logic and styling.\n\n##### Config\n\nConfig files for global config rules.\n\n##### Layouts\n\nThis directory contains main layouts used to wrap pages and large parts of the\nuser interface.\n\n##### Pages\n\nThis is a directory specific to NextJS. It contains a React component per\nroute in the website. You can\nread more about how routing is handled in a NextJS project\n[here](https://nextjs.org/docs/basic-features/pages).\n\n##### Styles\n\nThis directory contains definitions for different CSS variables that are used\naround the project. It contains a global.css file that handles basic styling for all\nelements and a stitches.config.ts file that instantiates a new stitches instance\nand sets configuration for our design system.\n\n##### Types\n\nGlobal Typescript Types. All .d.ts files in this directory are automatically\nincluded into typescript.\n\n##### Util\n\nThis directory contains several utility files for different functionalities.\n\n#### Test\n\nConfig/Setup Files for jest and testing-library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-richter%2Fnext-boiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftim-richter%2Fnext-boiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-richter%2Fnext-boiler/lists"}