{"id":27323629,"url":"https://github.com/nirnejak/nextjs-typescript-saas","last_synced_at":"2025-04-12T10:53:29.568Z","repository":{"id":46323885,"uuid":"472839245","full_name":"nirnejak/nextjs-typescript-saas","owner":"nirnejak","description":"Next.js TypeScript SaaS Starter","archived":false,"fork":false,"pushed_at":"2025-04-10T02:34:42.000Z","size":2751,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T03:32:39.066Z","etag":null,"topics":["authjs","drizzle","drizzle-orm","framer-motion","next-auth","nextjs","nextjs-boilerplate","nextjs-template","nextjs-typescript","react","react-query","saas","tailwind","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://nextjs-typescript-saas.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/nirnejak.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":"2022-03-22T16:08:17.000Z","updated_at":"2025-04-10T02:34:45.000Z","dependencies_parsed_at":"2023-09-27T13:13:05.591Z","dependency_job_id":"50c56796-edcc-4df2-9e3d-193cb11b8427","html_url":"https://github.com/nirnejak/nextjs-typescript-saas","commit_stats":null,"previous_names":["nirnejak/nextjs-typescript-saas"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirnejak%2Fnextjs-typescript-saas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirnejak%2Fnextjs-typescript-saas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirnejak%2Fnextjs-typescript-saas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirnejak%2Fnextjs-typescript-saas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nirnejak","download_url":"https://codeload.github.com/nirnejak/nextjs-typescript-saas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248557847,"owners_count":21124165,"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":["authjs","drizzle","drizzle-orm","framer-motion","next-auth","nextjs","nextjs-boilerplate","nextjs-template","nextjs-typescript","react","react-query","saas","tailwind","tailwindcss","typescript"],"created_at":"2025-04-12T10:53:29.043Z","updated_at":"2025-04-12T10:53:29.555Z","avatar_url":"https://github.com/nirnejak.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  Next.js TypeScript SaaS Starter\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A modern Next.js starter template with TypeScript, Tailwind CSS, and more\n\u003c/p\u003e\n\n---\n\n## Features\n\n- ⚡️ Next.js 15 with App Router\n- 🎨 Tailwind CSS with Typography plugin\n- 🔒 NextAuth.js (Auth.js) for authentication\n- 🗄️ Drizzle ORM with NeonDB integration\n- 📝 MDX support for content\n- 🎭 Framer Motion for animations\n- 🔔 Sonner for toast notifications\n- 🎵 use-sound for sound effects\n- 🎨 Akar Icons for beautiful icons\n- 🔍 SEO optimized(with metadata and schema.org)\n- 🎯 TypeScript for type safety\n- 🧹 ESLint + Prettier for code quality\n- 🐶 Husky for git pre commit\n- 🚀 View transitions for smooth page navigation\n\n## Project Structure\n\n```\n├── app/                 # Next.js app directory\n├── components/          # React components\n│   ├── atoms/          # Basic UI components\n│   └── ...\n├── hooks/              # Custom React hooks\n├── styles/             # Global styles\n├── utils/              # Utility functions\n├── public/             # Static assets\n├── assets/             # Project assets\n└── ...\n```\n\n## Included\n\n- `not found page` page to handle 404 routes\n- `config.ts` container site information to be used for seo and schema.org data\n- `seo.ts` util to generate SEO metadata and schema.org\n- `manifest.json` for site info\n- `classnames` util for easily managing classes\n- `components/atoms/Button.tsx` a button component with variants\n- `hooks/useClickOutside` hook to check if user clicked outside the element\n- `hooks/useModal` hook to create modals, which can close with esc\n- `hooks/useDynamicHeight`\n- Drizzle ORM for database(with NeonDB)\n- NextAuth(or Auth.js) for Auth\n\n## Additional Packages Used\n\n- next-view-transitions - for page smooth transitions\n- Tailwind CSS - for styling(with typography plugin)\n- Framer Motion - for animations\n- Akar Icons - library for rounded icons\n- Sonner - for toast messages\n- use-sound - for using sounds\n- Class Variance Authority - for type-safely managing class names\n\n## Getting Started\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/nirnejak/nextjs-typescript-saas.git\ncd nextjs-typescript-saas\n```\n\n2. Install dependencies:\n\n```bash\nbun install\n```\n\n3. Copy the environment variables:\n\n```bash\ncp .env.example .env\n```\n\n4. Update the environment variables in `.env` with your configuration.\n\n5. Setup pre-commit hooks:\n\n```bash\nbun run prepare\n```\n\n6. Start the development server:\n\n```bash\nbun run dev\n```\n\n## Available Scripts\n\n**Install Dependencies**\n\n```bash\nbun install\n```\n\n**Setup Pre-commit**\n\n```bash\nbun run prepare\n```\n\n**Start Development Server**\n\n```bash\nbun run dev\n```\n\n**Lint all the files**\n\n```bash\nbun run lint\n```\n\n**Format all files with Prettier**\n\n```bash\nbun run format\n```\n\n**Check TypeScript issues**\n\n```bash\nbun run type-check\n```\n\n**Generate Database Migrations**\n\n```bash\nbun run db:generate\n```\n\n**Run Database Migrations**\n\n```bash\nbun run db:migrate\n```\n\n**Push Database Migrations**\n\n```bash\nbun run db:push\n```\n\n**Start Database Admin**\n\n```bash\nbun run db:studio\n```\n\n**Build for Production**\n\n```bash\nbun run build\n```\n\n**Start Production Server**\n\n```bash\nbun start\n```\n\n## Configuration\n\nUpdate the `config.ts` file with your site's information:\n\n```typescript\nconst config = {\n  baseUrl: \"https://your-site.com\",\n  appName: \"Your App Name\",\n  appDescription: \"Your app description\",\n  creator: \"Your Name\",\n  authorName: \"Your Name\",\n  authorUrl: \"Your URL or Email\",\n  keywords: [\"your\", \"keywords\"],\n  twitterSite: \"@your-site\",\n  twitterCreator: \"@your-username\",\n}\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\nMade with ❤️ by [Jitendra Nirnejak](https://github.com/nirnejak)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirnejak%2Fnextjs-typescript-saas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirnejak%2Fnextjs-typescript-saas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirnejak%2Fnextjs-typescript-saas/lists"}