A dynamic and visually appealing website designed to showcase my skills as a developer and designer. The website is built using the Next.js framework and features a range of cutting-edge technologies to enhance its functionality and user experience.
-
🔥 Dark and light themes: The website features both dark and light themes this is made easy using Tailwind DarkMode.
-
💎 Content Management System (CMS): The content on the site is managed using StrapiCMS and served using GraphQl. my-portfolio-cms
-
📏 Real-time PDF generation: The site generates a PDF version of my resume in real-time through a separate in-house service. This service is powered by PuppeteerJS, which renders the resume page on a running browser instance and converts it into a PDF file ther returns a file response. my-portfolio-utils
-
⚡ Multilingual support: The website supports multiple languages using next-translate. Currently features engilsh (en) simplified chineese(zh-cn) and swahili(sw-ke). The transalations for zh-cn and sw-ke may not be perfect, they serve as proof of concept.
-
💡 High availability: The production version of the site is hosted on Vercel, while AWS EC2, RDS, and S3 power the CMS and print service that run in separate Docker containers, ensuring maximum uptime.
- 💨 GraphQL
- ☕ NextJS 13
- ✅ ExpressJS
- 🚀 PostgreSQL
- 🐶 PuppeteerJS
- 🧠 StrapiCMS
- ⛴️ [Docker]
- 🔛 [AWS]
To get started with this project, follow these steps:
- Clone the repository:
git clone https://github.com/your-username/my-portfolio-web.git
- Navigate to the project directory:
cd my-portfolio-web
- Install the dependencies: npm install
- Configure the
.env
using the.env.example
. - Start the development server:
npm run dev
- Open your browser and navigate to
http://localhost:3000