Library / SDK
ImranR98/apps.obtainium.imranr.dev avatar
ImranR98/apps.obtainium.imranr.dev

apps.obtainium.imranr.dev: a catalogue of Obtainium import configurations

Collection of suggested apps for Obtainium.

607 stars214 forksAstroGPL-3.0

At a glance

What is it?
This is the Astro frontend for a crowdsourced directory of Obtainium app configurations, letting you browse and search app imports, filter by category, install with a one-click obtainium:// link and share links through a /redirect route. It also documents how a project can badge its own page with an Obtainium button without being listed at all.
Who is it for?
apps.obtainium.imranr.dev fits a developer who already uses Obtainium and wants a shared catalogue of import configurations instead of writing each one by hand, and a project owner who wants a direct obtainium:// link on their own download page. It does not fit someone who wants an app store with versioned releases or signed builds, since a configuration is only a recipe for fetching a build from somewhere else, and it does not replace Obtainium itself.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 10 days ago.
What is it written in?
Mainly Astro, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A directory of recipes, not a distribution channel

The repository describes itself as a collection of suggested apps for Obtainium, and the README calls it a crowdsourced app configurations website for Obtainium. The distinction matters more than it first appears. Nothing is published from this site. What it publishes are configurations, which are instructions for Obtainium describing where an application's builds live, how to recognise a new version, and what to do when the upstream project publishes something unexpected. Obtainium is the component that actually fetches and installs; this site is a shared catalogue of recipes for it, at apps.obtainium.imranr.dev. The audience is two-sided. On one side, developers who use Obtainium and would rather pick up a known-good configuration than write one. On the other, projects that want their own build to be installable by Obtainium users, which the badge section covers.

Search, categories, one-click installs and a share redirect

The site features a short list of capabilities. You can browse and search the available app configs, and filter them by category. Installation is one click via obtainium:// protocol links, which is the part that makes the catalogue worth having, since the link hands the configuration straight to an installed Obtainium app rather than sending you to a download page. There is URL redirection for sharing Obtainium links, served at the /redirect route, so a link to a configuration can be shortened or redirected without exposing the underlying import parameters. Multi-language support is also listed. The README links an analytics dashboard under an imranr.dev address, so the site is instrumented and its traffic is measured, which is a small but relevant fact for anyone thinking about whether this is a curated catalogue or a popular one.

Badging your own project without asking for a listing

The most reusable thing in the repository is not the catalogue itself. A section titled Badge your own project explains that any project can link straight to an Obtainium import without a listing in this directory, and it names Delta Chat and PrivacyNotes as projects that already do exactly that on their own download pages. BADGING.md holds the two link forms and a worked example. That is a meaningful design decision. A directory that only works for the projects listed in it is a directory you have to submit to and wait for, and it turns a small maintenance chore into a bottleneck. With a documented badge form, the catalogue becomes a convenience for browsing while the authoritative route for a project remains its own website, which is also where the project controls the version and the release notes. The README also points at CONTRIBUTING.md for how to add new app configs, and the repository carries an APP_CRITERIA.md that presumably defines what qualifies for a listing.

An Astro site with Tailwind, sharp and an icon validator

The stack is deliberately small. The package is named apps-obtainium-imranr-dev, is an ES module project at version 0.0.1, and the runtime dependencies are the Astro framework at 7.3.2, the Node adapter, Tailwind CSS 4 with its Vite plugin, and sharp for image processing, which is what handles the app icons in the catalogue. The scripts show the developer loop:

bash
npm install
npm run dev

with the dev server on http://localhost:8080, and a production build with:

bash
npm run build

There are also astro dev, astro build and astro preview wrapped as dev, build and preview, an astro check typecheck, and two scripts worth noting. The validate script runs a custom icon validator at scripts/validate_icons.js, and validate:check runs the same script in check mode, which is the kind of job a pre-commit hook would run, and there is a .pre-commit-config.yaml in the repository for that. A benchmark script at scripts/benchmark.sh exists as well. The devDependency set is TypeScript 6, the Astro check package and Node types, which is everything needed to typecheck a site of this size and nothing more.

A two-stage container image running the built site

The Dockerfile shows the deployment shape, and it is a conventional multi-stage Node build. The builder stage starts from node:lts-alpine, copies package.json and package-lock.json, runs npm ci with dev dependencies omitted, copies the rest of the tree and runs the build. The runtime stage starts from the same base, copies the dist directory, the public directory and node_modules out of the builder, exposes port 8080 and starts the built server entry point with node dist/server/entry.mjs. The trailing comments give the three commands to build, push and run the image:

bash
# docker run --rm -d -p 8080:8080 --name apps.obtainium.imranr.dev imranrdev/apps.obtainium.imranr.dev

The port matches the dev server, so the local loop and the container behave the same way from the browser's point of view. One detail worth noting for anyone running their own copy: the image is built with npm ci and the dev dependencies omitted at install time, which means the astro check and typecheck tooling is not present in the runtime image. That is the right trade for a serving container, but it also means the typecheck cannot be run against the image, only against a source checkout.

Crowdsourcing, criteria, and what a listing actually promises

Two things in the repository define how the catalogue grows. APP_CRITERIA.md is the file that states what may be listed, and CONTRIBUTING.md explains the mechanics of adding an entry. Neither is quoted in the README, so the exact admission rules are something you have to open and read, and that is the file to read first if you plan to submit something. The nature of a crowdsourced directory has consequences for a user. An entry is a claim made by a contributor, not a curated selection by the project, and the repository's own topic list is a reminder of what these configurations are made of: android, apk, apk-update, app-updater, automation, foss, github, gitlab, obtainium, privacy, repository, security and update-checker. Every one of those words points at the same underlying risk, that an import configuration tells Obtainium where to fetch a file and how to decide it is a new version, so a wrong or stale configuration can point an updater at an unexpected URL. The site reduces that risk by showing the configuration before you use it, but it does not remove it.

Maintenance: a main branch, no releases, and a licence to read

The project is hosted under the ImranR98 organisation, which is also where Obtainium itself lives, and the licence is GPL-3.0 with a LICENSE.md file at the root. There are no GitHub releases, which is consistent with what this repository is. It is a website plus a data set, deployed from the main branch, not a published package, so there is nothing to version in the usual sense and no artefact to pin. The last push was on 2026-10-12. The top-level entries show a normal Astro site with a .github directory, a scripts directory, a public directory, a Dockerfile, a .dockerignore, a .pre-commit-config.yaml, an .agents directory, a .vscode directory, an astro.config.mjs, a tailwind.config.mjs and a tsconfig.json. The interesting part for an adopter is the data, not the code. The catalogue is a set of configurations that people maintain and update as upstream projects change their release process, and the site's value grows with the number of people willing to keep their own entry current. That is the thing to watch, alongside the criteria file, when deciding whether to point your own install flow at this catalogue.

Editorial conclusion

apps.obtainium.imranr.dev fits a developer who already uses Obtainium and wants a shared catalogue of import configurations instead of writing each one by hand, and a project owner who wants a direct obtainium:// link on their own download page. It does not fit someone who wants an app store with versioned releases or signed builds, since a configuration is only a recipe for fetching a build from somewhere else, and it does not replace Obtainium itself. Before relying on a listing, read APP_CRITERIA.md for what qualifies, and remember that the catalogue is crowdsourced, so an entry is a claim by a contributor rather than a curated selection.

Frequently asked questions

What is apps.obtainium.imranr.dev?

It is a crowdsourced website of app configurations for Obtainium, built as an Astro project. You can browse and search the configs, filter them by category, and install with a one-click obtainium:// link, with multi-language support and a /redirect route for sharing links.

Can my project be installable through Obtainium without being listed?

Yes. The README explains that any project can link straight to an Obtainium import without a listing in the directory, the way Delta Chat and PrivacyNotes do on their own download pages, and BADGING.md documents the two link forms with a worked example.

How do I run the site locally?

Run npm install and then npm run dev, and the dev server is available at http://localhost:8080. The production build uses npm run build, and a container image is defined in the Dockerfile with node dist/server/entry.mjs on port 8080.

What quality checks does the repository run?

There is a custom icon validator at scripts/validate_icons.js exposed as the validate script, with a validate:check variant for check mode, an astro check typecheck, and a .pre-commit-config.yaml for running checks before commits. A benchmark script at scripts/benchmark.sh is also present.

Official sources

  1. ImranR98/apps.obtainium.imranr.dev on GitHub
  2. Issues
  3. License: GPL-3.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/imranr98-apps-obtainium-imranr-dev.svg)](https://hysenlabs.com/projects/imranr98-apps-obtainium-imranr-dev)

Was this useful?