# How to Vibe Code Your Own Indie Goodies (and Stop Paying for It)

> Simple wins, every day

- Site: https://indiegoodies.com
- Category: Mac App Portfolio & Micro-SaaS Studio
- Platforms: macOS app, iOS app, Web app
- Verdict: **Serious undertaking** (35/100 vibecodeable)
- Estimated effort: 3-6 months of part-time work to replicate a couple of the flagship apps

## Verdict

Build a focused single-utility subset (like PastePal or one AI identifier) rather than trying to clone all 30 apps.

Cloning the entire Indie Goodies catalog means maintaining dozens of independent native macOS and iOS apps written in Swift and AppKit. While an AI coding agent can rapidly scaffold individual utility screens or single-prompt AI camera wrappers, wrestling with strict macOS sandboxing rules, Accessibility permissions, global hotkeys, and Apple's yearly OS deprecations is a grueling maintenance nightmare for a solo developer.

### What you can't replicate

- The portfolio brand recognition and community distribution across r/macapps and Setapp
- The years of accumulated bug fixes required to keep 30+ native Mac utilities stable across OS versions

## What it does

A digital storefront and indie app portfolio hosting over 30 independent utilities, Mac power tools, and AI identification apps.

### Core features

- Native macOS utility suite (Almighty/PastePal equivalent)
- Global keyboard shortcut hooks and window server manipulation
- AI-powered multi-modal image identification utilities
- Clipboard history background daemon
- Unified indie portfolio storefront directory
- In-app purchase and license entitlement handling via RevenueCat / Gumroad

## The business

### Pricing

- Almighty: $19.99 — One-time purchase for full Mac tweaking suite (or $15.99 via Mac App Store / Setapp)
- PastePal: $10.00 - $15.00 — One-time lifetime license or in-app purchase
- Individual Apps: Free / Varies — Mix of free utilities, freemium, and low-cost lifetime unlocks

Founded 2020.
Team size: 1-2.

## The hard parts

- Writing low-level AppKit and Swift code for global system hooks, accessibility permissions, and sandboxing bypasses
- Maintaining 30+ separate native codebases against yearly breaking macOS and iOS OS updates
- Local-first secure state synchronization without leaking user privacy or relying on heavy backend architecture

## How to vibe code Indie Goodies

### Prerequisites

- Mac (Existing hardware): Required for building and signing native macOS and iOS applications
- Xcode (Free): Official IDE and toolchain for Swift, SwiftUI, and AppKit development
- Node.js (Free): Required for running build scripts, tooling, and portfolio storefront web wrapper
- GitHub (Free): Version control and repository hosting

### Recommended AI tools

- Claude Code: Handles complex multi-file Swift project scaffolding, debugging, and terminal-driven iteration loops
- Cursor: Ideal for iterative UI work and reviewing native SwiftUI view code through a side-by-side editor interface

### Stack

- Frontend: SwiftUI & AppKit (Native macOS/iOS) / Next.js (Portfolio Storefront)
- Backend: Local-first SQLite / Swift SwiftData / Next.js API Routes
- Database: Turso
- Auth: better-auth
- Payments: RevenueCat
- Other: OpenAI API

### Hosting

- Cloudflare (Hosting the static portfolio storefront and directory landing pages): $0/mo
- Turso (Lightweight SQLite database storage for portfolio product metrics and analytics): $0/mo

### Build guide

1. **Portfolio Web Storefront Scaffolding** — Initialize the Next.js portfolio website using Tailwind CSS to showcase the curated app list, categories, and direct download links.

```
Create a new Next.js app using Tailwind CSS that acts as a digital storefront and landing page umbrella for an indie app portfolio named 'Indie Goodies'. Implement a responsive grid layout displaying over 30 utility cards with icons, short descriptions, and categories like 'Mac Power Utilities', 'AI Identifiers', and 'Productivity'. Include a top navigation bar with links to documentation, blog, and a newsletter subscription form. Ensure clean typography, dark mode styling by default, and mobile responsiveness. Set up better-auth for administrative portfolio management access.
```

2. **Core Mac Utility Application (Clipboard Manager Clone)** — Scaffold a native macOS application using Swift and SwiftUI that runs as a background menu bar item to capture and store local clipboard histories.

```
Create a native macOS application using Swift and SwiftUI named 'PastePal'. Implement a menu bar status item that intercepts clipboard changes using NSPasteboard and stores text, image, and link payloads locally using SwiftData or local SQLite. Design a clean popover user interface showing the search-filtered clipboard history list with keyboard shortcut navigation. Handle macOS accessibility permissions gracefully with an onboarding alert view when permissions are missing. Ensure the app runs as a background agent without showing up in the regular dock.
```

3. **System Tweaks & Shortcuts Utility Clone** — Build a native macOS utility module mimicking Almighty that executes shell commands and toggles system-level configurations.

```
Develop a native macOS SwiftUI module inside the project that presents a categorized list of over 20 system configuration toggles (such as hiding desktop icons, keeping the display awake, and tweaking window snapping). Implement a service layer in Swift that executes underlying terminal commands via Process() or manipulates standard UserDefaults system domains safely. Ensure error handling for restricted system states and include a search filter bar to quickly locate specific tweaks.
```

4. **AI Image Identifier Utility App** — Build a lightweight mobile/desktop utility that captures images via camera or file drop and queries a multimodal LLM API for structured JSON identification results.

```
Create a Swift module for an AI-powered identifier app (e.g., 'Beast ID' or 'Antiquary') that allows users to capture or select an image. Integrate the OpenAI API using URLSession to transmit the image payload with a structured prompt requesting identification details (title, origin, confidence score, description) formatted strictly as JSON. Parse the response into native Swift Codable structs and display the formatted results in a clean detail view with loading indicators and error handling.
```

5. **Subscription and License Entitlements Integration** — Integrate RevenueCat SDK into the native apps to manage lifetime unlocks and in-app purchases.

```
Integrate the RevenueCat Swift SDK into the native macOS and iOS project to handle in-app purchases and lifetime license unlocks. Implement a paywall view that queries active entitlements and locks premium features accordingly. Set up sandbox environment test hooks to verify purchase flows, error handling for failed transactions, and restore purchase functionality.
```

6. **Deployment and Distribution Setup** — Configure GitHub Actions CI/CD pipelines to build, sign, and package the static web storefront and prepare native app release artifacts.

```
Create a GitHub Actions workflow that automatically tests and builds the Next.js portfolio website, deploying the production output to Cloudflare Pages. Additionally, write documentation and a build script checklist for packaging native macOS apps for distribution, including code signing reminders and notarization steps for Apple Developer distribution.
```

### Cost vs paying

**Starting costs (one-time):**

- Apple Developer Program Membership (Required for native app distribution): $99/yr
- OpenAI API Starting Credits: $10 one-time
- Total: ~$109 one-time

**Ongoing costs (monthly):**

- Cloudflare Hosting: $0/mo
- Turso Database: $0/mo
- OpenAI API Usage (Personal Test Volume): ~$5/mo
- Total: ~$5/mo

- Paying for the SaaS instead: $0/mo (Free trials / Individual one-time purchases)
- Build time: 120-160 hours
- AI tool credits: $20/mo (Claude Pro / Cursor)
- Break-even: Not applicable (Built as a personal local-first multi-utility suite)

## Sources

- [Indie Goodies Official Website](https://indiegoodies.com)
- [Medium - Indie Goodies Engineering Blog by Khoa Pham](https://medium.com)