A community platform for sharing success stories, tools, and knowledge about "Vibe Coding" - a development methodology focused on developer experience and flow state.
This is a Next.js project bootstrapped with create-next-app.
- 🔐 Authentication: NextAuth.js with email/password, Google OAuth, and GitHub OAuth
- ✉️ Email Verification: Secure email verification for new users
- 🔑 Password Reset: Forgot password and reset functionality
- 📝 Success Stories: Share and discover coding success stories
- 🛠️ Tools Directory: Searchable and filterable tool catalog
- 📚 Glossary: Technical terms and definitions
- 💬 Comments: Engage with the community through comments
- 🌓 Dark Mode: Toggle between light and dark themes
- 📱 Responsive Design: Mobile-first, works on all devices
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- UI Components: Radix UI
- Rich Text: Lexical Editor
- Node.js 18+ and npm/yarn/pnpm
- PostgreSQL database (local or hosted like Neon, Supabase)
- Clone the repository
git clone <repository-url>
cd vibecode-homepage- Install dependencies
npm install
# or
yarn install
# or
pnpm install- Setup environment variables
Copy the example environment file and configure it:
cp .env.example .envEdit .env and add your credentials:
DATABASE_URL: Your PostgreSQL connection stringNEXTAUTH_SECRET: Generate withopenssl rand -base64 32NEXTAUTH_URL: Your app URL (http://localhost:3000 for dev)GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRET: Get from GitHubGOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRET: Get from Google Cloud Console
- Setup the database
# Push the Prisma schema to your database
npx prisma db push
# Generate Prisma Client
npx prisma generate- Run the development server
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
npm run dev- Run development server with Turbopacknpm run build- Build for production (includes database push and Prisma generate)npm start- Start production servernpm run lint- Run ESLint
- Go to GitHub Developer Settings
- Click "New OAuth App"
- Fill in:
- Application name: VibeCode (or your preferred name)
- Homepage URL:
http://localhost:3000(for dev) - Authorization callback URL:
http://localhost:3000/api/auth/callback/github
- Copy the Client ID and generate a Client Secret
- Add to your
.envfile
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Google+ API
- Create OAuth 2.0 credentials
- Add authorized redirect URIs:
http://localhost:3000/api/auth/callback/google - Copy the Client ID and Client Secret
- Add to your
.envfile
In development mode, email verification and password reset links are logged to the console instead of being sent via email. In production, you'll need to integrate an email service like:
- SendGrid
- Resend
- Nodemailer with SMTP
See .env.example for email service configuration options.
This project uses Prisma. When you make changes to the schema:
# Push changes to database
npx prisma db push
# Generate Prisma Client
npx prisma generate
# Open Prisma Studio to view/edit data
npx prisma studiovibecode-homepage/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ │ ├── auth/ # Authentication endpoints
│ │ ├── comments/ # Comments CRUD
│ │ ├── glossary/ # Glossary CRUD
│ │ ├── success-stories/ # Stories CRUD
│ │ ├── tools/ # Tools CRUD
│ │ └── users/ # User endpoints
│ ├── components/ # React components
│ │ ├── ui/ # UI primitives (shadcn)
│ │ ├── marketing/ # Marketing sections
│ │ └── blocks/ # Editor blocks
│ ├── lib/ # Utility libraries
│ ├── forgot-password/ # Password reset request
│ ├── reset-password/ # Password reset page
│ ├── verify-email/ # Email verification
│ ├── signin/ # Sign in page
│ ├── glossary/ # Glossary pages
│ ├── tools/ # Tools pages
│ ├── success-stories/ # Stories pages
│ └── page.tsx # Home page
├── prisma/ # Database schema
├── public/ # Static assets
└── types/ # TypeScript types
To learn more about the technologies used:
- Next.js Documentation - learn about Next.js features and API
- Prisma Documentation - database ORM
- NextAuth.js Documentation - authentication
- Tailwind CSS - styling
- Radix UI - UI components
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out the Next.js deployment documentation for more details.
Before deploying to production:
- ✅ Set all environment variables in Vercel
- ✅ Update
NEXTAUTH_URLto your production domain - ✅ Update OAuth redirect URLs in GitHub/Google to production domain
- ✅ Configure a production database (Neon, Supabase, etc.)
- ✅ Setup email service for verification and password resets
- ✅ Run
npm run buildto test production build locally - ✅ Configure custom domain (optional)
See TODO.md for the project roadmap and planned features.
This project is licensed under the MIT License.
Made by Guiom with love and tons of impostor syndrome ❤️