Personal portfolio website and blog built with Next.js, featuring my talks, a blog, testimonials, open-source contributions, and more.
- Framework: Next.js
- Language: TypeScript
- Styling: Tailwind CSS
- Blog: next/mdx
- CMS: Strapi for storing and collecting testimonials
- Email: Resend for sending emails and contact form
- Authentication: NextAuth.js (for direct admin testimonial submissions)
To get a local copy up and running, follow these simple steps.
- Node.js (v18.x or later recommended)
- npm, yarn, or pnpm
-
Clone the repository:
git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY_NAME.git cd YOUR_REPOSITORY_NAME -
Install dependencies:
npm install # or # yarn install # or # pnpm install
-
Set up environment variables: Create a
.env.localfile by copying the example file:cp .env.example .env.local
Update
.env.localwith your actual API keys and configuration details (e.g., Strapi URL, API token, GitHub OAuth credentials, NextAuth secret). -
Run the development server:
npm run dev # or # yarn dev # or # pnpm dev
Open http://localhost:3000 with your browser to see the result.
The project is organized within the /app directory, following Next.js App Router conventions. Key sections include:
/app/api: API routes, including authentication./app/blog: Blog section./app/testimonials: Testimonials management and display./app/talks: Information about talks./app/oss: Open-source contributions./app/contact: Contact page.- ... and other pages/sections like
about,creator,newsletter.