The Portfolio VPS project represents an exciting milestone in my development journey, allowing me to explore and sharpen my skills across the full technology stack. I designed and implemented a containerized portfolio website and API, leveraging modern tools and best practices for web development and deployment.
The project is built on a solid architecture with three main components:
- ASP.NET Core API: A robust backend for managing portfolio data, such as projects, skills, and assets. It integrates PostgreSQL with pgvector to support semantic search capabilities, adding a layer of intelligence to the data retrieval process.
- Next.js Frontend: A responsive and visually polished frontend built with React, TypeScript, and Tailwind CSS. Key features include an AI-powered chat, a project gallery with carousels, a contact page, and support for dark mode.
- Nginx Reverse Proxy: A streamlined reverse proxy that directs traffic to the frontend and serves images efficiently from a shared volume.
This project was not only about creating a portfolio but also about mastering the end-to-end development lifecycle. I configured and orchestrated all components using Docker Compose, ensuring smooth local and production deployments. This included setting up environment variables, managing database connections, and refining the orchestration to optimize resource allocation.
Through this project, I explored various web development and deployment techniques, including semantic search with PostgreSQL's pgvector, and responsive UI design. This journey deepened my understanding of backend API development, frontend frameworks, and server configuration – and was, above all, a fun and enriching experience!
Technologies Used:
- Backend: ASP.NET Core, Entity Framework Core, PostgreSQL (pgvector)
- Frontend: Next.js, React, TypeScript, Tailwind CSS
- Proxy: Nginx
- Deployment and Orchestration: Docker Compose
- Development Tools: Node.js, .NET SDK
The Portfolio VPS project reflects my passion for learning and creating, as well as my ability to tackle complex problems using a diverse range of technologies. It was both a challenging and enjoyable experience that helped me grow as a developer!





