Skip to content

marcomontalbano/cv

Repository files navigation

CV

Netlify Status

Why this repo?

Like always, I love to experiment new stuff and ways of working. When I finally had time to revamp my old website I decided to revamp my cv as well (of course update the information inside it is another story 😂).

A cv should be a pdf that you can send via email, upload on the company's website to apply for a new position or simply print. Instead of using already existing online tools or any word processor, I decided to create a new website that builds into pdf.

Yes, you read that right!

I wanted to play with JAMStack approach, so why not build and publish a fully static website pdf with every git push?

Development

I'm using Decap CMS (formerly Netlify CMS) to make instant changes to the pdf. I configured Decap CMS to store all data in .json format inside the ./content folder.

I created this script netlify-cms-json-exporter which is able to read all data from json and create a javascript object resolving relations between different collections. This object is then used by Preact CLI to pre-render the data.

Last but not least, I'm using GitHub Actions to build and publish the pdf. I choose the macos image because it makes the pdf text selectable and searchable without any effort.

Hosting

If you like this approach you can host your own cv.

Deploy to Netlify

After the deploy, you need to enable the Identity feature. You can follow the official documentation "Setup and settings".

Available scripts

npm run dev starts local development

npm run build:cv ✨ builds website to pdf

Local Development

You can connect Decap CMS to a local Git repository, instead of working with a live repo.

  1. Navigate to a local Git repository configured with the CMS.
  2. Run npx decap-server from the root directory.
  3. Add the top-level property local_backend: true configuration to your config.yml.
  4. Run npx serve src/static/admin from the root directory.