Back to projects

Project

Portfolio Page

A personal portfolio featuring an AI agent, automated CI/CD, and a modern fullstack architecture

Portfolio Page preview

Why I built this

I wanted to rebuild my portfolio form scratch. My previous site felt lackluster and I wanted something that felt more polished and reflected better what I can do in software development.

Beyond making a nice looking frontend, I also wanted to demonstrate that I can build software with good practices. I’ve built CI/CD pipelines before, but this felt like a good opportunity to include one in a project where it could genuinely be useful. It also means updates to the site can be deployed easier, without any manual step.

I’ve been working with making AI agents for a while now, so this felt like a fitting place to add one and make the site more interactive. This way visitors could ask questions about me, my projects, or my experience.

CI/CD Pipeline

I built a CI/CD pipeline with two separate Github Actions workflows. The first runs whenever a pull request is opened and checks the code by running linting, unit tests, and npm package audits.

The second workflow runs after changes are merged into the main branch and automatically deploys the application to the cloud.

Completed CICD workflow

The AI Agent

The site has an AI assistant that can answer questions about me and my projects.

I built several custom tools that the agent can call whenever it needs information that isnt included in the prompt. I also spent time on prompt engineering using techniques such as few-shot prompting and adding guardrails.

To prevent abuse and keep API usage under control, I implemented rate limiting and input length limits to help protect token usage. These protections are also implemented to the backend to prevent any chance of bypassing the rules.

The third stage puzzle that Mario needed to solve

Techstack

The application is built with Next.js, which acts as the frontend and backend. The AI assistant uses the OpenAI Agents SDK. Testing is done with Vitest, and the CI/CD pipeline runs on Github Actions.