{"id":19791444,"url":"https://github.com/w3cj/next-start","last_synced_at":"2025-04-12T20:45:41.549Z","repository":{"id":262174889,"uuid":"856582758","full_name":"w3cj/next-start","owner":"w3cj","description":"A basic Next.js starter.","archived":false,"fork":false,"pushed_at":"2025-03-31T14:53:40.000Z","size":609,"stargazers_count":223,"open_issues_count":9,"forks_count":61,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T00:37:53.161Z","etag":null,"topics":["boilerplate","drizzle","eslint","next","next-auth","nextjs","nextui","prettier","react","reactjs","setup","starter","tailwind"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=dLRKV-bajS4","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/w3cj.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}},"created_at":"2024-09-12T20:33:22.000Z","updated_at":"2025-04-02T13:01:16.000Z","dependencies_parsed_at":"2024-11-11T02:20:01.848Z","dependency_job_id":"4fe17ae4-2aa4-40fc-a77f-69d4f016fccd","html_url":"https://github.com/w3cj/next-start","commit_stats":null,"previous_names":["w3cj/next-start"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3cj%2Fnext-start","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3cj%2Fnext-start/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3cj%2Fnext-start/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3cj%2Fnext-start/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w3cj","download_url":"https://codeload.github.com/w3cj/next-start/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631689,"owners_count":21136556,"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","drizzle","eslint","next","next-auth","nextjs","nextui","prettier","react","reactjs","setup","starter","tailwind"],"created_at":"2024-11-12T07:03:06.862Z","updated_at":"2025-04-12T20:45:41.526Z","avatar_url":"https://github.com/w3cj.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Next Start\n\nA basic Next.js starter.\n\n- [Next Start](#next-start)\n  - [Stack](#stack)\n  - [Branches](#branches)\n  - [Setup](#setup)\n  - [Resources](#resources)\n\n## Stack\n\n- Linting / Code Style\n  - [eslint](https://www.npmjs.com/package/eslint)\n    - [eslint-config-prettier](https://www.npmjs.com/package/eslint-config-prettier)\n      - [ESLint | Next.js](https://nextjs.org/docs/app/building-your-application/configuring/eslint#prettier)\n    - [eslint-plugin-check-file](https://www.npmjs.com/package/eslint-plugin-check-file)\n      - [Bulletproof React Guide](https://github.com/alan2207/bulletproof-react/blob/master/docs/project-standards.md#file-naming-conventions)\n    - [eslint-plugin-n](https://www.npmjs.com/package/eslint-plugin-n)\n  - [prettier](https://www.npmjs.com/package/prettier)\n    - [@trivago/prettier-plugin-sort-imports](https://www.npmjs.com/package/@trivago/prettier-plugin-sort-imports)\n    - [prettier-plugin-tailwindcss](https://www.npmjs.com/package/prettier-plugin-tailwindcss)\n      - [Automatic Class Sorting](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier#how-classes-are-sorted)\n- Environment Variables\n  - [dotenv](https://www.npmjs.com/package/dotenv)\n  - [dotenv-expand](https://www.npmjs.com/package/dotenv-expand)\n  - [@t3-oss/env-nextjs](https://www.npmjs.com/package/@t3-oss/env-nextjs)\n    - [Documentation](https://env.t3.gg/docs/nextjs)\n  - [cross-env](https://www.npmjs.com/package/cross-env)\n- Styles / UI\n  - [tailwindcss](https://www.npmjs.com/package/tailwindcss)\n  - [@nextui-org/react](https://www.npmjs.com/package/@nextui-org/react)\n    - [NextUI](https://nextui.org/docs/guide/introduction)\n  - [next-themes](https://www.npmjs.com/package/next-themes)\n  - [@tabler/icons-react](https://www.npmjs.com/package/@tabler/icons-react)\n    - [Tabler Icon Search](https://tabler.io/icons)\n- Validation\n  - [zod](https://www.npmjs.com/package/zod)\n  - [@conform-to/zod](https://www.npmjs.com/package/@conform-to/zod)\n    - [Conform | Next.js](https://conform.guide/integration/nextjs)\n  - [drizzle-zod](https://www.npmjs.com/package/drizzle-zod)\n    - [Drizzle Zod Docs](https://orm.drizzle.team/docs/zod)\n- Forms\n  - [@conform-to/react](https://www.npmjs.com/package/@conform-to/react)\n- Database\n  - [drizzle-orm](https://www.npmjs.com/package/drizzle-orm)\n  - [postgres](https://www.npmjs.com/package/postgres)\n  - [drizzle-kit](https://www.npmjs.com/package/drizzle-kit)\n- Authentication\n  - [next-auth](https://www.npmjs.com/package/next-auth)\n  - [@auth/drizzle-adapter](https://www.npmjs.com/package/@auth/drizzle-adapter)\n    - [Auth.js Drizzle Adapter Documentation](https://authjs.dev/getting-started/adapters/drizzle)\n\n## Branches\n\nThe main branch contains the entire setup. The following branches build on each other from top to bottom:\n\n- [base](https://github.com/w3cj/next-start/tree/base)\n  - eslint / prettier settings\n- [nextui](https://github.com/w3cj/next-start/tree/nextui)\n  - layout / styles\n  - dark / light theme toggle\n- [typesafe-env](https://github.com/w3cj/next-start/tree/typesafe-env)\n  - typesafe environment variables\n- [next-auth](https://github.com/w3cj/next-start/tree/next-auth)\n  - google oauth with no database\n- [drizzle](https://github.com/w3cj/next-start/tree/drizzle) / [main](https://github.com/w3cj/next-start)\n  - basic drizzle schema with users / accounts / sessions\n\n## Setup\n\n1. Install dependencies:\n\n```sh\npnpm install\n```\n\n2. Copy the `.env` file:\n\n```sh\ncp .env.example .env\n```\n\n3. Update the following values in the `.env` file:\n\n```sh\nNEXTAUTH_SECRET=your-value-here\nGOOGLE_CLIENT_ID=your-value-here\nGOOGLE_CLIENT_SECRET=your-value-here\n```\n\n4. Start the database:\n\n```sh\ndocker compose up\n```\n\n5. Migrate the database:\n\n```sh\npnpm run db:migrate\n```\n\n6. Start the app:\n\n```sh\npnpm run dev\n```\n\n## Resources\n\n- [Next.js Discord FAQs](https://nextjs-faq.com/)\n  - [\"Module not found\" error on deployment but build works fine locally](https://nextjs-faq.com/module-not-found-due-to-case-sensitivity)\n- [Bulletproof React](https://github.com/alan2207/bulletproof-react)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3cj%2Fnext-start","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw3cj%2Fnext-start","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3cj%2Fnext-start/lists"}