{"id":25463097,"url":"https://github.com/elhard1/next-js-supabase-website-template","last_synced_at":"2025-08-26T09:08:00.439Z","repository":{"id":277942677,"uuid":"933987475","full_name":"Elhard1/next-js-supabase-website-template","owner":"Elhard1","description":"🚀 Production-ready Next.js 14 + Supabase template with authentication, real-time features, and beautiful UI. Includes TypeScript, Tailwind CSS, and shadcn/ui components.","archived":false,"fork":false,"pushed_at":"2025-02-17T05:07:31.000Z","size":114,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-17T12:35:40.824Z","etag":null,"topics":["auth","authentication","boilerplate","database","file-storage","full-stack","nextjs","nextjs14","postgresql","react","real-time","responsive","shadcn-ui","starter","starter-kit","supabase","tailwindcss","template","typescript","web-development"],"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/Elhard1.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-02-17T04:50:07.000Z","updated_at":"2025-04-27T14:08:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"fea635bc-07fb-4252-95cb-a454ec6ef4e8","html_url":"https://github.com/Elhard1/next-js-supabase-website-template","commit_stats":null,"previous_names":["elhard1/next-js-supabase-website-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/Elhard1/next-js-supabase-website-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elhard1%2Fnext-js-supabase-website-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elhard1%2Fnext-js-supabase-website-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elhard1%2Fnext-js-supabase-website-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elhard1%2Fnext-js-supabase-website-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Elhard1","download_url":"https://codeload.github.com/Elhard1/next-js-supabase-website-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Elhard1%2Fnext-js-supabase-website-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272200572,"owners_count":24890816,"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","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["auth","authentication","boilerplate","database","file-storage","full-stack","nextjs","nextjs14","postgresql","react","real-time","responsive","shadcn-ui","starter","starter-kit","supabase","tailwindcss","template","typescript","web-development"],"created_at":"2025-02-18T06:19:32.423Z","updated_at":"2025-08-26T09:08:00.418Z","avatar_url":"https://github.com/Elhard1.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"public/MoonrakerDevelopment.png\" alt=\"Next.js + Supabase Template\" width=\"800\"/\u003e\n  \u003ch1\u003eNext.js 14 + Supabase Website Template\u003c/h1\u003e\n  \u003cp\u003e🚀 Production-Ready • 🔒 Type-Safe • 💎 Feature-Rich\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#demo\"\u003eLive Demo\u003c/a\u003e •\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#supabase-features\"\u003eSupabase Features\u003c/a\u003e •\n  \u003ca href=\"#deployment\"\u003eDeploy\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n- 🏗️ **Next.js 14** - Latest features including App Router and Server Components\n- 🔐 **Supabase** - Production-ready backend with:\n  - 🔑 Authentication (Email, Social Providers)\n  - 📦 Database (PostgreSQL)\n  - 🗂️ Storage (Large Media Files)\n  - 🔄 Real-time Subscriptions\n  - 🚀 Edge Functions\n- 🎨 **Modern Stack**:\n  - 💅 Tailwind CSS - Utility-first CSS\n  - 🧱 shadcn/ui - Re-usable components\n  - 🔍 TypeScript - Type safety\n  - 📱 Responsive Design\n  - 🌐 SEO Optimized\n\n## 🎯 Quick Start\n\n### 1️⃣ Clone \u0026 Install\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/next-js-website-template.git\n\n# Navigate to the project\ncd next-js-website-template\n\n# Install dependencies\nnpm install\n```\n\n### 2️⃣ Set Up Supabase\n\n1. Create a Supabase project at [supabase.com](https://supabase.com)\n2. Copy your project credentials\n3. Set up environment variables:\n```bash\ncp .env.example .env.local\n```\n4. Fill in your Supabase credentials in `.env.local`\n\n### 3️⃣ Run Development Server\n\n```bash\nnpm run dev\n```\n\nVisit [http://localhost:3000](http://localhost:3000) 🎉\n\n## 🔥 Supabase Features\n\n### Authentication\n\n```typescript\n// Sign Up\nconst { data, error } = await supabase.auth.signUp({\n  email: 'user@example.com',\n  password: 'password123'\n})\n\n// Sign In\nconst { data, error } = await supabase.auth.signInWithPassword({\n  email: 'user@example.com',\n  password: 'password123'\n})\n\n// Social Auth (GitHub example)\nconst { data, error } = await supabase.auth.signInWithOAuth({\n  provider: 'github'\n})\n```\n\n### Database Operations\n\n```typescript\n// Create\nconst { data, error } = await supabase\n  .from('todos')\n  .insert({ task: 'Buy milk', user_id: user.id })\n\n// Read\nconst { data, error } = await supabase\n  .from('todos')\n  .select('*')\n  .eq('user_id', user.id)\n\n// Update\nconst { data, error } = await supabase\n  .from('todos')\n  .update({ completed: true })\n  .eq('id', todoId)\n\n// Delete\nconst { data, error } = await supabase\n  .from('todos')\n  .delete()\n  .eq('id', todoId)\n```\n\n### Real-time Subscriptions\n\n```typescript\n// Subscribe to changes\nconst subscription = supabase\n  .channel('todos')\n  .on('postgres_changes', \n    { event: '*', schema: 'public', table: 'todos' },\n    (payload) =\u003e {\n      console.log('Change received!', payload)\n    }\n  )\n  .subscribe()\n```\n\n### File Storage\n\n```typescript\n// Upload file\nconst { data, error } = await supabase.storage\n  .from('avatars')\n  .upload('public/avatar1.png', file)\n\n// Download file\nconst { data, error } = await supabase.storage\n  .from('avatars')\n  .download('public/avatar1.png')\n```\n\n## 📁 Project Structure\n\n```\n├── src/\n│   ├── app/                 # App Router Pages\n│   │   ├── (auth)/         # Authentication Routes\n│   │   ├── dashboard/      # Protected Routes\n│   │   └── page.tsx        # Home Page\n│   ├── components/         # React Components\n│   │   ├── ui/            # UI Components\n│   │   └── auth/          # Auth Components\n│   ├── lib/               # Utilities\n│   │   ├── supabase.ts    # Supabase Client\n│   │   └── utils.ts       # Helper Functions\n│   └── types/             # TypeScript Types\n├── public/                # Static Assets\n└── ...config files\n```\n\n## 🔧 Advanced Configuration\n\n### Database Schema\n\n```sql\n-- Example schema for a basic todo app\ncreate table public.todos (\n  id uuid default uuid_generate_v4() primary key,\n  user_id uuid references auth.users not null,\n  task text not null,\n  completed boolean default false,\n  created_at timestamp with time zone default timezone('utc'::text, now())\n);\n\n-- Enable Row Level Security\nalter table public.todos enable row level security;\n\n-- Create policies\ncreate policy \"Users can view their own todos\" \n  on todos for select using (auth.uid() = user_id);\n```\n\n### Storage Buckets\n\n1. Create a new bucket:\n```sql\ninsert into storage.buckets (id, name)\nvalues ('avatars', 'avatars');\n```\n\n2. Set up storage policies:\n```sql\ncreate policy \"Avatar images are publicly accessible\"\n  on storage.objects for select\n  using ( bucket_id = 'avatars' );\n\ncreate policy \"Users can upload their own avatar\"\n  on storage.objects for insert\n  with check ( bucket_id = 'avatars' AND auth.uid() = owner );\n```\n\n## 🚀 Deployment\n\n### Deploy to Vercel\n\n1. Push your code to GitHub\n2. Import your repository to Vercel\n3. Add your environment variables\n4. Deploy!\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/elhard1/next-js-website-template)\n\n### Deploy to Other Platforms\n\n- [Railway](https://railway.app)\n- [Netlify](https://netlify.com)\n- [DigitalOcean](https://digitalocean.com)\n\n## 📚 Learning Resources\n\n- [Supabase Documentation](https://supabase.com/docs)\n- [Next.js Documentation](https://nextjs.org/docs)\n- [Tailwind CSS Documentation](https://tailwindcss.com/docs)\n- [TypeScript Documentation](https://www.typescriptlang.org/docs)\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 💖 Support\n\nIf you find this template helpful, please give it a ⭐️ on GitHub and consider:\n\n- [Following me on GitHub](https://github.com/elhard1)\n- [Reporting issues](https://github.com/yourusername/next-js-website-template/issues)\n- [Contributing to the project](#contributing)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  Made by \u003ca href=\"https://github.com/elhard1\"\u003eelhard1\u003c/a\u003e\n\u003c/div\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felhard1%2Fnext-js-supabase-website-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felhard1%2Fnext-js-supabase-website-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felhard1%2Fnext-js-supabase-website-template/lists"}