Crafting my portfolio
Here is a short story about building my portfolio. I wanted to build a personal portfolio website where I can showcase my notable projects, share my thoughts, and connect with the world. Planning and technologies
I wanted to create a simple and minimalistic site. I enjoy working on
UI/UX, so I wanted the site to look good as well. I had to choose a
framework. Something that matched my requirements. I knew that Next.js
comes with too much stuff that I don't need for this kind of project. I
decided to choose
Astro.
In terms of technology stack, I utilized
Astro for the framework,
TailwindCSS for styling, and
Netlify for deployment. For implementing the blog, I used
Markdown and Content Collections.
I decided to use daily builds, utilizing
GitHub Actions and Netlify's Build Hooks.
Implementing the blog
I wanted all blog posts to follow the same schema and syntax, so I decided
to use TypeScript and Zod to make this happen. Here is a picture of the
config.ts file where the magic is happening:
Here is a utility function that filters all the drafts for production. The
function reads the value of the isDraft property for a post. If the value is
true, the post is visible only in the development environment. Future I want to try out all the new features of Astro as they are released.
That's why the project is regularly updated, and new features are added.
The code is available on
GitHub.