An open API service indexing awesome lists of open source software.

https://github.com/rockykusuma/observatory-github-sky

GitHub trending reimagined as an astronomical night sky โ€” the brightest, fastest-rising repos charted as stars, ranked by stars/day, back to 2008. React + Vite + Framer Motion.
https://github.com/rockykusuma/observatory-github-sky

astronomy data-visualization framer-motion frontend generative-art github-api github-trending react vite

Last synced: 1 day ago
JSON representation

GitHub trending reimagined as an astronomical night sky โ€” the brightest, fastest-rising repos charted as stars, ranked by stars/day, back to 2008. React + Vite + Framer Motion.

Awesome Lists containing this project

README

          

# ๐Ÿ”ญ The Observatory

**GitHub's night sky, charted daily.** Every GitHub star is a real star. Watch tonight's brightest repositories, and point the telescope at any month since 2008.

The Observatory reimagines GitHub trending as an astronomical instrument: the fastest-rising repos become the brightest stars in tonight's sky, ranked by stars gained per day and cross-referenced against archival queries over repositories born in each window.

## Features

- **Hero champion** โ€” tonight's brightest repo, front and center.
- **Daily Almanac** โ€” the day's headline trending signal at a glance.
- **Ask the Sky** โ€” natural-language search: "rust cli tools >1k stars this year" becomes a GitHub catalog query via a zero-cost rule-based parser (languages, star ranges, time windows, activity, sort). Shows "understood as" chips so you see exactly how it read you.
- **Sky Chart** โ€” GitHub's official trending signal (stars gained per day).
- **Supernova Watch** โ€” transient-event survey: tonight's star gain vs. each repo's lifetime daily average. Spikes of 10ร—+ get a proper designation (SN 2026-07-12A), a ฮ”-magnitude (2.5ยทlogโ‚โ‚€ ratio), and a classification from Flare to Type Ia.
- **Newborn Stars** โ€” the brightest repositories born in the current window.
- **Deep Field** โ€” long-exposure hidden-gem survey: repos under 400 stars and 90 days old, scored on fork depth, push freshness, and issue traffic โ€” signal before luminosity.
- **The Telescope** โ€” an archive you can point at any month back to 2008.
- **This Night in History** โ€” for every year since 2008, the brightest repo born within three nights of tonight's date.
- **The Spectrograph** โ€” point at any `owner/repo` (or GitHub URL): a cumulative star-history curve sampled from the stargazer record, a stellar classification (Protostar โ†’ Hypergiant), lifetime star velocity, and vital signs.
- **Eclipse Watch** โ€” head-to-head repo rivalries (Vue vs React, PyTorch vs TensorFlow, Deno vs Node, Zed vs VS Code, or any `owner/repo` pair) with a proportional gap bar, lifetime star velocity, and an extrapolated "eclipse date."
- **Your Sky** โ€” enter any GitHub username: their repos drawn as a personal constellation, combined luminosity, brightest star, and vitals.
- **Observer's Log** โ€” a nightly journal entry composed (templated, no LLM) from the night's data: champion, total sky brightening, dominant language.
- **Planetarium mode** โ€” a living sky: a cinematic Night Tour flies through tonight's top five, then hands over a zoomable, pannable 3D dome (wheel/pinch/drag) where depth = repo mass, labels resolve as you zoom, supernovae detonate on the biggest gainers, and shooting stars are real newborn repos.
- **Sky Atlas** โ€” sticky scroll-spy navigation across all instruments.
- **Field Notes** โ€” an engineer's notebook overlay (โœŽ in the masthead) explaining every trick: stargazer-record sampling, the NL parser, supernova math, gem scoring, the trending proxy, cache-as-weather.
- **Deep links** โ€” every instrument is shareable: `?ask=rust+cli+tools`, `?scope=owner/repo`, `?sky=2015-03`, `?vs=a/b,c/d`, `?observer=username`.
- **Bring your own token** โ€” optional GitHub PAT (โš™ in the masthead, localStorage only, no scopes needed) lifts rate limits from 10โ†’30 search req/min and 60โ†’5000 core req/hr.

## Tech

- [React 19](https://react.dev/) + [Vite](https://vite.dev/)
- [Framer Motion](https://www.framer.com/motion/) for animation
- Client-side `localStorage` caching to respect GitHub's unauthenticated search rate limit (10 req/min)

## Data sources

Rankings blend the [GitHub Search API](https://docs.github.com/en/rest/search) with the trending page at [github.com/trending](https://github.com/trending). GitHub's trending page has no public API and blocks browser CORS, so it is proxied through the Vite dev server (see `vite.config.js`). In production, replicate this with a serverless rewrite (Vercel/Netlify).

## Development

```bash
npm install
npm run dev # http://localhost:5173
npm run build # production build โ†’ dist/
npm run preview # preview the production build
```

## Deployment note

The `/gh-trending` proxy defined in `vite.config.js` only runs in the Vite dev server. To deploy, add an equivalent rewrite at your host:

- **Vercel** โ€” a `vercel.json` rewrite from `/gh-trending/:path*` to `https://github.com/trending/:path*`.
- **Netlify** โ€” a `netlify.toml` redirect with `status = 200` (proxy) for the same path.

---

*Built under clear skies.*