Personal portfolio & live activity dashboard for Tomer Nosrati (@Nusnus).
Astro 5 · Tailwind CSS v4 · React islands · Bun · GitHub Pages
bun install
make devOr open in VS Code → Cmd+Shift+P → Dev Containers: Reopen in Container.
Site runs at localhost:4321.
| Command | Action |
|---|---|
make dev |
Dev server (localhost:4321) |
make build |
Production build → ./dist/ |
make preview |
Preview production build |
make lint |
ESLint |
make lint-fix |
ESLint with auto-fix |
make format |
Prettier (write) |
make format-check |
Prettier (check only) |
make type-check |
astro check + tsc --noEmit |
make test |
Vitest |
make pre-commit |
All checks: lint, format, type-check, validate-data |
make fetch-data |
Fetch GitHub data (optional GITHUB_TOKEN in .env) |
make clean |
Remove dist/, .astro/, node_modules/ |
Pre-commit checks run automatically via Lefthook. To install the git hook:
bunx lefthook installTo run manually without the hook: make pre-commit.
GitHub API → fetch-data → public/data/*.json → Astro build → GitHub Pages
↑ ↑
every 4h (CI) on push to main
Three GitHub Actions workflows keep the site alive:
- update-data — cron every 4h, fetches profile/repos/activity/contribution data, commits JSON
- deploy — builds and deploys to Pages on every push to
main - lint — type-check, lint, format, tests on PRs and pushes
The site works offline with seed data in public/data/ — no API token required for development.
Add a Markdown file to src/content/blog/:
---
title: My First Post
description: A short description
publishedAt: 2026-03-03
tags: [open-source, celery]
---
Content here.Appears at /blog/<filename>.
- Add unit tests (utilities, data loaders, formatters)