In one line

farstamp is a travel log that turns the boarding passes and receipts you already have into a 3D globe you can share. Capture any document in one tap; on-device text recognition reads it, a language model files it into the right trip, and the app plots it on your globe. Your Reach score only ever grows: the further your world stretches, the higher your tier. farstamp Pro, a subscription run on RevenueCat, removes the trip limit and unlocks the premium share cards.

Inspiration

The idea came from our founder's own life. She runs the company as a digital nomad, living out of hotels abroad, and for all that travel she had nothing that showed where she had been. Most of us have travelled far more than we can show. The proof is scattered across inboxes, wallets and photo rolls, and the apps that promise to organise it ask you to type everything in. We wanted the opposite: an app where the paperwork you already have does the work, and where the result is a record of where you have been that is worth sharing.

The second idea came from a number. In Japan, only a minority of people hold a passport, and farstamp shows that figure on the dashboard, computed from Ministry of Foreign Affairs passport statistics and official population estimates. Your first stamp already puts you in that minority. The app is built to make that feeling visible.

One decision shaped the release: v1.0 was deliberately kept narrow so it would clear App Review without delay. When review flagged Guideline 3.1.1 on September 25, we removed the in-app code entry and shipped the core. v1.1 was submitted to App Review on October 1 and goes live as soon as it is approved; the features it adds are listed under What's next.

What it does

  • Capture in one tap. Scan tickets, boarding passes and receipts, singly or in a batch, or add a record by hand. PDFs and e-tickets are supported.
  • Trips that build themselves. Records are grouped into trips automatically, each with a rail-style timeline.
  • Your world so far. A 3D globe and a map of every country, region and city you have reached, with great-circle distance, nights away, five-star stays and total spend converted with daily exchange rates. Japan gets its own prefecture map.
  • Reach and tiers. One score, Reach, measures how far your world stretches. It never goes down. Tier thresholds are calibrated against official tourism and population statistics, so a tier tells you where you stand, not just how many flights you took.
  • Share cards. World, Stamps, Prefectures and Place cards, each designed for posting. Pro adds the Story, Print and Transit skins.
  • English and Japanese, with localised names for 249 countries, more than 3,000 cities and more than 4,000 airports.

How we built it

Expo (React Native 0.81) with Expo Router and TypeScript. Supabase provides auth, Postgres and Edge Functions for receipt analysis, trip statistics, account deletion and daily FX sync. Scanning runs text recognition on the device first (Latin, Japanese and Korean); only the text goes to an Edge Function, where a language model turns it into a typed record. The globe and the maps are drawn with Skia; the share cards are composed as native views and captured as 1080-pixel PNGs. Monetisation runs on RevenueCat: react-native-purchases powers the paywall, both plans and restore, and RevenueCat entitlements gate the Pro features. Place data comes from open sources (OurAirports, Wikidata, Natural Earth, e-Stat), regenerated by scripts so nothing is hand-edited.

Why RevenueCat

This is our first subscription app, and RevenueCat took the hard parts off our plate.

  • One entitlement, no app update to change the offer. The app asks a single question, "is farstamp_pro active?", and reads the packages from the current Offering. Prices are not hardcoded anywhere; the paywall lays out whatever the dashboard sends, so we can change plans, prices or the introductory offer without shipping a build.
  • Identity that follows the user. After Supabase sign-in we call logIn with the Supabase user id, so an anonymous install that bought Pro keeps it when the account is created, and the same id works for a server-side promotional grant through the REST API. On sign-out we call logOut.
  • No receipt server. Purchase, restore and the "first month free" eligibility check go through the SDK; we never store or validate a receipt ourselves, and a CustomerInfo listener flips the app to Pro the moment a purchase or expiry lands.
  • Trial copy that cannot lie. We show "First month free" only when the SDK's eligibility check returns ELIGIBLE, and fall back to the full price on UNKNOWN, which is the behaviour App Review wants and the behaviour a returning subscriber deserves.
  • The same integration for Android. The Android key and the same entitlement are already in the code; the Android release waits only for Play review.

The time this saved went into the globe, the cards and the scanning flow, which is where the product is.

Challenges we ran into

  • Dates. A trip that starts "today" was UPCOMING on one screen and LIVE on another because one compared local dates and the other UTC. We moved every comparison to date strings and store dates as local noon.
  • Distance. Scanned flights arrive without a distance, so the app derives great-circle distance on the client and reconciles with the server.
  • Modals on modals. Opening the paywall from inside the share sheet silently failed on iOS and left a ghost modal that ate every touch. The Pro upsell now lives inside the sheet.
  • App Review. Account deletion, the subscription disclosures required by Guideline 3.1.2 and the PDF/e-ticket flow were all reworked for the first release.

Accomplishments that we're proud of

  • The Reach score. One number that only increases, with tiers calibrated to real statistics instead of arbitrary badges.
  • The globe. Visited places render on a Skia-drawn 3D globe, with the Japanese prefecture map as a second view.
  • Share cards that people actually post. Four card types, three Pro skins, each laid out for a phone screen.
  • A paywall that follows the rules and still converts: monthly and annual, with a one-month free introductory offer on the annual plan, and the trip limit as the only hard wall in the free tier.

What we learned

A travel app is judged on the first thirty seconds after install. Everything we simplified, from an optional home city in onboarding to a Pro upsell that stays inside the share sheet, was done to shorten the path from first scan to first globe. And a monetisation model works best when the free tier is genuinely useful: people upgrade for more trips and better cards, not to remove nagging.

What's next for farstamp

v1.1 was submitted to App Review on October 1 and goes live as soon as it is approved. It adds three things v1.0 does not have:

  • Shoot it yourself. An in-app camera with a confirmation screen and cropping, so a ticket on the table becomes a record without leaving the app.
  • Search in the local script. Find places by kana, kanji, hangul or a country's own name for itself, not only by the English spelling.
  • Swipe to clear. Records that did not land in a trip can be dismissed with a swipe.

After that: Android, smarter parsing for the long tail of ticket and receipt formats, and a public gallery of share cards, so the globe you post becomes the way new users find the app.

How we take it to market

The product is built to travel far. It ships in English and Japanese, with localised names for 249 countries, more than 3,000 cities and more than 4,000 airports, and is on sale in all 175 App Store regions from day one. Every share card leaves the app with the farstamp wordmark on it and, on iOS, a link to the App Store listing beside the image, so a globe posted from Bangkok or Berlin is also the ad. App Store offer codes have been set up, and we will seed them with readers, travel creators and tech journalists; the share cards they post will do the work that paid user acquisition would otherwise do.

Next, in this order: English-language travel creators and communities; a public gallery of share cards; Android. We will use RevenueCat Charts and Experiments to read each wave and tune the paywall before the next one.

About the maker

farstamp is built by Hundreds, the company founded by Ami Otsuka, a Japanese author and entrepreneur.

  • Her first book, 『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』 (Nikkei BP, the business and technology publisher of Nikkei, Japan's leading financial newspaper group, often compared to the Wall Street Journal, and owner of the Financial Times; 2025) — the record of building 100 apps in 100 days from zero programming experience — reached No. 1 in Amazon Japan's programming category and went into reprint.
  • Her new book, 『全部、AIに丸投げした。』 — 『気づいたら、24歳で海外ホテル暮らしの経営者になっていた』 (Shinchosha, one of Japan's most prestigious literary publishers, founded in 1896; October 21, 2026).
  • Talks and recognition: the keynote at PyCon JP 2025 (September 2025); a talk at Kyoso-no-Mori, Hitachi's Research & Development Group (May 2025); and the Special Award for AI Supported Education at IEEE CogInfoCom 2024 for her paper "Interactive AI for Software Development Learning". The full list, with dates, is at amiotsuka.com/news.
  • In 2026 she was selected for Forbes JAPAN's Women In Tech 30 (March).
  • Upcoming: a talk at TOKYO DIGICONX 2027 (January 13–15, 2027), a Tokyo trade show for digital content and AI businesses whose organising committee includes the Tokyo Metropolitan Government, announced on the same day as film director Mamoru Hosoda's.

Built With

Share this project:

Updates

Submission history