Muhammad Taufik Tirtosudiro

Personal Portfolio Website

Website with file-based content management system deployed as static website built using Hugo framework.

Project Avatar

Quick Facts

My personal portfolio website built to showcase all the things that I have done over the course of my professional life.

Project Requirements

  • Short project cycle
  • Must be able to be deployed as static website
  • Lightweight content management support

Technologies

  • Hugo
  • HTML
  • SCSS

Overview

They say that these days, having an impressive portfolio website is essential for a software engineer. Especially if you are trying to be noticed. Lately it dawned on me that all this time working as an engineer, I never had one. As at the time I was opening myself to new career opportunities, it was the perfect opportunity to create one.

The Challenge

I had several requirements in mind when I set out to create the website:

  • The infrastructure must be able to be deployed quickly

    Since at the time I was working on several projects, I didn’t want to spend too much time working on the infrastructure side of the website. The basic site needs to be up and running as fast as possible. Ideally the process should be as close to deploying a Wordpress website as possible.

  • The website should use as little resource as possible

    I really wanted to take advantage of some low-cost cloud services at the time. If I need to fire up a server for this, I wanted it to be as cheap as possible. Since I have been using Angular to create web apps at the time, I was really spoiled by the fact that Angular compiles to a static website which in turn can be deployed for free on services like Firebase or Netlify.

  • The engine must support some form of content management

    Honestly, creating content directly in HTML would not be the best use of my time. Also, at the time I have been using Joplin app as my notebook app and I really, really liked writing in Markdown format. I wanted the experience to be as close as writing a note in the app.

The Approach and Solution

Initially I looked at some of the easiest ways of creating a portfolio website, to use a service like Wordpress, Squarespace or the like. However, after a quick research I found that the experience seems to be a bit limiting, or at least the knowledge that needs to be acquired for building a site to my liking would not transfer well to other projects.

I considered briefly creating a website from scratch using Angular or Vue, but somehow I felt like that would translate to doing too much work, and I wanted to find a more suitable way for the task. I kept thinking that the process should be as easy as converting a markdown document to a static website, and that was when I found Hugo framework.

image

Hugo is a static website generator, which takes content files in supported formats such as markdown, mixed with layout & templating support using HTML, CSS & Go Template to generate a static website. For the purpose, it’s perfect. It’s like using Vue or Angular without the coding part.

The development on the engine side of things took less than a week. I purchased the very nice DevCard Bootstrap 4 template, created a theme based on it and that’s it. All that’s left was to actually add the content.

The Results

The result is the website that you are looking at right now. The website is served using Firebase Hosting.

One of the main feature of the engine is that the resume and portfolio sections are generated dynamically from the content pages. This saves a lot of work when creating new content.

Hugo’s front matter also allows embedding configuration data on each content, so for example I can omit some of my projects from my portfolio if it gets too long, or I can also put some scoring on the contents to determine which projects to display on the home page.

All in all I am very happy with how the website ends up.

Want me to help with your project?

Or just want to say hi?