Skip to content

hanzhichao/zstore

Repository files navigation

ZStore

macOS app store powered by Homebrew & GitHub Releases — built with Tauri v2 + Next.js 15.

中文文档

ZStore Screenshot


Overview

ZStore is a native macOS desktop application that gives you a beautiful, searchable UI for discovering, installing, and managing software from two sources:

  • Brew — browse Homebrew casks (GUI apps) and formulas (CLI tools), install/upgrade/uninstall with one click, and manage brew services.
  • GitHub — a curated catalogue of 100+ popular macOS apps distributed via GitHub Releases.

All app data is cached locally in SQLite so the UI loads instantly every time, even offline.


Features

Feature Details
🍺 Homebrew integration Browse casks + formulas, one-click install / upgrade / uninstall
🐙 GitHub Releases 100+ curated macOS apps across 15 categories
Instant startup SQLite cache — no spinner on launch
🔍 Search & filter Full-text search, category filter, Favorites
📦 Installed view See all installed packages with version info
🆙 Updates view One-click "Upgrade All" for outdated packages
⚙️ Services manager Start / stop / restart brew services
🗂️ Grid & list view Switch between card grid and compact list
💾 Detail caching App detail panel cached to SQLite per-app
🎨 Clean UI Shadcn/UI + Tailwind CSS + Lucide icons

Tech Stack

Layer Technology
Desktop shell Tauri v2 (Rust)
Frontend Next.js 15 — static export (output: 'export')
UI components shadcn/ui + Tailwind CSS v4
Icons Lucide React
State Zustand with persist middleware
Database tauri-plugin-sql (SQLite)
Brew IPC Tauri invoke → Rust tokio::process::Command

Getting Started

Prerequisites

  • macOS (Homebrew must be installed)
  • Node.js ≥ 18
  • Rust (stable toolchain)
  • pnpmnpm install -g pnpm

Development

pnpm install
pnpm tauri dev

This starts the Next.js dev server on localhost:3000 and opens the Tauri window.

Production build

pnpm tauri build

The signed .dmg / .app is output to src-tauri/target/release/bundle/.

Build for a specific architecture

# Apple Silicon
pnpm tauri build --target aarch64-apple-darwin

# Intel
pnpm tauri build --target x86_64-apple-darwin

Project Structure

zstore/
├── src/                     # Next.js frontend
│   ├── app/                 # App Router pages
│   ├── components/          # UI components (Sidebar, AppGrid, AppDetailPanel…)
│   ├── hooks/               # useAppLoader — data fetching & DB caching
│   └── lib/
│       ├── brew.ts          # Homebrew data fetching (formulae.brew.sh API)
│       ├── brew-ipc.ts      # Tauri IPC wrappers (install / upgrade / uninstall…)
│       ├── github.ts        # GitHub Releases fetching + static app list
│       ├── github-apps.ts   # Curated list of 100+ macOS GitHub apps
│       ├── db.ts            # SQLite helpers (kvGet / kvSet / app detail cache)
│       ├── store.ts         # Zustand store
│       ├── categories.ts    # 15 app categories with Lucide icon names
│       └── types.ts         # Shared TypeScript types
└── src-tauri/               # Tauri / Rust backend
    ├── src/lib.rs           # brew_* Tauri commands + SQL plugin setup
    ├── Cargo.toml
    └── capabilities/
        └── default.json     # Tauri v2 permissions

Data Sources

Homebrew

Fetched from the official Homebrew formulae API:

  • https://formulae.brew.sh/api/cask.json — all casks
  • https://formulae.brew.sh/api/formula.json — all formulas

Results are cached in SQLite (kv_cache table keyed by brew-cask / brew-formula). TTL: 6 hours.

GitHub

100+ repos curated in src/lib/github-apps.ts. On first load the static list is shown instantly; a background fetch enriches entries with live release versions and star counts (subject to GitHub's 60 req/hr unauthenticated rate limit).


Keyboard & UI shortcuts

Action How
Search Click the search bar in the header
Switch space Click Brew / GitHub tabs in the sidebar
Toggle view Grid / List icons in the header
Refresh source Click the ↺ button; hold to pick a specific source
App detail Click any app card
Favorite ★ button in the detail panel
Close detail × in the detail panel, or click another area

License

MIT © 2025

About

brew gui and app from github releases

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors