mirror of
https://github.com/tiennm99/iammiti99.git
synced 2026-10-03 09:13:32 +00:00
a90cb8126a9f7807ce751b18bf5eddaf413b86f0
Single-page link-in-bio site at config.yaml -> build.js -> _site/index.html. Links flagged with `repo: owner/name` get live star count and last-commit age decoration from the GitHub REST API at build time. Stack: vanilla HTML/CSS output, Node 20 build script (sole dep: js-yaml). Deploy: GitHub Actions Pages artifact, daily cron + push triggers. Architecture inspired by linkyee (MIT); no source code copied. See NOTICE.
iammiti99
Personal link-in-bio page — a self-hosted Linktree alternative for my own use.
Inspired by linkyee (MIT). No source
code is copied; see NOTICE.
How it works
Edit config.yaml → push to main → GitHub Actions runs
build.js (Node 20) → output deploys to GitHub Pages.
Links flagged with repo: owner/name are decorated at build time with
GitHub stars and "last updated N days ago", refreshed daily by a cron run.
Local development
npm install
npm run build # writes _site/index.html
npm run serve # python http.server on :8080
build.js reads GITHUB_TOKEN if set; without it, GitHub API calls are
unauthenticated (60 req/h, plenty for a few links).
One-time GitHub Pages setup
- Settings → Pages → Source: GitHub Actions.
- (Optional) Settings → Pages → Custom domain: enter your domain and add
a
src/CNAMEfile with the same value (build.jscopies it through).
After that, every push to main (and the daily 00:00 UTC cron) deploys.
Project layout
config.yaml # site content — edit this
src/
template.html # HTML template with ${var} placeholders
styles.css # mobile-first, light + dark via prefers-color-scheme
images/ # avatar etc.
build.js # ~70 LOC, Node 20, only dep is js-yaml
.github/workflows/deploy.yml
_site/ # build output (gitignored)
License
Description
Personal link-in-bio page — a self-hosted Linktree alternative built with Hugo and the in-repo bonsai theme.
Readme
Apache-2.0
1.5 MiB
0 Stars
1 Watchers
0 Forks
Languages
HTML
54.2%
CSS
32.2%
Shell
8.9%
JavaScript
4.7%