{"id":28520220,"url":"https://github.com/ysskrishna/nextjs-supabase-starter","last_synced_at":"2026-04-02T18:53:10.474Z","repository":{"id":296987034,"uuid":"993717452","full_name":"ysskrishna/nextjs-supabase-starter","owner":"ysskrishna","description":"A modern Library Management System built with Next.js 15 and Supabase, featuring a beautiful UI powered by Radix UI components and Tailwind CSS.","archived":false,"fork":false,"pushed_at":"2025-06-03T13:40:01.000Z","size":2751,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-03T19:30:51.669Z","etag":null,"topics":["authentication","jwt","nextjs","radix-ui","react-hook-form","starter-template","supabase","supabase-auth","tailwindcss","ysskrishna","zod"],"latest_commit_sha":null,"homepage":"https://ysskrishna-nextjs-supabase-starter.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/ysskrishna.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,"zenodo":null}},"created_at":"2025-05-31T11:19:42.000Z","updated_at":"2025-06-03T13:38:37.000Z","dependencies_parsed_at":"2025-06-03T19:30:58.307Z","dependency_job_id":"02fbbc26-cfb8-4ce9-a93a-5620bcdd7f98","html_url":"https://github.com/ysskrishna/nextjs-supabase-starter","commit_stats":null,"previous_names":["ysskrishna/nextjs-supabase-starter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ysskrishna/nextjs-supabase-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysskrishna%2Fnextjs-supabase-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysskrishna%2Fnextjs-supabase-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysskrishna%2Fnextjs-supabase-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysskrishna%2Fnextjs-supabase-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysskrishna","download_url":"https://codeload.github.com/ysskrishna/nextjs-supabase-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysskrishna%2Fnextjs-supabase-starter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263156702,"owners_count":23422481,"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":["authentication","jwt","nextjs","radix-ui","react-hook-form","starter-template","supabase","supabase-auth","tailwindcss","ysskrishna","zod"],"created_at":"2025-06-09T07:00:44.950Z","updated_at":"2025-12-30T22:42:06.512Z","avatar_url":"https://github.com/ysskrishna.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Next.js](https://img.shields.io/badge/Next.js-15.2.4-black.svg)](https://nextjs.org/)\n[![React](https://img.shields.io/badge/React-19-blue.svg)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5-blue.svg)](https://www.typescriptlang.org/)\n[![Supabase](https://img.shields.io/badge/Supabase-latest-green.svg)](https://supabase.com/)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3.4.17-38B2AC.svg)](https://tailwindcss.com/)\n[![Radix UI](https://img.shields.io/badge/Radix_UI-1.0.0-black.svg)](https://www.radix-ui.com/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# NextJS Supabase Starter\n\nA modern Next.js starter template with Supabase integration, featuring a beautiful UI powered by Radix UI components and Tailwind CSS.\n\n## Demo\n\n- **URL:** [https://ysskrishna-nextjs-supabase-starter.vercel.app/](https://ysskrishna-nextjs-supabase-starter.vercel.app/)\n- **Email:** `demo@gmail.com`\n- **Password:** `demopassword`\n\n## Features\n\n- 🔐 Authentication system with Supabase\n- 📱 Responsive design with Tailwind CSS\n- 🎨 Modern UI components from Radix UI\n- 📊 Dashboard interface\n- 🎯 TypeScript support\n- 🌓 Light/Dark theme support with system preference detection\n- 🔄 Automatic route protection and redirections\n\n## Authentication Flow\n\nThe application implements a complete authentication flow with the following features:\n\n- Protected routes with automatic redirections\n- Session management using Supabase Auth\n- Google OAuth integration\n- Persistent authentication state\n- Secure token handling\n\nFor detailed setup instructions, please refer to the [Authentication Guide](./docs/AUTHENTICATION.md) which includes:\n- Supabase project setup\n- Google OAuth configuration\n- Environment variables setup\n- Authentication middleware configuration\n\n\n## Screenshots\n\n### Landing Page\n\u003cdiv style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\"\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eLight Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/landing.png\" alt=\"Landing Page Light Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eDark Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/landing-dark.png\" alt=\"Landing Page Dark Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n### SignUp Page\n\u003cdiv style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\"\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eLight Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/signup.png\" alt=\"SignUp Page Light Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eDark Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/signup-dark.png\" alt=\"SignUp Page Dark Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n### SignIn Page\n\u003cdiv style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\"\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eLight Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/signin.png\" alt=\"SignIn Page Light Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eDark Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/signin-dark.png\" alt=\"SignIn Page Dark Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n### Dashboard Page\n\u003cdiv style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\"\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eLight Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/dashboard.png\" alt=\"Dashboard Page Light Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ch4\u003eDark Theme\u003c/h4\u003e\n    \u003cimg src=\"/media/dashboard-dark.png\" alt=\"Dashboard Page Dark Theme\" width=\"400\"/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n## Tech Stack\n\n- **Framework:** Next.js 15\n- **Database \u0026 Auth:** Supabase\n- **Styling:** Tailwind CSS\n- **UI Components:** Radix UI\n- **Form Handling:** React Hook Form\n- **Validation:** Zod\n- **Charts:** Recharts\n- **Icons:** Lucide React\n- **Date Handling:** date-fns\n\n## Getting Started\n\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   npm install\n   # or\n   pnpm install\n   ```\n3. Set up your Supabase project and add the environment variables\n4. Run the development server:\n   ```bash\n   npm run dev\n   # or\n   pnpm dev\n   ```\n\n## Available Scripts\n\n- `npm run dev` - Start development server\n- `npm run build` - Build for production\n- `npm run start` - Start production server\n- `npm run lint` - Run ESLint\n\n## Project Structure\n\n```\n├── app/              # Next.js app directory\n│   ├── auth/        # Authentication routes\n│   ├── dashboard/   # Dashboard pages\n│   ├── signin/      # Sign in page\n│   └── signup/      # Sign up page\n├── components/      # Reusable UI components\n├── lib/            # Utility functions and configurations\n├── public/         # Static assets\n└── styles/         # Global styles\n└── docs/           # Documentation\n    └── AUTHENTICATION.md  # Authentication setup guide\n```\n\n## Dependencies\n\nThe project uses a comprehensive set of modern dependencies including:\n\n- Radix UI components for accessible UI elements\n- React Hook Form for form handling\n- Zod for schema validation\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis template is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysskrishna%2Fnextjs-supabase-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysskrishna%2Fnextjs-supabase-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysskrishna%2Fnextjs-supabase-starter/lists"}