Skip to content

lanray07/pinterestgroupboards

Repository files navigation

Pinterest Group Boards

Production-ready MVP directory built with Next.js App Router, TypeScript, Tailwind CSS, Prisma, PostgreSQL, and server actions.

Features

  • SEO-focused homepage with hero search, popular categories, featured boards, recent boards, and keyword-rich copy
  • Searchable directory at /boards with filters for category, contributor status, activity level, tags, sorting, and pagination
  • Individual board pages at /boards/[slug] with structured data, related boards, join instructions, and CTA links
  • SEO category pages at /category/[slug]
  • Submission form at /submit with pending moderation flow
  • Admin login and dashboard at /admin for approving submissions, featuring/verifying boards, deleting boards, and editing categories
  • Prisma schema and seed script with 36 example boards across key niches
  • robots.txt and dynamic sitemap support
  • Bonus MVP extras: local favorites, newsletter signup UI, claim/report listing links

Tech Stack

  • Next.js 15 App Router
  • React 19
  • TypeScript
  • Tailwind CSS
  • Prisma ORM
  • PostgreSQL
  • Radix primitives with shadcn-style UI components

Getting Started

  1. Install dependencies:
npm install
  1. Copy the environment file:
cp .env.example .env
  1. Update .env with your PostgreSQL connection string and admin credentials.

  2. Generate the Prisma client:

npm run prisma:generate
  1. Run the database migration:
npm run prisma:migrate -- --name init
  1. Seed the database:
npm run prisma:seed
  1. Start the development server:
npm run dev

Environment Variables

DATABASE_URL="postgresql://postgres:postgres@localhost:5432/pinterestgroupboards?schema=public"
NEXT_PUBLIC_SITE_URL="https://pinterestgroupboards.com"
ADMIN_EMAIL="admin@pinterestgroupboards.com"
ADMIN_PASSWORD="change-me"
AUTH_SECRET="replace-with-a-long-random-string"

Deployment

Vercel

  1. Create a PostgreSQL database.
  2. Add the environment variables from .env.example to your Vercel project.
  3. Run the Prisma migration during deploy or before first production release.
  4. Seed the production database if you want the starter listings live on launch.
  5. Deploy the app:
npm run build

Database Notes

  • The app expects PostgreSQL in both development and production.
  • The seed script creates default categories, tags, a seeded admin user, pending submissions, and launch-ready sample boards.
  • Admin password hashing uses SHA-256 for this MVP seed flow. For a production hardening pass, replace it with bcrypt or argon2.

Project Structure

app/
components/
lib/
prisma/
public/

Admin Access

  • Visit /admin/login
  • Sign in with ADMIN_EMAIL and ADMIN_PASSWORD

Notes

  • Favorites are stored in local storage.
  • Newsletter signup is a UI placeholder ready to connect to your ESP of choice.
  • Claim and report listing links currently open email workflows for quick launch readiness.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages