Personal Portfolio
My personal portfolio developed with Astro and TailwindCSS. Let's see why I chose this stack. In the meantime, enjoy the content I regularly publish in the blog section π.
Project Overview: Personal Portfolio
This portfolio is a personal project designed to showcase my work and share my IT knowledge. It highlights my projects with a clear presentation and includes a blog section for publishing technical and educational content.
Completed entirely independently, this project was a particularly enriching experience. It allowed me to assess my technical skills, strengthen my autonomy, and practice thorough project management, in this case for a full end-to-end web project.
One of the key aspects of this project was discovering and adopting a new technical stack and a new production deployment method. Using the Astro framework, along with deployment on Netlify, simplified implementation while allowing me to deepen essential concepts such as best practices, search engine optimization (SEO), and website performance optimization.
Requirements Specification
Functional Part
| Project Goals |
|---|
| Present my profile, skills, and projects professionally. |
| Centralize and share technical knowledge via a blog. |
| Provide an online support platform accessible to recruiters and potential collaborators. |
| Main Features |
|---|
| Home page presenting the portfolio and developer identity. |
| βProjectsβ section detailing achievements (description, technologies, links). |
| βBlogβ section allowing the publication and consultation of technical articles. |
| Dark/Light Mode and multilingual support |
| Responsive design for desktop, tablet, and mobile screens. |
Technical Part
| Technologies Used | |
|---|---|
| Framework | Astro |
| Language | HTML, CSS, TypeScript |
| Deployment | Netlify |
The site architecture is fully based on static site generation (SSG), avoiding server-side rendering (SSR) or client-side rendering (CSR) whenever possible. For features requiring browser interaction, such as LocalStorage, sessions, or cookies, JavaScript is executed directly on the client side.
The site is optimized for maximum performance: fast loading times, lightweight images and resources, and static page generation. SEO is taken into account with semantic tags, complete metadata, and a logical content hierarchy. The code is structured to be readable and maintainable, facilitating future updates or improvements.
Deployment is done on Netlify with a simple and efficient workflow. Content or feature updates can be performed quickly without affecting the site structure. The architecture is designed to facilitate future evolution, addition of new pages or features, while maintaining simple and secure maintenance.
Lighthouse Audit
Audit performed on January 19, 2026: Google Lighthouse
Simplified Project Architecture
The project structure was generated with the following command
tree -L 3 -v -I "node_modules|dist" --dirsfirst
The project architecture provides an overview; some parts are hidden for security and clarity reasons.
βββ public
βΒ Β βββ fonts
βΒ Β βΒ Β βββ Roboto.ttf
βΒ Β βΒ Β βββ RobotoCondensed.ttf
βΒ Β βΒ Β βββ RobotoFlex.ttf
βΒ Β βΒ Β βββ RobotoSlab.ttf
βΒ Β βΒ Β βββ SairaStencilOneRegular.ttf
βΒ Β βββ js
βΒ Β βΒ Β βββ header.js
βΒ Β βΒ Β βββ language.js
βΒ Β βΒ Β βββ navigation.js
βΒ Β βΒ Β βββ search.js
βΒ Β βΒ Β βββ theme.js
βΒ Β βββ favicon-16x16.svg
βΒ Β βββ robots.txt
βββ src
βΒ Β βββ assets
βΒ Β βΒ Β βββ blog
βΒ Β βΒ Β βββ projects
βΒ Β βΒ Β βββ avatar.png
βΒ Β βββ components
βΒ Β βΒ Β βββ article
βΒ Β βΒ Β βββ icons
βΒ Β βΒ Β βββ project
βΒ Β βΒ Β βββ CategoryAside.astro
βΒ Β βΒ Β βββ LanguageModal.astro
βΒ Β βΒ Β βββ OverlayBlur.astro
βΒ Β βΒ Β βββ SearchAside.astro
βΒ Β βΒ Β βββ TagAside.astro
βΒ Β βββ config
βΒ Β βββ content
βΒ Β βΒ Β βββ blog
βΒ Β βΒ Β βββ categories
βΒ Β βΒ Β βββ projects
βΒ Β βΒ Β βββ config.ts
βΒ Β βββ i18n
βΒ Β βΒ Β βββ ui.ts
βΒ Β βΒ Β βββ utils.ts
βΒ Β βββ layouts
βΒ Β βΒ Β βββ footers
βΒ Β βΒ Β βββ headers
βΒ Β βΒ Β βββ BaseLayout.astro
βΒ Β βββ pages
βΒ Β βΒ Β βββ [lang]
βΒ Β βββ styles
βΒ Β βββ global.css
βββ PROJECTS.md
βββ README.md
βββ astro.config.mjs
βββ chart.blog.mdx
βββ package-lock.json
βββ package.json
βββ tsconfig.json