A Road to the Maintainable CV

I feel like updating one’s CV is a dreaded moment for many.

After going through Word and LaTeX, I settled for a better alternative: HTML.

Going Web-First

Now, mind you, HTML is not necessarily literally just HTML. I am currently recreating my CV with Astro. Astro can build a static page but allows using all the wonders such as JSX, components, or TailwindCSS for the development. I used Astro to build my current CV. Likely, I will shed some more light on Astro in a future post.

However, if you want something simpler, then plain HTML and CSS will do just fine! I built the previous version of my CV using only HTML and CSS. You can still view it at old.cv.tymek.dev.

But what about PDF? I need one to submit it in various forms!

If you checked out my CV, then you might have noticed that I do have a PDF version. That PDF is generated straight from the webpage!

Umm… how?

Have you ever heard of a print option called “Save to PDF”? Now you have. Turning a webpage into a PDF is surprisingly easy!

I created a web-based CV, but the layout is messed up in the print preview!

Let me introduce you to CSS media query @media print and print: modifier in Tailwind. Both of these allow fine-tuning layout for print.

For example, if you support dark mode, the print should stay the same regardless of the active theme. In Tailwind you would add something like dark:print:text-black to have black-on-white text in printing.

Additionally, there are CSS rules such as break-before. These allow controlling page breaks. Of course, this requires picking the right breakpoint and checking if it still makes sense when you update your CV.

There is a caveat, though. The print style slightly differs between browsers. However, I don’t think that’s a real issue. Likely, you are the one to generate the PDF, so that’s something to keep in mind while doing so. If you would like to make a PDF copy available on your web version, then you could, like me, generate the PDF on your end and provide it as a static asset.

Okay, but how do I host it?

Now you are looking for excuses, right? You can effortlessly do so with SourceHut pages, GitHub pages, or Netlify1. These are free of charge and provide you with a subdomain if you don’t have one of your own.


Go now! Make your own web-based CV. Unless you already have one. In that case: why haven’t you bragged about it to me yet…? :-)


  1. Netlify is how I started out with my blog! My post about it: Hosting with Netlify. ↩︎