{"id":15398431,"url":"https://github.com/marcomontalbano/cv","last_synced_at":"2025-07-09T18:09:59.324Z","repository":{"id":40286168,"uuid":"262404588","full_name":"marcomontalbano/cv","owner":"marcomontalbano","description":"This is my curriculum. It's just a PDF but with some cool behind the scenes.","archived":false,"fork":false,"pushed_at":"2025-03-18T20:45:22.000Z","size":19087,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T03:23:10.345Z","etag":null,"topics":["curriculum-vitae","cv","decap-cms","github-actions","github-pages","html2pdf","jamstack","netlify","netlify-cms","preact","typescript"],"latest_commit_sha":null,"homepage":"https://cv.marcomontalbano.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcomontalbano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-08T18:55:16.000Z","updated_at":"2025-03-18T20:45:26.000Z","dependencies_parsed_at":"2024-10-19T05:32:16.085Z","dependency_job_id":null,"html_url":"https://github.com/marcomontalbano/cv","commit_stats":{"total_commits":81,"total_committers":2,"mean_commits":40.5,"dds":"0.024691358024691357","last_synced_commit":"f9ee96fe081ca9c0873d20cc97ec5ee3fb57e06f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomontalbano%2Fcv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomontalbano%2Fcv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomontalbano%2Fcv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomontalbano%2Fcv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcomontalbano","download_url":"https://codeload.github.com/marcomontalbano/cv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249179076,"owners_count":21225487,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curriculum-vitae","cv","decap-cms","github-actions","github-pages","html2pdf","jamstack","netlify","netlify-cms","preact","typescript"],"created_at":"2024-10-01T15:43:43.475Z","updated_at":"2025-04-16T01:20:14.615Z","avatar_url":"https://github.com/marcomontalbano.png","language":"TypeScript","funding_links":[],"categories":["Project"],"sub_categories":[],"readme":"# CV\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/ac59c871-ad29-49c8-818b-09855f851806/deploy-status)](https://app.netlify.com/sites/marcomontalbano-cv/deploys)\n\n## Why this repo?\n\nLike always, I love to experiment new stuff and ways of working.\nWhen 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 :joy:).\n\nA 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.\nInstead of using already existing online tools or any word processor, I decided to create a new \u003cu\u003e*website that builds into pdf*\u003c/u\u003e.\n\nYes, you read that right!\n\nI wanted to play with **JAMStack** approach, so why not build and publish a fully static ~~website~~ pdf with every `git push`?\n\n## Development\n\nI'm using [Decap CMS](https://decapcms.org/) (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.\n\nI created this script [`netlify-cms-json-exporter`](https://github.com/marcomontalbano/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](https://github.com/preactjs/preact-cli) to pre-render the data.\n\nLast but not least, I'm using [GitHub Actions](https://github.com/features/actions) to build and publish the pdf. I choose the `macos` image because it makes the pdf text selectable and searchable without any effort.\n\n### Hosting\n\nIf you like this approach you can host your own cv.\n\n[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/marcomontalbano/cv)\n\nAfter the deploy, you need to enable the Identity feature. You can follow the official documentation \"[Setup and settings](https://docs.netlify.com/visitor-access/git-gateway/#setup-and-settings)\".\n\n### Available scripts\n\n`npm run dev` starts local development\n\n- admin - http://localhost:8081/admin/\n- web - http://localhost:8080\n\n`npm run build:cv` :sparkles: builds website to pdf\n\n### Local Development\n\nYou can [connect Decap CMS to a local Git repository](https://decapcms.org/docs/working-with-a-local-git-repository/), instead of working with a live repo.\n\n1. Navigate to a local Git repository configured with the CMS.\n1. Run `npx decap-server` from the root directory.\n1. Add the top-level property `local_backend: true` configuration to your `config.yml`.\n1. Run `npx serve src/static/admin` from the root directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcomontalbano%2Fcv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcomontalbano%2Fcv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcomontalbano%2Fcv/lists"}