A rep from an app-building agency pitched a coffee shop owner I know on a "branded loyalty app." Push notifications for the daily special. A digital punch card. Order-ahead. The quote was $38,000 to build, plus a maintenance retainer. The owner almost signed.

Full disclosure: I work for ReadySMS, so I sell text messages for a living and I have a horse in this race. But the reason I talked him out of the app had nothing to do with what I sell — it had to do with the fact that almost nobody was ever going to download the thing, and the ones who did would silence the notifications within a week. Let me show you the math both ways.

The build cost is the small problem — adoption is the killer

A custom native app for a single-location business runs $30K–$60K to build once you count both iOS and Android, backend, and design. Call it $40K. Then there's the part nobody puts on the quote:

  • Apple + Google developer accounts and ongoing store compliance — every OS update can break something.
  • A maintenance retainer, usually $500–$2,000/mo, because a shipped app is never "done."
  • The download problem. This is the one that sinks it. You have to convince a customer to go to a store, search, download, create an account, and grant notification permission — for a coffee shop. Realistically maybe 5–15% of your regulars ever do it.

So you spend $40K plus a retainer to reach a fraction of the people who already come in every week. Then iOS asks them "Allow notifications?" and a big chunk taps Don't Allow on reflex. Push open rates for local-business apps sit low — often single digits to low teens for promotional pushes, and that's of the people who both downloaded and left notifications on.

SMS reach: no download, no permission prompt, no app store

A phone number is the install base you already have. Every regular who's ever given you their number at checkout or on a form is reachable — no download step, no store account, no OS permission dialog. Opted-in SMS open rates run high — commonly cited around 90%+, and even discounting that as an industry-friendly figure, texts get seen at rates a push notification never touches.

The comparison that matters isn't "app vs SMS reach in theory." It's "the 8% of regulars who downloaded the app and kept push on" vs "the 60–80% of regulars who gave you a number and stayed opted in." One of those lists is an order of magnitude bigger for a fraction of the cost.

What an SMS list actually costs to run

Here's a realistic monthly bill for a coffee shop, gym, or salon with 1,200 opted-in regulars, texting them four times a month (a special, an event, a reminder, a loyalty nudge). Standard offers and reminders fit in one 160-character segment each.

On ReadySMS Standard pricing that's $0.02/segment plus the $0.0045 carrier pass-through — $0.0245 all-in per segment.

Line itemMathMonthly
4 sends × 1,200 contacts × 1 segment4,800 segments × $0.0245$117.60
10DLC brand registrationcarrier fee~$10
10DLC campaign registrationcarrier fee~$20
Total~$147.60/mo

At 1,200 contacts and four sends, you're at ~$148/mo including the compliance registration you only pay once for and then carry. Text a smaller salon list of 400 regulars twice a month and you're under $50/mo all-in. Either way, that's the maintenance retainer on the app — before you've paid the $40K to build it.

And the segment rate isn't a marked-up mystery. The $0.0045 carrier fee is itemized as its own line, not baked into a rounded per-message number.

Watch the segment count, not just the contact count

The one place SMS costs sneak up is message length. A single segment is 160 GSM-7 characters. Go over that and it splits into 153-character multipart segments. Drop in a single emoji and the whole message switches to unicode — the limit falls to 70 characters per segment.

So a cute 150-character promo with one 🎉 in it is already three unicode segments, not one. That same 1,200-contact send jumps from 1,200 segments to 3,600:

  • Plain 150-char text: 1,200 × $0.0245 = $29.40
  • Same text + one emoji: 3,600 × $0.0245 = $88.20

The emoji tripled the cost. Not a reason to never use one — a reason to know it costs money. Keep offers tight and emoji-free and your per-send stays cheap. The cost calculator will do this arithmetic for you before you hit send.

The app can never do the one thing SMS does automatically: reply

A push notification is a one-way megaphone. A text is a conversation. When a regular replies "do you have oat milk today?" to your text, that reply lands in an inbox and you answer it. That two-way loop is where a lot of the loyalty actually lives — and it's included, not a separate build.

With ReadySMS that inbox is native, and if you run GoHighLevel the messages sync two-way into your CRM per location. Beyond the text list you also get the pipeline, templates, automations, and a power dialer without per-seat fees — the full platform is bundled, which for a small business means you're not stitching together five subscriptions to replace what the app promised.

A couple of the highest-ROI uses have nothing to do with promos:

  • Missed-call auto-text-back. When your line rings out during a rush, an automatic text catches the caller instead of losing them. That's often a real job walking away at a service business.
  • Review requests. A well-timed text after a visit — about three hours after checkout beats same-minute — quietly builds your Google rating.

The compliance piece you don't get to skip

SMS isn't a free-for-all, and this is where an honest post earns its keep. You need A2P 10DLC registration to send to US numbers reliably — unregistered traffic gets silently filtered by carriers. ReadySMS handles brand and campaign registration in-app; approval is typically 1–3 days and often same-day.

You also inherit responsibilities the app never made you think about:

  • Opt-in. Every number on your list needs consent — a checkbox at signup, a keyword-to-join sign at the register.
  • STOP handling is automatic; an opt-out propagates so that contact can't be texted again.
  • Quiet hours are enforced so you're not blasting a gym list at 6 a.m.

None of this makes you lawsuit-proof — compliance is ultimately the sender's job — but it's real risk reduction baked into the platform rather than something you bolt on. For a single location, standard 10DLC at ~$10/mo brand + ~$20/mo campaign is all you need; skip the paid brand vetting unless you're sending serious volume.

When the app is actually the right call

To be fair: if your entire business model is order-ahead and mobile payments — a fast-casual chain doing real throughput, a fitness studio whose class-booking is the product — a purpose-built app earns its keep, and push is a feature of it rather than the whole point. The math flips when the app is the storefront, not just a notification pipe.

But if you're a coffee shop, a gym, or a salon and the honest goal is "reach my regulars with an offer and let them text me back," you don't need $40K and a maintenance retainer to do it. You need their phone numbers, an opt-in, and a list.

Start with the numbers you already have. ReadySMS gives you 2,500 free credits and no credit card to test a first send, and the pricing page plus the calculator will tell you your exact monthly cost before you commit a dollar. Run one send to your regulars and compare the replies to what a push notification would've gotten. That comparison usually settles it.