{"id":16278720,"url":"https://github.com/pixelass/pwa-template","last_synced_at":"2025-06-15T21:02:48.093Z","repository":{"id":39755850,"uuid":"432860350","full_name":"pixelass/pwa-template","owner":"pixelass","description":"Next.js PWA template","archived":false,"fork":false,"pushed_at":"2022-12-03T15:51:07.000Z","size":118825,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-11T18:59:35.474Z","etag":null,"topics":["atomic-design","auth","bdd","cypress","emotionjs","i18next","jest","linting","mui","next-auth","next-starter","nextjs","pwa","pwa-starter-kit","react","sentry","storybook","tdd","typescript","workflows"],"latest_commit_sha":null,"homepage":"https://pwa-template.vercel.app","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/pixelass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-29T00:36:03.000Z","updated_at":"2023-05-09T20:26:35.000Z","dependencies_parsed_at":"2023-01-23T14:30:13.361Z","dependency_job_id":null,"html_url":"https://github.com/pixelass/pwa-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelass%2Fpwa-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelass%2Fpwa-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelass%2Fpwa-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixelass%2Fpwa-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pixelass","download_url":"https://codeload.github.com/pixelass/pwa-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221733309,"owners_count":16871848,"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":["atomic-design","auth","bdd","cypress","emotionjs","i18next","jest","linting","mui","next-auth","next-starter","nextjs","pwa","pwa-starter-kit","react","sentry","storybook","tdd","typescript","workflows"],"created_at":"2024-10-10T18:59:42.183Z","updated_at":"2024-10-27T21:06:43.591Z","avatar_url":"https://github.com/pixelass.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PWA Template\n\nA template for Next.js with PWA support and i18n.\n\nTry the Demo: https://pwa-template.vercel.app/  \nUser: Alex  \nPassword: secret\n\n\u003cimg src=\"./docs/resources/next-logo.png\" alt=\"next logo\" width=\"50%\"/\u003e\u003cimg src=\"./docs/resources/pwa-logo.png\" alt=\"pwa logo\" width=\"50%\"/\u003e\n\n\u003ch2 align=\"center\"\u003e100% Lighthouse score\u003c/h2\u003e\n\n\u003cimg src=\"./docs/resources/blank.svg\" alt=\"\" width=\"20%\"/\u003e\u003cimg src=\"./docs/resources/lighthouse.png\" alt=\"next logo\" width=\"60%\"/\u003e\u003cimg src=\"./docs/resources/blank.svg\" alt=\"\" width=\"20%\"/\u003e\n\n\u003c!-- toc --\u003e\n\n- [Libraries](#libraries)\n- [Personalize this template](#personalize-this-template)\n- [Set up Vercel](#set-up-vercel)\n  * [App](#app)\n  * [Storybook](#storybook)\n- [Setup Sentry](#setup-sentry)\n- [Getting started](#getting-started)\n- [Atomic design](#atomic-design)\n- [Behavior Driven Development](#behavior-driven-development)\n- [Test Driven Development](#test-driven-development)\n- [Commitlint](#commitlint)\n- [Commands](#commands)\n- [Skipping linters](#skipping-linters)\n\n\u003c!-- tocstop --\u003e\n\n## Libraries\n\n- [Storybook](https://storybook.js.org/)\n- [Cypress](https://cypress.io/)\n- [Sentry](https://sentry.io/)\n- [Jest](https://jestjs.io/)\n- [Commitlint](https://commitlint.js.org/)\n- [Eslint](https://eslint.org/)\n- [Prettier](https://prettier.io/)\n\nAdditional libraries:\n\n- [MUI](https://mui.com/)\n- [i18next](https://www.i18next.com/) (via\n  [next-i18next](https://github.com/isaachinman/next-i18next))\n- [Next Auth](https://next-auth.js.org/)\n- [React Hook Form](https://react-hook-form.com/)\n- [Zustand](https://zustand-demo.pmnd.rs/)\n\n## Personalize this template\n\nAdjust the information in [pwa.config.mjs](pwa.config.mjs).\n\nAdjust these files:\n\n- `LICENSE`\n- `package.json`\n\n## Set up Vercel\n\nThis project uses multiple Vercel deployments to make design/code reviews easier:\n\n- App Production\n- App Preview\n- Storybook Production\n- Storybook Preview\n\nPlease follow this guide:\n[https://vercel.com/docs/concepts/git](https://vercel.com/docs/concepts/git)\n\n### App\n\nFollow the default setup for Next.js.\n\n### Storybook\n\nAdjust the \"Build and Output Settings\":\n\n- BUILD COMMAND: `yarn run storybook:build`\n- OUTPUT DIRECTORY: `./storybook-static`\n\n\u003cimg src=\"./docs/resources/blank.svg\" alt=\"\" width=\"20%\"/\u003e\u003cimg src=\"./docs/resources/vercel-storybook.png\" alt=\"Vercel Storybook settings\" width=\"60%\"/\u003e\u003cimg src=\"./docs/resources/blank.svg\" alt=\"\" width=\"20%\"/\u003e\n\n## Setup Sentry\n\nPlease look at [the guide](https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/),\nspecially the\n[configuration](https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#configure-sentry-cli)\nsection.\n\nEverything is already set up. You only need to add the correct environmental variables (See\n[`.env.local.example`](.env.local.example)).\n\nTo test the integration you can visit the\n[Sentry sample error page](http://localhost:3000/sentry_sample_error).\n\n## Getting started\n\n**Run the development server:**\n\n```shell\nyarn run dev\n```\n\n**Run storybook:**\n\n```shell\nyarn run storybook\n```\n\n## Atomic design\n\nWe use atomic design. You can read more about our decision in the\n[documentation](docs/ATOMIC_DESIGN.md).\n\n## Behavior Driven Development\n\nWe use behavior tests. You can read more about our decision in the\n[documentation](docs/BEHAVIOR_DRIVEN_DEVELOPMENT.md).\n\n## Test Driven Development\n\nWe use jest to write unit tests. Please look at the Documentation for [Jest](https://jestjs.io/) and\n[testing-library](https://testing-library.com/docs/react-testing-library/intro/).\n\n## Commitlint\n\nWe use commitlint to ensure conventional commit messages. You can read more about our decision in\nthe [documentation](docs/COMMITS.md).\n\n## Commands\n\n**Run the development server:**\n\n```shell\nyarn run dev\n```\n\n**Build:**\n\n```shell\nyarn run build\n```\n\n**Run storybook:**\n\n```shell\nyarn run storybook\n```\n\n**Build storybook:**\n\n```shell\nyarn run storybook:build\n```\n\n**Run cypress tests:**\n\n```shell\nyarn run cypress # local without server\n# yarn cypress:run # headless\n# yarn test:cypress # with server\n```\n\n**Run unit tests:**\n\n```shell\nyarn run jest\n# yarn jest:watch # watch\n# yarn test:jest # same as \"yarn jest\"\n```\n\n**Run all tests:**\n\n```shell\nyarn run test\n```\n\n**Run eslint**\n\n```shell\nyarn run eslint\n```\n\n**Run all linters**\n\n```shell\nyarn run lint\n```\n\n## Skipping linters\n\nIf you need to skip a linter you can add the `--no-verify` flag.\n\n\u003e :warning: Warning\n\u003e\n\u003e We strongly advise against skipping linters.\n\n```shell\n# Skipping pre-commit hooks\ngit commit README.md -m \"this is a dirty commit\" --no-verify\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixelass%2Fpwa-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpixelass%2Fpwa-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixelass%2Fpwa-template/lists"}