GTM Sauce

App Masters · 2026-10-24

How a Full-Time Teacher Built a Nearly $1M App Business

Eric Duffett, a full-time teacher, built Shot Pattern (golf strategy/GPS app) to ~$1M lifetime sales after 7 years of failed apps. He shipped a two-feature MVP in 3 weeks, grew on X, declined a $75K offer after benchmarking on RevenueCat, priced toward $75/yr, and scaled Meta install ads with a lo-fi screen-recording ad ($1.57 CPI, ~$100K net in a summer, funded on credit). Shorter paywalls lifted trials but cut revenue; an interactive tutorial onboarding lifted trials 19%. Ends with live audits of two viewer apps.

Play the episode

22 tactics

Shot Pattern · B2C · golf strategy and GPS app

$1,000 revenue by the end of the first June; users asked for more

After years of building an app for a problem users didn't feel, the founder refused to put life on hold for a big build. He shipped Shot Pattern three weeks after starting development (2023), using ChatGPT copy/paste to help with code he couldn't figure out alone. The app had only two features, neither offered by other golf apps (seeing strategy in real time by measuring sideways on the hole, a portable version of the Google Earth planning method golf strategy thought leaders already taught), and none of the features people expect from a golf app. The target audience was already primed by those thought leaders, so no convincing was needed.

Workedvalidationfeature-development
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Only channel in the first months; drove the first $1,000

In the first summer the only marketing was the founder sending out tweets and jumping into golf strategy conversations on Twitter/X. People who saw it signed up readily and sent direct messages praising the app and asking for more features.

Workedfounder-brandorganic-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

First viral tweet; reached a pro who won a tournament and led to a $75K offer

After buying a $5,000 golf course data API, the founder found it enabled a new feature: simulating 1,000 shots on a hole (Mark Broadie's method) using the golfer's own data and the course they're traveling to. Halfway through building it, he posted a teaser tweet on X saying the feature was coming, with a cheeky hook that it 'would be highly illegal' to use during play. The audience already believed in this way of thinking about golf.

Workedfounder-brandpr-launch
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

99th-percentile trial rates; turned down $75K and netted ~$100K the next summer

When a company offered to buy the app at ~$2K lifetime revenue and asked for a deck of tech stack and user metrics, the founder (finance background) saw that a multiple of revenue or profit would give a tiny valuation. He pulled the RevenueCat State of Subscription Apps benchmarks and compared his RevenueCat numbers: trial start rate and trial conversion rate were both 99th percentile, download-to-paid also very high. He concluded the small dollar amounts hid a strongly converting funnel and declined the $75K offer, despite the buyer threatening to build the feature themselves.

Workedexit-maanalytics-attribution
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Founder says it set up profitable paid ads; no before/after numbers

At $39.99/year he believed paid ads couldn't work, based on a Sub Club chat rule that you need at least $75/year. He looked at competitor pricing (top of the golf GPS market at $99/year) and chose ~$75 as a middle-to-top price, since the app still felt unfinished. Then he asked which features would make $75 feel fair to his target users, and with limited time (newborn, full-time job) built only the most valuable next step: shot tracking features, including recording demo videos at 4:30am.

Workedpricingfeature-development
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Ads worked from the start because the funnel already converted

Before spending on Meta he already knew from RevenueCat that trial start rate, trial conversion and conversion to paid were all strong (99th percentile vs benchmarks), so ads were 'fuel on the fire'. He says you can't jump to paid ads as the secret to success; you need data saying the app converts first, then get more people to see it.

Workedvalidationpaid-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

$1.57 per install (under $1 early); $1 spent returned ~$4

Once shot tracking was live, he set up a Meta campaign optimized for installs (trial start events were not wired up yet). He'd heard an ad set needs at least three creatives and that under $10,000/month spend won't exit learning, so he budgeted about $300/day using the few thousand dollars he had. Creatives: a UGC creator 'play this hole with me' video with screen overlay, a paid video from TikTok creator Speedgolf Rob, and a 30-60 minute screenshot voiceover he made in his basement. Meta put most spend on the basement video. He watched the dashboard daily and was ready to turn it off the moment it stopped working.

Workedpaid-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Got 80-90% of spend and beat both creator ads; $1.57 per install

Made in 30-60 minutes in his basement: a screenshot/screen-recording voiceover tutorial, with the QuickTime recording dot still visible, thumps and clicks audible and a misspoken number left in. Hook: 'most golfers could use a little help understanding strokes gained' (confusing to some, a chance for experts to feel knowledgeable). It then walks through a real 430-yard par 4 showing strokes gained for a drive down the middle, into the rough and into a bunker, and ends 'try out Shot Pattern so you can see strokes gained before you hit the shot'. It showed the core audience exactly what they already wanted to do.

Workedpaid-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

~$100K net income in one summer push

With ~$1.50 CAC returning $4-5 per customer (about $4 per $1 within 8 days), he planned a bank line of credit as a cushion until Apple payouts arrived, and ended up using an interest-free credit card, spending as much as he could while the math held. Because golf is seasonal, he pushed hard in July and August, then turned ads off at the end of the season.

Workedfinancingpaid-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Ads reached 1.8M and 1.3M paid views at $500/day; main performance channel

Ongoing process: build features centered on the ideal customer (often what users ask for), then grab a recently built feature, go with the first idea that comes to mind, clip it up and publish. Deliberately make it look unlike the other ads the audience sees. Run them in a Meta ad set at about $500/day and let Meta pick the best converters.

Workedpaid-socialfeature-development
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Meta barely served it; lost to a lo-fi founder video

Found TikTok golf creator Speedgolf Rob (hundreds of thousands of followers, featured in Golf Digest, eye-catching style, high engagement) after his videos kept appearing in the founder's feed. Rob offered: pay for him to play in a golf tournament and he makes an ad about using the app to prepare. The video ran as one of three creatives in the Meta install campaign. A separate UGC creator also made a 'play this hole with me' video for the app.

Failedinfluencerpaid-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Didn't go anywhere; switched to video

Before video, he tried static ads first.

Failedpaid-social
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Founder says these channels help together; no numbers

Alongside Meta, he advertised on podcasts and pays creators and influencers to share the app, cross-posting much of it on his own page. He gave the app to a YouTuber and now pays him to embed content in his videos.

Unknowninfluencerpodcast-sponsorship
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Trial starts rose each round, but trial conversion and LTV fell

With a contractor, ran three paywall experiments in a row, each shorter than the last, removing words until the paywall felt like almost nothing. Each was judged on trial start rate.

Mixedpaywallexperimentation
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

12% fewer trial starts (21% to 18%) but significantly more revenue

Against the contractor's advice, rebuilt a long paywall like the original: an image, a long list of features with descriptions, an extra line of social proof, and a 6-month package option for price anchoring. Goal: a user who sees the one feature they want plus lots more feels it's a great deal. Measured on revenue rather than trial start rate, against the short winning paywall.

Workedpaywallpricing
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Each screen lost users; lowest install-to-sign-up rate ever

Reviewed many apps' onboarding screens and built one like everyone else's: social proof, ATT prompt, permission requests, feature hints and personalized setup, screen after screen.

Failedonboarding
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Sign-ups up 8%, trial starts up 19%

Asked whether onboarding was too long or too boring, and instead of more screens built an immersive interactive tutorial: the user interacts with the onboarding, learns how the app works and how to think the way the app needs, before entering the app.

Workedonboardingproduct-activation
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Sign-ups 70% to 74%; no significant change in trials after 9,000 users

Noticed a big drop-off where the tutorial switched to a second situation (tutorial part two). Ran an experiment removing part two to shorten onboarding, measured in Firebase A/B testing on sign-up rate and trial conversion.

No effectonboardingexperimentation
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Started regular experiments; mixed results, including some wins

Over the summer, the solo founder hired a contractor with extensive golf industry and product management experience (outside apps) to build an experimental mindset and look for easy gains. They worked together over Slack on paywall and onboarding tests, with the contractor pushing simpler designs and the founder overriding him when he disagreed.

Workedteam-processexperimentation
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

The app is intentionally not for all golfers: it targets competitive golfers. When a casual golfer finds onboarding too advanced and leaves, he lets them go rather than simplifying, because making it not for them makes it more for his people. As a one-person side business he can afford a small TAM.

Unknownpositioning-nicheonboarding
App Masters · 2026-10-24

Shot Pattern · B2C · golf strategy and GPS app

Hasn't worked; competitors too entrenched and few target users search

Golf GPS is dominated by some of the oldest, highest-revenue apps (e.g. Golfshot, 10+ years). People searching generic terms are not his audience, who hang out in other places, so he chose paid ads over ASO.

Failedaso
App Masters · 2026-10-24

A meditation app for teen athletes · B2C · guest's earlier app

Years of near-zero sales; teens didn't see the problem or pay

As a coach he saw athletes' pressure and identity struggles firsthand and built a meditation/resilience app for high school athletes, working on it for four to five years.

Failedpositioning-nichevalidation
App Masters · 2026-10-24

Numbers mentioned

WhoMetricValueContextWhen
Shot PatternrevenueUSD 1M
approximate
Lifetime sales, shown on a sales chart slide2:50
Shot PatternrevenueUSD 1M/year
approximate
'Closer to a million dollars a year' this year2:50
Shot Patterntime to milestone3 weeksDevelopment time from start to App Store launch4:31
Shot PatternrevenueUSD 1,000
approximate
Revenue by end of June of launch summer; the goal was $1,000 for the summer10:10
Shot PatterncostUSD 5,000/one-timeUpfront purchase of golf course data API; its documentation revealed the feature that later went viral12:11
Shot PatternrevenueUSD 2,000
approximate
Lifetime revenue at the time of the acquisition offer; lifetime profit still negative14:34
golf company that offered to buy Shot Patternoffer valueUSD 75KOffer to acquire Shot Pattern; declined15:43
Shot Patternrank99 percentile
approximate
Trial start rate and trial conversion rate vs RevenueCat State of Subscription Apps benchmarks, at the time of the offer15:43
Shot PatternprofitUSD 1,000/year
approximate
First year's profit (seen at tax time after declining $75K)17:30
Shot PatternpriceUSD 39.99/yearAnnual price before preparing to run paid ads18:27
benchmarkMinimum annual price for paid ads to work, per the Sub Club chatpriceUSD 75/year
approximate
Guest adopted this as his target price; host disagrees and says founders succeed at ~$20/year18:27
marketTop annual price among golf GPS appspriceUSD 99/year
approximate
42:52
benchmarkAnnual price levels at which subscription apps can still succeed (host's founder conversations)priceUSD 20/year
illustrative
Host's counterpoint to the $75/year rule; says LTV matters more than price47:49
benchmarkMeta ad spend needed for a campaign to exit the learning phase (what the guest had heard)ad spendUSD 10K/month
approximate
25:16
Shot Patternad spendUSD 300/day
estimate
Daily budget of the first Meta install campaign25:16
Shot Patternshare80–90%
approximate
Share of Meta spend that went to the founder's lo-fi screen-recording ad (of three creatives)25:59
Shot PatterncpiUSD 1.57Final blended CPI of the first Meta install campaign25:59
Shot PatterncpiUSD 1
approximate
Under $1 per install in the campaign's early days25:59
Shot PatterncacUSD 1.5
approximate
Cost to acquire a customer from Meta (as the guest framed it)30:12
Shot PatternltvUSD 4–5per customer
approximate
Revenue per acquired customer within 30 days30:12
Shot Patternroas4 x
approximate
$4 back per $1 of Meta spend within 8 days (as explained to his wife)30:12
Shot PatternprofitUSD 100K
approximate
Net income over one summer of Meta ads (July-August push, then ads turned off)30:12
Shot Patternviews1.3M–1.8M viewsper videoPaid views on individual ugly ads (1.8M and 1.3M), all from Meta spend, not organic32:13
Shot Patternad spendUSD 500/day
approximate
Daily budget on the Meta ad set behind the ongoing ugly ads32:13
Shot Patternconversion rate21%
approximate
Trial start rate on the short winning paywall (control)37:32
Shot Patternconversion rate18%
approximate
Trial start rate on the long feature-list paywall (variant D); a 12% relative drop, but more revenue37:32
Shot Patternconversion rate+8%
approximate
Sign-ups after switching to interactive tutorial onboarding38:43
Shot Patterntrial starts+19%
approximate
Trial starts after switching to interactive tutorial onboarding38:43
Shot Patternconversion rate74%
approximate
Onboarding completion to account creation (sign-up rate) after removing tutorial part two; downstream trial conversion difference not statistically significant41:01
Shot Patterncount9,000 users
approximate
Users through the shorter-tutorial onboarding experiment so far; result still a wash41:01
personSpeedgolf Rob, TikTok golf creator paid for an adfollowershundreds of thousands
approximate
23:00