Inspiration

Japan's first-class licensed architect exam ends with a 6.5-hour design drawing test. In one sitting, candidates plan a building, draw it by hand, and write short technical explanations of their design choices.

I took that drawing test five times (2020–2024) and passed on the fifth attempt. I studied alone in some years and at prep schools in others. Two things stayed hard every year:

  1. Time management. 6.5 hours has to be split across planning, drawing and checking, and a single late phase can cost the whole attempt.
  2. Everything outside the drawing. The written explanations and the building knowledge behind them (building code, mechanical systems, structure) came from thick textbooks that are hard to review on a train.

I built Rank1 alone, as the app I wanted during those years: design, code, content, and the newsletter.

What it does

  • Drafting timer: Splits the 6.5 hours into phases (planning, drawing, checking) with presets. Phase changes are signaled by light, so it works silently in a study room.
  • Study log and mistake log: Records the time split of every practice session as a graph, plus a log of mistakes and fixes to review before the next session.
  • Written-answer cards: Questions for this year's assignment type, and real exam questions from 2016–2025 with the exam year shown on each card. Sample answers are color-coded by target / reason / result.
  • Knowledge diagram cards: Four decks (building code, mechanical systems, planning, structure), each with a diagram and a short text per card.
  • Every paid deck has free sample cards. Purchases are one-time (no subscription).

How I built it

  • App: Expo (SDK 57) + React Native + expo-router, TypeScript. iOS and Android from one codebase.
  • Monetization: RevenueCat (react-native-purchases). 19 one-time in-app products per store: a Pro unlock for the timer, eight card decks and an all-in-one bundle (each deck and the bundle has a regular price and a one-time discounted price). Each RevenueCat entitlement maps 1:1 to an entitlement key in the content data, so a new deck ships as data plus one product, not as new app code.
  • Paid content delivery: I store card content in Cloudflare R2 and serve it from a Cloudflare Worker that asks RevenueCat for the user's entitlements before returning a deck. New or fixed cards reach users without an app update or OTA.
  • I take prices in the app only from the store through RevenueCat offerings. The repo holds no price, so a price change in App Store Connect / Play Console never leaves a stale number in the UI.
  • Backend and analytics: Cloudflare Workers + D1 for in-app events. No personal data or IP is stored for app events.
  • Remote config (a JSON file on the website) for minimum version, exam dates and in-app notices, so announcements reach every installed device, old versions included.
  • Distribution around the app: a daily 7 a.m. newsletter since Aug 1 (Resend) and daily articles on note.

Challenges I ran into

  • Exam question rights. Using real exam questions needs permission, so I applied to the exam's administering foundation and received a written license in August 2026. The license comes with conditions (show the exam year, state that questions are edited, submit the content before release), and I built the app and a review site to meet them.
  • No exaggerated claims. Exam study products easily drift into "you will pass" marketing. I put two disclaimers on every store text and paywall: the content is not an official scoring standard and doesn't guarantee a pass, and the app is not affiliated with the exam body or any prep school.
  • Shipping content weekly without app releases. Separating content (R2 + entitlement check) from the binary let me release four new knowledge decks alongside a single store update.

Accomplishments that I'm proud of

Rank1 is a strongly seasonal app. In Japan, candidates study for the drawing test from August to early October, almost exactly the Shipaton window. So I started it as an experiment: if the app earned ¥200,000 in its first season, I would call it a success.

Sales have now passed ¥800,000 〔(about US$5,000)〕, and it may reach ¥1,000,000 by the end of September. I'm really happy and proud of this.

  • iOS released on Aug 6, Android on Aug 14, 2026.
  • Written-answer cards launched Aug 28; four knowledge diagram decks launched Sep 20.

What I learned

  • Purchases are decided in the first session. For most buyers, the time from first launch to purchase was under 30 minutes. So I focus on the onboarding and the free sample cards rather than later reminders.
  • Launch days move the installed base. On the written-card launch day, people who had installed the app weeks earlier bought for the first time. Since then, I release and announce on the same day.
  • More choices made the bundle sell. With four decks and an all-in-one bundle (five products), buyers mostly picked single decks. When I added four more decks on Sep 20, I kept the bundle at the same price (¥13,980, against ¥33,840 for all eight decks bought separately). From that day, the bundle became the main seller. It reminded me of Dan Ariely's Economist subscription experiment: the options around a bundle change how its price looks.

What's next

  • I'll keep adding content every week until the exam on Oct 11, 2026.
  • After the exam, I'll replace the content for next year's assignment type. I keep assignment names and years in data, not code, so I can re-release the app every exam season.

Built With

Share this project:

Updates

Submission history