Skip to content
ALL PROJECTS

...MAIN PROJECT... / 02

gitsion

Active

One quiet feed for the repositories you actually follow.

ROLE
Creator & maintainer
YEAR
2026
STATUS
Active
LANGUAGE
Go / TypeScript
GoMongoDBAstroTypeScriptDocker

...OVERVIEW...

What it is

GitHub is good at telling you that something happened. It is less good at letting you read a small, chosen set of repositories as one story. gitsion is a self-hosted answer: add the repositories you care about once, then open a single page that shows what changed across all of them.

The dashboard is intentionally public and read-only. Anyone with the URL can read the feed; only an administrator with ADMIN_TOKEN can add, remove, refresh or sync repositories. That split makes it useful as a team window or a public project radar without turning it into another account system.

The feed

Activity is grouped by project by default, ordered by each repository's latest activity. A second view groups the same events by person, which is useful when you want to know what a collaborator has been doing across repositories. Search and filters — owner, activity type, issue label — combine, and the active filters travel in the URL so a view can be bookmarked or shared.

Issues and pull requests have their own pages with open and closed sections, ten-item pages and show-more buttons. A repository detail page keeps the latest PR, labels, open issues, owner card and repository facts in one place.

How the data stays fresh

  • 01

    Snapshots, not live fan-out

    The Go backend uses the standard library and MongoDB. GitHub's public API is fetched on a schedule and stored as snapshots, so page loads never hit GitHub and a slow API never blocks the dashboard.

  • 02

    Last good data wins

    A failed sync keeps the previous snapshot and surfaces the error. The feed shows stale data with a warning instead of going blank.

  • 03

    Optional token

    A personal access token raises the rate limit and changes the sync interval from 30 to 15 minutes. Private repositories are rejected on purpose, even when the token can see them.

Built to be left alone

Docker Compose runs the frontend, backend and MongoDB with one command. The frontend is Astro SSR with the Node adapter and no UI framework; the interactivity is plain client-side JavaScript. A bulk import script can seed an instance from a GitHub user, organization or JSON list.

SEO is handled end to end: canonical URLs, Open Graph, Twitter cards, JSON-LD, robots.txt and a sitemap covering every tracked repository. Filtered and transient views canonicalize to the clean page and stay out of the index.

Why I built it

I wanted a feed that felt like a reading list, not an inbox. No notifications, no unread counts, no reason to check it every five minutes. Just the repositories I chose, in order, when I choose to look.