GoodLinks logo

How to vibe codeGoodLinks

The Better Way to Save and Read Articles

goodlinks.app

Productivity

iOS appmacOS app
45/ 100
Serious undertaking

The verdict: can you vibe code GoodLinks?

Build a personal macOS and iOS subset with Swift and SwiftUI, but expect steep challenges with native share extensions and robust article DOM parsing.

Cloning GoodLinks for personal use means building a native Swift and SwiftUI application targeting macOS and iOS. While SwiftUI makes local data lists, tagging, and reader themes straightforward to scaffold, you will hit real friction writing native Safari and Share Sheet extensions in Swift, managing offline CloudKit syncing edge cases, and reliably cleaning messy article HTML DOMs without breaking on dynamic sites.

Estimated effort: 4-6 weeks of evening coding

What you can't replicate

  • The exact polish and years of edge-case refinement of the official native app
  • Seamless integration into the broader Apple power-user ecosystem via native AppleScript and Shortcut intents out of the box

Founded

2020

Raised

Team

1 person

Cheapest paid tier

$9.99

What GoodLinks does

Read-it-later and article organization app for Apple platforms that extracts core text, provides customizable reading environments, highlighting, note-taking, full-text search, and iCloud synchronization without proprietary server accounts.

Core features

  • Article text extraction and readability parsing
  • Clean reader mode with custom fonts, sizing, and color themes
  • Highlighting and color-coded note-taking
  • Centralized notebook and tag organization
  • Full-text search across titles, descriptions, and article contents
  • iCloud sync across devices via CloudKit
  • Share Sheet and Safari extensions
  • Markdown export for tools like Obsidian
  • One-tap article summaries

The business

Pricing

  • Universal Purchase$9.99
  • Annual Feature UpgradeOptional yearly fee

Funding

Unknown / bootstrapped

The hard parts of vibe coding GoodLinks

  • Robust DOM readability parsing and ad stripping across diverse website layouts
  • Building reliable native Safari extensions and iOS Share Sheet extensions in Swift
  • Handling CloudKit record conflict resolution and offline-first queue syncing
  • Deep macOS/iOS system integration including Shortcuts, AppleScript, and widgets

How to vibecode GoodLinks

Prerequisites

  • Mac

    Required for building iOS and macOS native applications using Xcode.

  • XcodeFree

    Official IDE for Swift, SwiftUI development, and compiling native Apple platform extensions.

  • Apple Developer Account$99/yr

    Required for configuring CloudKit containers and provisioning native system extensions on physical devices.

AI coding tools

Recommended stack

FrontendSwiftUI (iOS 16+ / macOS 13+)
BackendCloudKit (iCloud Sync)
DatabaseSwiftData / CoreData with CloudKit container
AuthApple iCloud Account (CloudKit identity)
PaymentsStoreKit 2 (for optional local IAP)
OtherSwiftSoup (HTML parsing for article extraction), Share Extension / Safari Extension targets

Hosting & infrastructure

CloudflareOptional auxiliary read-it-later proxy endpoint if cloud-side HTML extraction is needed$0/mo

Build guide

  1. 01Project Scaffolding & SwiftData Local Schema

    Initialize a multiplatform iOS and macOS SwiftUI app container using Xcode, configuring SwiftData models for Articles, Highlights, Notes, and Tags.

    Create a multiplatform Swift/SwiftUI app skeleton targeting iOS 16+ and macOS 13+. Set up SwiftData models for `Article` (id, url, title, author, contentHtml, plainTextContent, excerpt, publishedDate, addedDate, readingPosition, isStarred, isArchived, tags), `Highlight` (id, articleId, text, note, color, createdAt), and `Tag` (id, name). Configure the App entry point to initialize the SwiftData model container with CloudKit synchronization enabled using a shared iCloud container identifier.
  2. 02Article Readability Extraction Pipeline

    Implement a local or extension-based HTML parsing service using SwiftSoup to clean web DOMs, stripping advertisements, scripts, and navigation clutter.

    Implement an article extraction utility in Swift using SwiftSoup. Write a function that takes a raw HTML string from a URL fetch, strips out script tags, styles, ads, navbars, and footers, and extracts the primary semantic container and article title. Clean the resulting HTML to render inside a customizable SwiftUI WebView or text view with adjustable font size, line spacing, and theme colors (Light, Sepia, Dark, Night).
  3. 03Reader UI & Highlighting Engine

    Build the immersive reading view supporting text selection, color-coded highlights, and attached user notes.

    Build a SwiftUI Reader View for articles that renders clean HTML or attributed text. Implement text selection handling that allows users to tap selected text and trigger a floating menu to add a highlight with customizable colors (yellow, green, blue, pink, purple) and attach optional Markdown-compatible text notes. Store these highlights in SwiftData linked to the parent article entity and display them in a unified Notebook sidebar view.
  4. 04Share Sheet and Safari Extensions

    Create native Share Sheet and Safari Web Extensions to capture web pages directly into the app from any browser or app.

    Add a macOS/iOS Share Extension target to the project. Implement an extension view controller or SwiftUI view that parses incoming URLs and page metadata from the system share sheet, extracts the article content, and inserts a new `Article` record directly into the shared App Group container so the main application accesses it instantly via SwiftData/CloudKit.
  5. 05Organization, Search, and Markdown Export

    Implement full-text search across article attributes, tag management, and customizable Markdown export functionality.

    Add full-text search capabilities across article titles, authors, descriptions, and extracted content using SwiftData predicates. Build a tag management interface to filter articles by tags and starred status. Implement a Markdown export service that formats article metadata, highlights, and notes into customized Markdown templates for copying to the clipboard or sharing to external apps like Obsidian.

Cost vs paying for GoodLinks

What will you build it with?

Est. 4.5M in / 1.2M out tokens· Includes access to introductory usage of the default model with dynamic rate limits.$0

Starting total with Claude Code~$99 one-time

Starting costs (one-time)

  • Apple Developer Account$99/yr
  • AI Coding Assistant (1 month)$20

Total~$119 one-time

Ongoing costs (monthly)

  • Apple Developer Account renewal$8.25/mo amortized

Total~$8.25/mo

Paying for GoodLinks

$0/mo ($9.99 one-time)

Your time to build

40-60 hours

AI tool credits

$20/mo (Claude Pro / Cursor)

Break-even

N/A (Build for personal utility and learning)

Vibe code GoodLinks: FAQ

Can you vibe code GoodLinks yourself?
Serious undertaking — 45/100 vibecodeable. Build a personal macOS and iOS subset with Swift and SwiftUI, but expect steep challenges with native share extensions and robust article DOM parsing.
How long does it take to vibe code GoodLinks?
4-6 weeks of evening coding — roughly 40-60 hours of hands-on time with an AI coding agent.
How do you build your own GoodLinks?
Scoped to personal use: SwiftUI (iOS 16+ / macOS 13+) on the front, CloudKit (iCloud Sync) behind it, SwiftData / CoreData with CloudKit container for data. Follow the 5-step build guide on this page — each step has a paste-ready prompt for an AI coding agent.
How do you code your own GoodLinks without being an expert?
Use an AI coding tool (Claude Code or Cursor) and work in small steps: scaffold, data model, core screens, then deploy. Realistic effort: 4-6 weeks of evening coding. The prompts on this page are written so the AI does the heavy lifting.
How much does it cost to vibe code GoodLinks instead of paying?
About ~$119 one-time to start and ~$8.25/mo to run, versus $0/mo ($9.99 one-time) for GoodLinks. Break-even: N/A (Build for personal utility and learning).
What stack should you use to vibe code GoodLinks?
SwiftUI (iOS 16+ / macOS 13+); CloudKit (iCloud Sync); SwiftData / CoreData with CloudKit container; plus SwiftSoup (HTML parsing for article extraction), Share Extension / Safari Extension targets.

Sources

Alternatives & community builds

All alternatives →