{"id":17853961,"url":"https://github.com/tts-sandbox/next-starter","last_synced_at":"2026-02-09T22:31:53.411Z","repository":{"id":259318837,"uuid":"877408272","full_name":"tts-sandbox/next-starter","owner":"tts-sandbox","description":"Next.js starter template","archived":false,"fork":false,"pushed_at":"2025-03-31T00:37:08.000Z","size":455,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-20T22:36:41.217Z","etag":null,"topics":["docker","drizzle","nextjs","pnpm","postgresql","react","starter","tailwindcss","typescript"],"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/tts-sandbox.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-10-23T15:43:38.000Z","updated_at":"2025-01-05T20:50:57.000Z","dependencies_parsed_at":"2024-10-24T11:09:56.723Z","dependency_job_id":"21388eaa-fbd4-47a4-ae27-68a716ce9603","html_url":"https://github.com/tts-sandbox/next-starter","commit_stats":null,"previous_names":["tts-sandbox/next-starter"],"tags_count":0,"template":true,"template_full_name":"w3cj/next-start","purl":"pkg:github/tts-sandbox/next-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tts-sandbox%2Fnext-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tts-sandbox%2Fnext-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tts-sandbox%2Fnext-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tts-sandbox%2Fnext-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tts-sandbox","download_url":"https://codeload.github.com/tts-sandbox/next-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tts-sandbox%2Fnext-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29283588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T21:57:15.303Z","status":"ssl_error","status_checked_at":"2026-02-09T21:57:11.537Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["docker","drizzle","nextjs","pnpm","postgresql","react","starter","tailwindcss","typescript"],"created_at":"2024-10-28T00:06:01.115Z","updated_at":"2026-02-09T22:31:53.394Z","avatar_url":"https://github.com/tts-sandbox.png","language":"TypeScript","funding_links":[],"categories":[],"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.nvpmjs.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%2Ftts-sandbox%2Fnext-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftts-sandbox%2Fnext-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftts-sandbox%2Fnext-starter/lists"}