A modern blogging platform built with Next.js and Strapi, featuring multi-tenancy support.
- Main site: peak-post.vercel.app
- Sunda version: peak-post-sunda.vercel.app
- 🔐 Google OAuth2 authentication
- 🏢 Multi-tenancy support with different content versions
- 💅 Modern and responsive design
- 🔍 SEO-friendly with Next.js
- 🔒 Secure API integration with Strapi backend
- 📝 Type-safe GraphQL operations with codegen
- Frontend Framework: Next.js (TypeScript)
- Authentication: NextAuth.js
- OAuth Provider: Google
- Backend: Strapi (Backend Repository)
- Deployment: Vercel
next-auth: Authentication system for Next.jsnext: React framework for productiontypescript: Type safety for JavaScriptreact: UI librarytailwindcss: Utility-first CSS framework@graphql-codegen/cli: Generates TypeScript types from GraphQL schema@graphql-codegen/typescript: GraphQL TypeScript code generation@graphql-codegen/typescript-operations: Generates TypeScript types for GraphQL operations
The project implements a multi-tenant architecture where:
- The main site serves the default content
- The Sunda version serves localized content
- Both versions connect to the same Strapi backend with different content structures
-
Clone the repository
git clone https://github.com/your-username/peak-post.git cd peak-post -
Install dependencies
yarn install
-
Set up environment variables
cp .env.example .env.local
Fill in the following variables in
.env.local:NEXT_PUBLIC_STRAPI_URLNEXT_GOOGLE_OAUTH2_CLIENT_IDNEXT_GOOGLE_OAUTH2_CLIENT_SECRETNEXTAUTH_SECRETNEXTAUTH_URL
-
Generate GraphQL types
yarn codegen
-
Start the development server 🔥
yarn dev
The app should now be running at http://localhost:3000
📝 Note: Make sure you also have the backend server running locally.
- Backend Repository: peak-post-strapi