# CheckMyGit: a GitHub profile rendered as a shareable portfolio

> CheckMyGit is a SvelteKit application that takes a GitHub username and produces a portfolio page from that profile, in one of three layouts, with a contribution heatmap, language breakdown and pinned projects, and it can export the result as a PNG. It needs no sign-up, and a GitHub token is optional but recommended to stay clear of rate limits.

**whoisyurii/checkmygit** — Visualize and share your Github profile in seconds!

- Repository: https://github.com/whoisyurii/checkmygit
- Website: https://checkmygit.com
- Stars: 644 · Forks: 38
- Language: Svelte
- License: MIT
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/whoisyurii-checkmygit

## A profile page that renders itself from GitHub

CheckMyGit turns a GitHub profile into a portfolio page, and the premise is that there should be nothing to maintain. The pitch in the documentation is instant generation, enter a GitHub username and get a portfolio. The stack is SvelteKit 2 with Svelte 5 Runes, styled with Tailwind CSS 4, deployed on Cloudflare Pages, with html-to-image handling the export. Two properties matter more than the rest. There is no auth required, the project is fully open source and there is no sign-up, so a page is reachable by URL alone. And the data comes from GitHub itself, with the GraphQL API as the primary path and a REST fallback, which means the contribution heatmap, the language breakdown and the pinned repositories all reflect the real profile rather than a manually maintained list. The homepage is checkmygit.com, the licence is MIT, and the repository describes itself as a Svelte project with runes, Tailwind and TypeScript.

## Three templates, one shareable URL

The layout choice is a URL parameter rather than a setting inside the app. There are three templates, a GitHub-style sidebar, a Bento grid and a Minimal CV layout, and the shared form is checkmygit.com/username?template=bento, so the template is part of the link you send to someone. That single decision carries a lot of weight for a tool whose output is meant to be pasted into a README, a forum post or a social profile. The visual content the templates draw on is a full-year contribution heatmap, a donut chart of the language breakdown, and the pinned projects. Export is handled by the html-to-image library, which rasterises the rendered page into a PNG that can be downloaded. A raster image is a deliberate constraint rather than a limitation of the library, and it has an interesting side effect: a PNG of a heatmap is the kind of asset that many platforms will display at a fixed size, where a live page needs a browser to show anything.

## A token is optional, and the rate limits are the reason

The data source is the GitHub API, and the environment example is explicit about the token: it is optional but recommended for full features, created at github.com/settings/tokens, with the read:user scope and public_repo optional for more data. That arrangement is the sensible one for a public profile viewer, since the data it reads is public anyway, and a shared deployment would otherwise burn through the anonymous rate limit the moment a few people used the page. The scope to request is read:user, which is narrower than the classic repo scopes, and the documentation notes that public_repo is only needed for more data. What the app does with the token deserves stating plainly for a self-hosted deployment: the token lives in the environment of the deployed site, so whoever holds the deployment can read whatever the token can read, and the read:user scope is the limit that keeps that small.

## Running it locally in four commands

The getting started section is short enough to follow exactly. Clone the repository and change into it:

```bash
   git clone https://github.com/whoisyurii/checkmygit.git
   cd checkmygit
```

Then install the dependencies:

```bash
   npm install
```

Next, create the environment file from the example that ships with the repository:

```bash
   cp .env.example .env
```

The .env file takes a GITHUB_TOKEN entry, and the example file points at the token settings page for creating one. Finally, start the development server:

```bash
   npm run dev
```

The development server is then reachable at localhost:5173, which is the Vite default that the documentation names. Nothing in the tree asks for a database, a queue or a container. The application is a front end that talks to the GitHub API, and the only persistent state is what you put in the environment file, so a local run and a production deployment differ mainly in that one variable.

## Two SvelteKit adapters, and a build that can be checked before it ships

The package.json shows the shape of a small SvelteKit project with a clear split between the two hosting targets. The adapter-auto package sits in devDependencies for local work, while adapter-cloudflare is a runtime dependency, and the deploy script builds with Vite and then runs wrangler pages deploy against the .svelte-kit/cloudflare output, with a wrangler.toml at the repository root for the Cloudflare configuration. The check script is the one to run in CI, since it does a svelte-kit sync and then svelte-check against the project tsconfig, and there is a watch variant of the same. Linting is prettier in check mode combined with eslint, and there are plugins for prettier to handle Svelte files and to sort Tailwind classes. The rest of the dependency list is small and tells you what the page actually does: cobe for a three dimensional globe element, qrcode for generating codes, svelte-ionicons for icons, and html-to-image for the export. The TypeScript version is 5.9 and Vite is 7, with Svelte 5 and SvelteKit 2.49 as the framework layer.

## The roadmap is a list of things that are not built yet

Every item on the roadmap is unchecked, and reading it tells you what the project is not yet. Dynamic OG images, using Satori and Resvg for custom social preview cards, are the most interesting absence, because the shareable URL is the product and a link preview would be how that link travels. New templates are planned, namely a developer card, a resume or CV layout and a portfolio grid, so the three current layouts are a starting set rather than a final one. UI polish is listed as a dark and light theme toggle plus animation refinements, which means the templates currently render in a single appearance. PDF export is on the list, so the download you get today is a PNG and a document export is not available. Custom themes with user-defined accent colours and fonts are also planned, which puts the styling firmly in the maintainer's hands rather than the visitor's. The project is early, and the honest way to read the feature list is as a snapshot of a young tool with a clear direction.

## Where a portfolio generator fits, and where it does not

The fit is narrow and genuine. A developer who wants a page that reflects their GitHub activity, updates itself, and can be linked rather than maintained gets exactly that here, with no account, no database and a single environment variable for the optional token. The fit fails in two directions. A designer who wants a portfolio that is a designed artefact rather than a rendering of an existing profile will find three fixed templates and no custom theming yet, so the workarounds are writing the page by hand or forking the repository. And the export is a raster image, which is convenient for a README and useless for a print or PDF application, with PDF export still unchecked on the roadmap. On maintenance, the repository is not archived, the last push was on 2026-09-06, and there are no GitHub releases, while the package version in package.json is still 0.0.1 and marked private, so the application is deployed from source rather than distributed as a package. For a self-hosted instance that is fine, but there is no published artefact to pin.

## Conclusion

CheckMyGit suits developers who want a portfolio page that stays in sync with their GitHub activity without maintaining a second site, since the page is generated from the profile itself and a shareable URL carries the chosen template. It is the wrong tool for a design-led portfolio, because the templates are three fixed layouts rather than a system you can build on, and the export is a PNG rather than a document. Before using it, decide whether the deployment will have a GitHub token, since the environment example marks it as optional but recommended to avoid rate limits, and check the roadmap, where PDF export, custom themes and dynamic social preview images are all still unchecked.

## FAQ

### Do I need a GitHub token to run CheckMyGit?

No, the token is optional but recommended. The environment example marks it as optional but recommended for full features, and the documentation notes it helps avoid rate limits. The scope to request is read:user, with public_repo optional for more data.

### Which templates does CheckMyGit offer and how are they shared?

There are three, a GitHub-style sidebar, a Bento grid and a Minimal CV layout. The template is part of the shared URL, in the form checkmygit.com/username?template=bento, so the choice travels with the link.

### How do I run CheckMyGit locally?

Clone the repository, run npm install, copy the environment file with cp .env.example .env, add a GITHUB_TOKEN entry, and start the development server with npm run dev. The app is then served at localhost:5173.

### Can I export a CheckMyGit portfolio as a PDF?

Not yet. The current export produces a PNG image through html-to-image, and PDF export is still an unchecked item on the project roadmap alongside dynamic OG images, custom themes and a dark and light theme toggle.

### How is CheckMyGit deployed?

It is built with Vite and deployed to Cloudflare Pages with wrangler, using the deploy script that runs the build and then wrangler pages deploy against the .svelte-kit/cloudflare output, with a wrangler.toml at the repository root.

## Sources

- [Issues](https://github.com/whoisyurii/checkmygit/issues)
- [License: MIT](https://github.com/whoisyurii/checkmygit/blob/main/LICENSE)
- [Project website](https://checkmygit.com)
- [README](https://github.com/whoisyurii/checkmygit/blob/main/README.md)
- [whoisyurii/checkmygit on GitHub](https://github.com/whoisyurii/checkmygit)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/whoisyurii-checkmygit
