{"id":17609943,"url":"https://github.com/vixalien/annex","last_synced_at":"2026-04-18T11:32:09.874Z","repository":{"id":46869790,"uuid":"515211518","full_name":"vixalien/annex","owner":"vixalien","description":"An alternative site to manage GNOME extensions","archived":false,"fork":false,"pushed_at":"2022-07-18T16:29:31.000Z","size":317,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-10T15:14:37.297Z","etag":null,"topics":["annex","deno","extensions","fresh","gnome","gnome-shell-extensions"],"latest_commit_sha":null,"homepage":"https://annex.deno.dev","language":"TypeScript","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/vixalien.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}},"created_at":"2022-07-18T14:09:53.000Z","updated_at":"2022-07-19T18:54:54.000Z","dependencies_parsed_at":"2022-09-23T07:23:09.928Z","dependency_job_id":null,"html_url":"https://github.com/vixalien/annex","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vixalien/annex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vixalien%2Fannex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vixalien%2Fannex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vixalien%2Fannex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vixalien%2Fannex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vixalien","download_url":"https://codeload.github.com/vixalien/annex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vixalien%2Fannex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31966949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["annex","deno","extensions","fresh","gnome","gnome-shell-extensions"],"created_at":"2024-10-22T17:24:14.112Z","updated_at":"2026-04-18T11:32:09.853Z","avatar_url":"https://github.com/vixalien.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Annex\n\nA site that provides GNOME Shell Extensions in a fashion similar to the\n[GNOME Apps](https://apps.gnome.org) website.\n\n![Screenshot](./.github/screenshot.png)\n\nEven if this project was made to make the extensions experience more smooth and\ngood-looking, the official\n[GNOME Extensions website](https://extensions.gnome.org) is probably the one you\nare looking on as it actually works, and is operated by the GNOME team.\n\nThis project has a few quirks:\n\n1. It uses Deno (and Typescript hence)\n2. It uses the [Fresh](https://fresh.deno.dev) next-gen web framework\n3. It uses _plain CSS_ (no SASS and/or transpilers).\n4. It accesses the GNOME Extensions API (undocumented, I don't know if it is\n   even allowed to use the API but Extension Manager uses it so...)\n5. **Does not work.** This is a demo at least for now. It can't manage or\n   install extensions (yet, until I figure out how to use the GNOME Extensions\n   Add-on bindings)\n\n### TODO\n\nIf you are looking to contribute, here are a few things that would like to be\nimplemented:\n\n1. Actually install apps.\n2. Add documentation (on how to use site)\n3. Add a large \u0026 legible warning that this site is not operated, endorsed and\n   whatnot by the GNOME team (yet, I hope).\n4. Update the site's meta (favicon and title)\n5. Add metadata for GNOME extension pages (og-title, twitter-description) for\n   SEO\n6. Add a footer (at the bottom of pages)\n7. Add Dark mode\n\n### Proxy\n\nThe aforementioned undocumented GNOME extensions API only accepts HTTPS requests\nfrom `https://extensions.gnome.org`. This means that in a browser, you can't\nmake requests to the API endpoints because of security reasons (CORS). This\nmeans that all API calls have to be made through a simple proxy (located at\n`lib/api/proxy`) and all this does is spoof the request and change the `Origin`\nheader to `https://extensions.gnome.org/` to allow for the API endpoint to give\nus results.\n\nAnnex can also use a dedicated proxy that serves the GNOME extensions website\nwithout the CORS limitations by setting the `ANNEX_PROXY_URL`.\n\nThere are no plans on how it will work in the future but the proxy is a very\ngood solution (and I hope, legal).\n\n### Usage\n\nThe project uses Deno (a Javascript runtime/environment, similar to Node \u0026 Bun\nbut cooler 🦕) so it requires it to be installed. You can install Deno following\ninstructions on the [deno.land website](https://deno.land).\n\nYou need to provide the `URL` environment variable, so that it can do requests\nto the API proxy.\n\nStart the project:\n\n```\ndeno task start\n```\n\nThis will watch the project directory and restart as necessary.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvixalien%2Fannex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvixalien%2Fannex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvixalien%2Fannex/lists"}