i-remoodle is a Next.js memorial platform with a public experience and an authenticated admin moderation system.
- Public memorial browsing and detail pages.
- Memorial submission flow with optional weekly feature request.
- Tribute, photo, and reaction contributions.
- Admin moderation workflows for memorials, tributes, photos, and feature nominations.
- Weekly featured memorial scheduling and homepage visibility controls.
- Site and section content/settings management from admin.
- Next.js App Router
- React
- TypeScript
- Prisma
- PostgreSQL
- NextAuth (credentials)
- UploadThing
- Install dependencies
npm install- Create local env file
cp .env.example .env.local- Configure env vars in .env.local
- AUTH_SECRET (or NEXTAUTH_SECRET)
- ADMIN_EMAIL
- ADMIN_PASSWORD_HASH (bcrypt hash)
- DATABASE_URL
- DIRECT_URL
- NEXT_PUBLIC_SUPABASE_URL
- NEXT_PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY
- UPLOADTHING_TOKEN
- Generate Prisma client and prepare database
npm run prisma:generate
npx prisma migrate deploy
npm run prisma:seed- Run development server
npm run devThen open http://localhost:3000.
- Admin routes are protected under /admin/*.
- Login validates against AdminProfile in Postgres first, then env bootstrap credentials as fallback.
- Session strategy is JWT via NextAuth.
Generate bcrypt hash example:
node -e "const b=require('bcryptjs'); console.log(b.hashSync('your-admin-password', 12))"- npm run dev
- npm run build
- npm run start
- npm run lint
- npm run prisma:generate
- npm run prisma:migrate
- npm run prisma:seed
Complete architecture and system documentation is in docs.