Skip to content

f/appetit

Repository files navigation

Appétit

Appétit

Bon appétit for apps.
An App Store-inspired catalog for your projects — powered by a single JSON file.

Live Demo · Quick Start · Make It Yours


Appétit is a beautiful, browsable app catalog that looks and feels like the Apple App Store. It's built entirely with vanilla HTML, CSS, and JS — no frameworks, no build step, no dependencies. Just edit apps.json and deploy.

Features

  • App Store UI — Sidebar navigation, featured carousel, app cards, detail pages with screenshots
  • Dark & Light themes — System preference detection with manual toggle, persisted in localStorage
  • JSON-driven — All apps, categories, and featured items defined in a single apps.json
  • Install modalsbrew install and npx commands with one-click copy to clipboard
  • Categories — macOS, Web, CLI, Developer Tools, Productivity (or define your own)
  • Search — Instant client-side filtering across names, descriptions, and features
  • GitHub stats — Live star and fork counts, updatable with the included update-stats.sh script
  • Responsive — Desktop sidebar collapses on mobile
  • Zero dependencies — Pure HTML/CSS/JS, deploys anywhere as static files

Quick Start

git clone https://github.com/f/appetit.git
cd appetit
python3 -m http.server 8080

Open localhost:8080 and you're running.

Make It Yours

1. Add your apps

Edit apps.json. Each app entry supports:

{
  "id": "my-app",
  "name": "My App",
  "subtitle": "A short tagline",
  "description": "One-liner for list views.",
  "longDescription": "Full description for the detail page.",
  "icon": "https://example.com/icon.png",   // or use iconEmoji: "🚀"
  "iconStyle": { "scale": 1.3, "objectFit": "cover", "borderRadius": "22%" },
  "category": ["macos", "cli"],
  "platform": "macOS",
  "price": "Free",
  "github": "https://github.com/you/my-app",
  "homepage": "https://my-app.dev",
  "language": "Swift",
  "stars": 42,
  "forks": 3,
  "brew": "brew install you/tap/my-app",    // shows install modal
  "installCommand": "npx my-app",           // alternative install modal
  "downloadUrl": "https://github.com/you/my-app/releases/latest",
  "requirements": "macOS 15+",
  "features": ["Feature one", "Feature two"],
  "screenshots": ["https://example.com/screenshot.png"]
}

2. Configure categories

"categories": [
  { "id": "macos", "name": "macOS Apps" },
  { "id": "cli", "name": "CLI Tools" },
  { "id": "web", "name": "Web Apps" }
]

3. Set featured apps

"featured": [
  {
    "id": "my-app",
    "headline": "NEW",
    "title": "A catchy headline.",
    "subtitle": "A longer description for the featured banner."
  }
]

4. Deploy

Push to GitHub and enable Pages — or drop the files on any static host (Netlify, Vercel, Cloudflare Pages, S3, etc).

Update GitHub Stats

Fetch live star and fork counts from the GitHub API:

./update-stats.sh

For higher rate limits:

GITHUB_TOKEN=ghp_xxx ./update-stats.sh

File Structure

├── index.html          Main HTML shell
├── style.css           All styles (dark + light themes)
├── app.js              Routing, rendering, carousel, modals
├── apps.json           All app data — edit this file
├── logo.svg            App icon / favicon
├── update-stats.sh     Fetches GitHub stars/forks into apps.json
├── CNAME               Custom domain for GitHub Pages
└── .nojekyll           Prevents Jekyll processing

Deploy to GitHub Pages

  1. Push to a GitHub repo
  2. Settings → Pages → Source: branch master, folder /
  3. (Optional) Add a CNAME file with your custom domain

License

MIT

About

Appétit — An App Store-inspired catalog of free, tiny apps built with agentic engineering and vibecoding. Bon appétit for apps.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors