Find privacy-respecting alternatives to every app you use.
What Is It • Features • Why Unclouded • How It Works • Development • Support
Unclouded is a privacy-focused app discovery and comparison platform. Look up any proprietary app — WhatsApp, Google Maps, Chrome — and find open source, privacy-respecting alternatives you can install right now.
The app database is the core product. Everything else — the comparison tools, the blog, the Obtainium integration — is a view into it.
| Alternative | Problem |
|---|---|
| AlternativeTo | Ad-heavy, not privacy-focused, includes proprietary suggestions |
| PRISM Break | Static list, no search, rarely updated |
| switching.software | Minimal info, no comparison tools |
| F-Droid | App store, not a comparison tool |
| Unclouded | Searchable database, side-by-side comparison, Obtainium integration, always current |
- Alternative finder — Look up any proprietary app and see every privacy-respecting replacement, with relationship types (direct alternative, fork, partial replacement).
- Side-by-side comparison — Compare 2-3 apps on features, platforms, sources, and tags. Shareable URLs.
- App discovery browser — Browse by category, filter by tags (encrypted, offline-capable, no-GMS, self-hostable), find apps you didn't know existed.
- Obtainium integration — One-click "Add to Obtainium" buttons. Bulk export configs for multiple apps at once.
- Semantic search — Find apps by describing what you need, not just by name.
- Always current — Database populated from F-Droid, IzzyOnDroid, and crowdsourced Obtainium configs. Thousands of apps, deduplicated and tagged.
- Blog — Degoogling guides, app comparisons, and migration walkthroughs that link directly into the tools.
┌──────────────────────────────────────────────────────┐
│ Data Sources │
│ F-Droid · IzzyOnDroid · Obtainium Configs · GitHub │
└──────────────┬───────────────────────────────────────┘
│ fetch, parse, deduplicate
▼
┌──────────────────────────────────────────────────────┐
│ Turso Database │
│ apps · sources · tags · alternatives · embeddings │
└──────────────┬───────────────────────────────────────┘
│
┌───────┴───────┐
▼ ▼
┌─────────────┐ ┌───────────┐
│ Web App │ │ API │
│ SSR + SPA │ │ /api/* │
│ (you) │ │ (mobile) │
└─────────────┘ └───────────┘
- Seed pipeline pulls app data from F-Droid, IzzyOnDroid, and Obtainium crowdsourced configs
- Deduplication by package name — one app entry, multiple install sources
- Tagging — categories, features, compatibility, platforms mapped from source metadata
- Embeddings — vector search for semantic similarity ("apps like Signal but with disappearing messages")
- Web app serves it all with SSR for SEO and SPA navigation for the interactive tools
| Layer | Technology |
|---|---|
| Framework | TanStack Start |
| UI | React + TanStack Router + TanStack Query |
| Database | Turso (libSQL) + Drizzle ORM |
| Vector search | Turso native (DiskANN) |
| Hosting | Cloudflare Workers |
| Package manager | pnpm |
# Clone
git clone https://github.com/LooseWireDev/unclouded.git
cd unclouded
# Install dependencies
pnpm install
# Set up environment
cp .env.example .env
# Edit .env with your Turso credentials
# Run database migrations
pnpm db:migrate
# Initialize vector tables
pnpm db:init-vectors
# Start dev server
pnpm devunclouded/
├── src/
│ └── routes/
│ ├── __root.tsx # Root layout
│ ├── index.tsx # Landing page
│ ├── apps.tsx # App listing
│ ├── apps.$slug.tsx # App detail (SSR)
│ ├── compare.tsx # Comparison tool
│ ├── discover.tsx # Discovery browser
│ ├── search.tsx # Search interface
│ ├── blog/ # Blog routes
│ └── api/ # API server routes
├── db/
│ ├── schema.ts # Drizzle schema
│ ├── client.ts # Turso/Drizzle client
│ ├── queries.ts # Shared query functions
│ └── seed/ # Data ingestion pipeline
├── content/
│ └── blog/ # MDX blog posts
├── vite.config.ts
├── drizzle.config.ts
├── wrangler.jsonc
└── package.json
| Command | Description |
|---|---|
pnpm dev |
Start dev server |
pnpm build |
Build for production |
pnpm preview |
Preview production build locally |
pnpm deploy |
Build + deploy to Cloudflare Workers |
pnpm db:generate |
Generate Drizzle migrations |
pnpm db:migrate |
Run migrations against Turso |
pnpm db:push |
Push schema changes directly (dev only) |
pnpm db:studio |
Open Drizzle Studio |
pnpm db:init-vectors |
Create vector tables |
- v1 (Web) — Alternative finder, app discovery, Obtainium config generation, blog
- v2 (Mobile) — Android/iOS app that scans installed apps and maps them to privacy alternatives
- v3 (Community) — User submissions, accounts, saved configs, voting
Unclouded is built and maintained by Loose Wire LLC.
- Bug reports — GitHub Issues
AGPL-3.0 — You can use, modify, and distribute Unclouded. If you distribute a modified version, you must share your changes under the same license.