The tenth iteration of my personal website. Built with Astro, Tailwind CSS, Cloudinary and GitHub Actions.
active 2024-04-26 → 2026-06-15 (UTC)
Activity over time
Daily event counts in the loaded window
Line chart, 781 days from 2024-04-26 to 2026-06-15. Pushes: 606 total, peak 36 in a day. Pull requests: 19 total, peak 4 in a day. Issues: 45 total, peak 8 in a day. Comments: 2 total, peak 1 in a day. Stars: 0 total, peak 0 in a day.
- Pushes
- Pull requests
- Issues
- Comments
- Stars
Stars, PRs, issues and forks are under-captured in the later part of this window. GH Archive progressively stopped capturing non-push events during 2026 — −95% or worse by the end of the window. Every series here except Pushes fades for that reason, so a decline above reflects the archive, not this repository. Pushes stay reliable throughout, so read them, and the contributor counts derived from them, as the real signal. Data health has the measurements.
Top contributors
Pushes, PRs, issues, reviews and comments — stars and forks excluded, so this is contribution rather than popularity
| Contributor | Contributions | Pushes | PRs | Comments |
|---|---|---|---|---|
| ooloth | 671 | 606 | 19 | 1 |
| Copilot | 4 | 0 | 0 | 0 |
| claude[bot] | 1 | 0 | 0 | 1 |
Recent activity
Latest issues, pull requests and releases
- Issue#178ooloth2026-06-12 07:17fetchItunesItems Promise.all mapper discards all valid results when one item throws unexpectedly
- Issue#163ooloth2026-06-05 06:14io/tmdb/fetchTmdbList.ts: fetch() calls have no timeout — a stalled TMDB server hangs the site build indefinitely
- Issue#163ooloth2026-06-05 06:14io/tmdb/fetchTmdbList.ts: fetch() calls have no timeout — a stalled TMDB server hangs the site build indefinitely
- Issue#163ooloth2026-06-05 06:14io/tmdb/fetchTmdbList.ts: fetch() calls have no timeout — a stalled TMDB server hangs the site build indefinitely
- Issue#154ooloth2026-06-01 07:57claude.yml agent workflow grants only read permissions — agents cannot push code or open PRs
- Issue#146ooloth2026-05-30 06:44determine-build-notification tests loop over 8 failure cases in one `it` — a failure doesn't name which case broke
- Issue#146ooloth2026-05-30 06:44determine-build-notification tests loop over 8 failure cases in one `it` — a failure doesn't name which case broke
- Issue#146ooloth2026-05-30 06:44determine-build-notification tests loop over 8 failure cases in one `it` — a failure doesn't name which case broke
- Issue#132ooloth2026-05-27 06:51fetchTmdbList skips response.ok check — HTTP errors silently cache an empty result
- Issue#125ooloth2026-05-24 06:39README opens with author perspective instead of a developer-oriented system description
- Issue#118ooloth2026-05-23 07:35Post header shows only publish date — readers can't tell if technical content has been updated
- Issue#115ooloth2026-05-23 06:55`PostList` mock calls `getPosts` as a side-effect to enable call-count assertions — tests verify internal wiring, not rendered output
- Issue#115ooloth2026-05-23 06:55`PostList` mock calls `getPosts` as a side-effect to enable call-count assertions — tests verify internal wiring, not rendered output
- Issue#113ooloth2026-05-22 07:27Single Notion block fetch failure aborts entire RSS feed generation
- Issue#113ooloth2026-05-22 07:27Single Notion block fetch failure aborts entire RSS feed generation
- Issue#113ooloth2026-05-22 07:27Single Notion block fetch failure aborts entire RSS feed generation
- Issue#31ooloth2026-05-21 03:45Fix wrong variable name in README.invariant.md "Documenting Complete Mapping" example
- Issue#105ooloth2026-05-20 07:22Document why iTunes artwork is proxied through Cloudinary fetch in fetchItunesItems
- Issue#98ooloth2026-05-20 06:52fetchTmdbList initializes totalPages to 999 with no guard against a missing first-response value
- Issue#91ooloth2026-05-20 06:16Derive `CloudinaryImageMetadata` from `CloudinaryImageMetadataSchema` to eliminate dual-declaration
- Issue#90ooloth2026-05-20 06:16Add explicit return-type annotations to `NotionBlocks` and `JsonLdScript` exported components
- Issue#90ooloth2026-05-20 06:16Add explicit return-type annotations to `NotionBlocks` and `JsonLdScript` exported components
- Issue#90ooloth2026-05-20 06:16Add explicit return-type annotations to `NotionBlocks` and `JsonLdScript` exported components
- Issue#90ooloth2026-05-20 06:16Add explicit return-type annotations to `NotionBlocks` and `JsonLdScript` exported components
- Issue#89ooloth2026-05-20 06:16Replace duck-type check in `likes-row.tsx` with a discriminated union on `TmdbItem` and `iTunesItem`
Totals cover only the window loaded into ClickHouse and count events, not GitHub's lifetime totals — 0 stars here means stars gained during the window, not the repo's star count.