https://github.com/f/appetit
Appétit — An App Store-inspired catalog of free, tiny apps built with agentic engineering and vibecoding. Bon appétit for apps.
https://github.com/f/appetit
Last synced: 3 months ago
JSON representation
Appétit — An App Store-inspired catalog of free, tiny apps built with agentic engineering and vibecoding. Bon appétit for apps.
- Host: GitHub
- URL: https://github.com/f/appetit
- Owner: f
- Created: 2026-03-12T13:33:50.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2026-03-30T04:01:43.000Z (3 months ago)
- Last Synced: 2026-03-30T06:39:59.799Z (3 months ago)
- Language: JavaScript
- Homepage: https://apps.fka.dev
- Size: 4.08 MB
- Stars: 34
- Watchers: 0
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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 modals** — `brew 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
```bash
git clone https://github.com/f/appetit.git
cd appetit
python3 -m http.server 8080
```
Open [localhost:8080](http://localhost:8080) and you're running.
## Make It Yours
### 1. Add your apps
Edit `apps.json`. Each app entry supports:
```jsonc
{
"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
```json
"categories": [
{ "id": "macos", "name": "macOS Apps" },
{ "id": "cli", "name": "CLI Tools" },
{ "id": "web", "name": "Web Apps" }
]
```
### 3. Set featured apps
```json
"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:
```bash
./update-stats.sh
```
For higher rate limits:
```bash
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