{"id":51649721,"url":"https://github.com/rockykusuma/observatory-github-sky","last_synced_at":"2026-07-14T02:32:34.499Z","repository":{"id":369237897,"uuid":"1288597152","full_name":"rockykusuma/observatory-github-sky","owner":"rockykusuma","description":"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.","archived":false,"fork":false,"pushed_at":"2026-07-04T08:04:12.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-04T10:09:10.406Z","etag":null,"topics":["astronomy","data-visualization","framer-motion","frontend","generative-art","github-api","github-trending","react","vite"],"latest_commit_sha":null,"homepage":"https://observatory-github-sky.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rockykusuma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-03T19:03:16.000Z","updated_at":"2026-07-04T08:04:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rockykusuma/observatory-github-sky","commit_stats":null,"previous_names":["rockykusuma/observatory-github-sky"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rockykusuma/observatory-github-sky","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockykusuma%2Fobservatory-github-sky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockykusuma%2Fobservatory-github-sky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockykusuma%2Fobservatory-github-sky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockykusuma%2Fobservatory-github-sky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rockykusuma","download_url":"https://codeload.github.com/rockykusuma/observatory-github-sky/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockykusuma%2Fobservatory-github-sky/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35443979,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-14T02:00:06.603Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astronomy","data-visualization","framer-motion","frontend","generative-art","github-api","github-trending","react","vite"],"created_at":"2026-07-14T02:32:33.173Z","updated_at":"2026-07-14T02:32:34.487Z","avatar_url":"https://github.com/rockykusuma.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔭 The Observatory\n\n**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.\n\nThe 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.\n\n## Features\n\n- **Hero champion** — tonight's brightest repo, front and center.\n- **Daily Almanac** — the day's headline trending signal at a glance.\n- **Ask the Sky** — natural-language search: \"rust cli tools \u003e1k 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.\n- **Sky Chart** — GitHub's official trending signal (stars gained per day).\n- **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.\n- **Newborn Stars** — the brightest repositories born in the current window.\n- **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.\n- **The Telescope** — an archive you can point at any month back to 2008.\n- **This Night in History** — for every year since 2008, the brightest repo born within three nights of tonight's date.\n- **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.\n- **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.\"\n- **Your Sky** — enter any GitHub username: their repos drawn as a personal constellation, combined luminosity, brightest star, and vitals.\n- **Observer's Log** — a nightly journal entry composed (templated, no LLM) from the night's data: champion, total sky brightening, dominant language.\n- **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.\n- **Sky Atlas** — sticky scroll-spy navigation across all instruments.\n- **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.\n- **Deep links** — every instrument is shareable: `?ask=rust+cli+tools`, `?scope=owner/repo`, `?sky=2015-03`, `?vs=a/b,c/d`, `?observer=username`.\n- **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.\n\n## Tech\n\n- [React 19](https://react.dev/) + [Vite](https://vite.dev/)\n- [Framer Motion](https://www.framer.com/motion/) for animation\n- Client-side `localStorage` caching to respect GitHub's unauthenticated search rate limit (10 req/min)\n\n## Data sources\n\nRankings 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).\n\n## Development\n\n```bash\nnpm install\nnpm run dev      # http://localhost:5173\nnpm run build    # production build → dist/\nnpm run preview  # preview the production build\n```\n\n## Deployment note\n\nThe `/gh-trending` proxy defined in `vite.config.js` only runs in the Vite dev server. To deploy, add an equivalent rewrite at your host:\n\n- **Vercel** — a `vercel.json` rewrite from `/gh-trending/:path*` to `https://github.com/trending/:path*`.\n- **Netlify** — a `netlify.toml` redirect with `status = 200` (proxy) for the same path.\n\n---\n\n*Built under clear skies.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frockykusuma%2Fobservatory-github-sky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frockykusuma%2Fobservatory-github-sky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frockykusuma%2Fobservatory-github-sky/lists"}