{"id":29179818,"url":"https://github.com/danielzotti/new.danielzotti.it","last_synced_at":"2026-04-09T02:05:21.876Z","repository":{"id":162838064,"uuid":"636312165","full_name":"danielzotti/new.danielzotti.it","owner":"danielzotti","description":"My personal website (version 2023) with curriculum, skills, portfolio and blog. Developed in NextJS 14, PWA and SSG + Docker + GitLab CI","archived":false,"fork":false,"pushed_at":"2025-03-06T12:40:28.000Z","size":54558,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"github","last_synced_at":"2025-03-06T13:28:02.070Z","etag":null,"topics":["blog","gitlab-ci","nextjs","pwa","react","scss","ssg","ssr","typescript","website"],"latest_commit_sha":null,"homepage":"https://www.danielzotti.it","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielzotti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-05-04T15:03:19.000Z","updated_at":"2025-03-06T12:40:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"52022c11-b81f-42ac-919e-03ebfdb53301","html_url":"https://github.com/danielzotti/new.danielzotti.it","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danielzotti/new.danielzotti.it","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielzotti%2Fnew.danielzotti.it","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielzotti%2Fnew.danielzotti.it/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielzotti%2Fnew.danielzotti.it/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielzotti%2Fnew.danielzotti.it/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielzotti","download_url":"https://codeload.github.com/danielzotti/new.danielzotti.it/tar.gz/refs/heads/github","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielzotti%2Fnew.danielzotti.it/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263021821,"owners_count":23401148,"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":["blog","gitlab-ci","nextjs","pwa","react","scss","ssg","ssr","typescript","website"],"created_at":"2025-07-01T19:07:04.658Z","updated_at":"2025-12-30T22:19:46.089Z","avatar_url":"https://github.com/danielzotti.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My personal website \u003c3\n\nThis is the new 2023 version built with [~~NextJs 14~~ NextJs 16](https://nextjs.org/)\nand [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n![Website preview](https://raw.githubusercontent.com/danielzotti/new.danielzotti.it/master/public/static/images/brand/danielzotti-website-preview.png)\n\n## DISCLAIMER\n\nThe website itself (the NextJs code) is really basic, and I haven't spent too much time on that. I write code better\nthan that, I swear! 😇\n\nI also use this website for testing and trying new technologies (which can be found in the next chapter).\n\n**_Please don't try to hack my website ❤️_**\n\n## The technologies I've used:\n\n- NextJs 16 (React 19) ~~NextJs 15~~ ~~NextJs 14~~ ~~NextJs 13.3 (with `app` folder)~~\n- Docker\n- GitLab CI\n- SSR\n- SSG\n- PWA (+ offline mode)\n\n## TL;DR\n\n- Local development (**without docker**) with \"classic\" NextJS CLI\n    - `npm run dev` aka `next dev`\n- Local development: on every change to code, it refreshes\n    - `npm run docker:start:local`\n\n## Steps to create \u0026 run the project\n\n- `nvm use`: it uses the version written in `.nvmrc` file (v20.0.0)\n- `npx create-next-app@latest`\n- `npm install` (see `package.json` for dependencies)\n- `npm run dev`\n- Open [http://localhost:3087](http://localhost:3087)\n\n## Roadmap\n\n- [x] Home page\n    - [x] Introduction\n    - [x] Social links\n    - [x] CV download\n- [x] Sections\n    - [x] Blog\n    - [x] Projects\n    - [x] Selected open source repo from GitHub\n- [x] Font Awesome Icons\n- [x] PWA (only if the user install the PWA)\n- [x] 404 page ~~(workaround using `pages` folder since `app` folder doesn't support it yet)~~\n- [x] Cookie manager\n- [x] Google Analytics\n- [x] CSS variables instead of SCSS\n- [x] Theme dark/light\n- [x] Syntax Highlight for code\n- [x] Sort articles by date ASC\n- [x] Offline status (with desaturated colors and images)\n- [ ] Improve accessibility\n- [ ] Transparent navbar on top in Home Page\n- [ ] Improve Open source section with preview in teasers\n- [ ] Filter articles by category\n- [ ] New UI graphic\n\n## Thanks to\n\n### Dependencies\n\n- [gray-matter](https://github.com/jonschlinkert/gray-matter): read metadata from a Markdown file\n- [markdown-to-jsx](https://www.npmjs.com/package/markdown-to-jsx): convert Markdown to HTML\n- [octokit](https://github.com/octokit): SDK for GitHub API\n- [FontAwesome](https://fontawesome.com/): Icon fonts\n- [qrcode-svg](https://github.com/papnkukn/qrcode-svg): QR Code generator\n- [react-syntax-highlighter](https://github.com/react-syntax-highlighter): Code Syntax Highlighter\n- [next-pwa](https://github.com/shadowwalker/next-pwa): PWA plugin based\n  on [workbox](https://developer.chrome.com/docs/workbox/)\n\n### Blog articles\n\n- [Analytics with Next.js 13](https://dev.to/sdorra/analytics-with-nextjs-13-1hhi)\n- [How to setup Google Tag Manager in a Next 13 App Router website](https://dev.to/valse/how-to-setup-google-tag-manager-in-a-next-13-app-router-website-248p)\n- [Using :root in CSS modules](https://github.com/vercel/next.js/discussions/17089)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielzotti%2Fnew.danielzotti.it","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielzotti%2Fnew.danielzotti.it","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielzotti%2Fnew.danielzotti.it/lists"}