An RSS reader that
doesn't read you.

Choose every source. Read new posts in order. Surfboard collects none of your reading data and keeps your subscriptions on your device.

Available now: $4.99 once in the U.S. App Store. See what it buys.

Surfboard displaying an article in reader viewSurfboard displaying an article in reader view

Your sources.
Your way into a story.

Choose publications you trust. Group them into topics. Open a story from your chronological list—and explore the people and places it mentions.

Sources screen listing subscribed publicationsSources screen listing subscribed publications
SourcesChoose the publications you follow.
Topics screen with Art, Personal Blogs, Podcast, and Tech categoriesTopics screen with Art, Personal Blogs, Podcast, and Tech categories
TopicsOrganize sources around your interests.
Article reader displaying story text and an image galleryArticle reader displaying story text and an image gallery
Article ViewOpen a story and settle in.
Discover screen with curated source categoriesDiscover screen with curated source categories
DiscoverBrowse curated categories.
Named Entities screen identifying organizations, places, and peopleNamed Entities screen identifying organizations, places, and people
People & placesExplore the names in a story.

No ranking.
No account. No reading profile.

Your reading stays yours.

Surfboard collects none of your reading data. There is no account, no analytics, and no cloud copy of your subscriptions. The list lives on your device.

Always chronological.

New posts are sorted by published date. Surfboard never promotes, ranks, or rearranges a story because it thinks you might click it.

At home on every screen.

SwiftUI draws the interface. SwiftData keeps subscriptions local. WebKit renders articles. NaturalLanguage finds people, places, and organizations. The same reader runs on iPhone, iPad, Mac, and Apple Vision.

The web never agreed
on how to write a feed.

I’m Ian, the maker of Surfboard. The interface came first. The hard part kept moving underneath it. Atom and RSS put titles, links, dates, images, and article bodies in different places—and production feeds bend both standards in their own ways.

The result is BambooParsing, a Swift parser built without a third-party parsing package. It follows the XML element stack, hands Atom and RSS to separate delegates, and tests against captured feeds instead of ideal examples.

  1. The first feed was only the beginning.

    Early parsing handled a title. Then Atom and RSS needed separate paths, a shared element stack, entries, subtitles, article content, and one interface the app could depend on. That shared result supplies the reader with the parts of a story.

  2. The parser had to stand on its own.

    Separating feed parsing from the app's SwiftData model did not work cleanly on the first attempt. The design was backed out, rebuilt, and moved into its own Swift package. The app kept reading state; the package took on feed interpretation.

  3. Real feeds refused to behave.

    Captured production feeds exposed split text, HTML entities, relative content bases, and more than one common date format. Another regression caught URLs that returned an HTML page instead of a feed. Each case protects a specific detail, from readable text to working links.

  4. Correctness still had to feel fast.

    Loading many sources exposed a second problem: interface work could pile up even when parsing was correct. Topic posts moved to concurrent parsing, set-based read lookups, and batched insertions to coordinate how results reached the topic list.

That work is invisible on purpose. The reader gets a calm, chronological list—not the feed dialects, parser callbacks, detached tasks, and batched insertions underneath it.

Found a source that refuses to behave?Send the URL and what happened.
372
Ian-authored app commits
Across the app's recorded history
81
parser commits
Across the parser's recorded history
6
captured real-world feeds
Used as parser fixtures
0
third-party parser packages
Built on Foundation

Counts and implementation details verified against the BambooRSS and BambooParsing main-branch histories.

Apple technologies.
One native reader.

The interface, local library, article view, language features, and feed plumbing are built from system components with specific jobs.

Built from the platform.

Each system technology carries part of the reading experience.

  1. SwiftUIInterface
  2. SwiftDataLocal subscriptions
  3. NaturalLanguageNamed entities
  4. FoundationSystem services
  5. WebKitArticle rendering
  6. XMLParserFeed parsing · Foundation

Why Surfboard stays small.

  1. Two app stacks.

    NetNewsWire layers an iOS base, embedded frameworks and vendor code, then a 28.1 MB listing. Surfboard's three first-party packages stay thin beneath a 3.9 MB listing.

  2. Use what iOS already carries.

    NaturalLanguage, SwiftData, SwiftUI and Foundation's XMLParser take on entity recognition, storage, interface and feed parsing without third-party packages.

  3. The listing lands at 3.9 MB.

    The U.S. iPhone listing is 3.9 MB. This is the app’s listed size; your downloaded articles and images can add storage.

Pay $4.99 once.
The app stays yours.

  • Four Apple platforms
  • Family Sharing for up to six
  • No recurring subscription

In the U.S. App Store, $4.99 unlocks Surfboard on iPhone, iPad, Mac, and Apple Vision. Family Sharing covers up to six people. There is no account, upgrade tier, or recurring charge. Prices vary by region.

Requires iOS 18+, iPadOS 18+, macOS 15+, or visionOS 2+.

Libraries stay separate on each device. No account, no sync, no cloud copy.

Before you decide.
Plain answers.

What to expect from the emails, the app, and the optional beta. The limitations belong here alongside the benefits.

What will you email me?

Surfboard releases, useful product news, and occasional offers and discounts. At most one email a month. Unsubscribe anytime. Signing up is optional; Surfboard is already available on the App Store.

Which devices can I use?

Requires iOS 18+, iPadOS 18+, macOS 15+, or visionOS 2+. One purchase covers the four platforms. Each device keeps its own library; there is no sync.

Does Surfboard sync?

No. Each device keeps its own sources, topics, and reading state. That is the tradeoff behind no account and no cloud copy.

What does $4.99 buy?

In the U.S. App Store, one purchase gets Surfboard on iPhone, iPad, Mac, and Apple Vision, with Family Sharing for up to six. Prices vary by region.

What does Surfboard collect?

None of your reading data. The App Store privacy disclosure is “Data Not Collected,” and Surfboard creates no account or reading profile. This page uses no analytics cookies, session replay, or persistent visitor ID; optional updates and support forms are explained in the Privacy Policy.

What does chronological mean?

Posts are sorted by published date. There is no engagement score promoting one story above another.

Can I try Surfboard in TestFlight?

When Apple has room, yes. The public beta opens and closes as capacity changes, and Apple may require a compatible device and OS. If the beta is full, you can ask for an email when a place may be available. Beta builds expire and may be less stable than the App Store release.

Check TestFlight availability

A tester asked to bring every source along.
The next build does it.

Their request became OPML import and export: a portable way to bring a subscription list into Surfboard and take it back out. It is the latest feature moving through the beta program.

OPML import + export

Import
Bring flat or nested OPML subscription lists into Surfboard.
Keep clean
Skip source addresses already in the library or repeated in the file.
Export
Save the current source list as a portable .opml file.
Check TestFlight availability

Email signup includes TestFlight availability notices and occasional product news, offers, and discounts. At most one email a month. Unsubscribe anytime. Public beta availability is controlled by Apple and can change.

Your sources.
Nobody else's business.

Follow what’s next for Surfboard: releases, useful product news, and occasional offers and discounts.