The Modern, Serverless App Store for the Open Web.
Features • Architecture • Native Build • Deployment • Auto-Mirror
OrionStore is a Progressive Android Application that acts as a fully functional App Store without requiring a dedicated backend server. It runs entirely on GitHub and can be compiled to a native APK using Capacitor.
- 🎨 Material You 3 Design: A vibrant, Gen Z aesthetic featuring "Acid" and "Neon" accents with smooth animations.
- 🤖 Native Android Support: Built with Capacitor to run directly on Android devices with native performance.
- 🌗 Adaptive Theming: Seamless Light, Dusk, and Dark modes.
- ☁️ Serverless Architecture: Powered 100% by GitHub JSON & Releases. No database required.
- 🤖 Auto-Mirroring Engine: Built-in scraper (Puppeteer) that finds updates for apps like Spotify, Instagram, etc., and re-uploads them to your repo automatically.
- ⚡ Smart Caching: LocalStorage caching strategy for instant loads and offline capability.
OrionStore uses a unique "Repo-as-a-Backend" approach:
- Frontend (
App.tsx): Fetchesconfig.jsonandapps.jsonfrom the repository. - Database (
apps.json): Contains metadata (Name, Icon, Description) and links to GitHub Repositories. - The Engine:
- The app checks the
mirror.jsonfile for the absolute latest releases. - If
releaseKeywordis set, it scans the last 10 releases of a repo to find the specific app variant you need (supporting multi-app monorepos). - It compares the remote version with the local version stored in the browser/app.
- The app checks the
This project is configured with Capacitor, allowing you to convert the web app into a native .apk file easily.
- Install Android Studio.
- Install dependencies:
npm install @capacitor/core @capacitor/cli @capacitor/android npx cap add android
# 1. Build the React web project
npm run build
# 2. Sync the web assets to the native Android project
npx cap sync
# 3. Open Android Studio to build the Signed APK
npx cap open androidOrionStore includes a hidden debug menu for power users and contributors to manage API limits and data sources.
- Navigate to the About tab (or stay on Home).
- Tap the "OrionStore" logo in the top-left header 9 times rapidly.
- A toast notification will appear confirming you are now a developer.
- Scroll down to the bottom of the About tab to see the new options.
- 🔑 API Key Management: Input your own GitHub Personal Access Token (PAT) to increase API rate limits from 60/hr to 5000/hr. This is essential if you are browsing the store frequently or developing.
- 🔀 Data Source Toggle: Switch between Remote (Live JSON from GitHub) and Local (Hardcoded
localData.ts) modes. Useful for testing new apps without committing to the repo. - 🔥 Nuke Cache: A "Wipe Cache & Reset" button to clear all
localStoragedata and reset the app state if things get stuck.
This is the heart of the automation. You don't need to manually upload APKs.
Edit mirror_config.json to tell the bot which apps to track.
[
{
"id": "instagram-mod",
"name": "Instagram",
"downloadUrl": "https://an1.com/1029-instagram-apk.html",
"mode": "scrape",
"wait": 30000
}
]- Runs daily at 00:00 UTC.
- Direct Mode: Wget/Curl direct links.
- Scrape Mode: Uses Puppeteer with stealth plugins to bypass Cloudflare, navigate download pages (like AN1 or APKDone), and extract the APK.
- Publishing: It parses the APK via
aaptto get the real internal version number, tags it, and uploads it to GitHub Releases.
- Runs after every release.
- Scans your Releases page.
- Updates
mirror.jsonwith direct download links so the Frontend doesn't hit GitHub API rate limits.
You can host your own version of OrionStore in less than 5 minutes.
- Fork this repository.
- Navigate to Settings > Pages.
- Select
Source: Deploy from a branch->main->/ (root). - Click Save.
- Edit
constants.tsandapps.jsonto point to your new repository URLs.
# 1. Clone the repo
git clone https://github.com/yourname/OrionStore.git
# 2. Install dependencies
npm install
# 3. Start development server
npm startContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open-source and free. If you enjoy using it, consider buying me a coffee!
Made with 💜 for Geeks by RookieZ