RIP SMS: Why We Deserve Better Messaging
SMS is a bit of a mess. I’ve found that if I try to send a photo through it, the compression totally messes it up. If you send anything longer than a few sentences, you’ll have to chain messages together. It’s 2026, we’ve got gigabit fibre and modern encryption, but the default messaging protocol on our phones still runs on a standard that caps out at 160 characters and routes everything unencrypted through ancient cellular signalling.
The upgrade was supposed to be RCS, which stands for Rich Communication Services. Same default app, but messages travel over the internet via IP Multimedia Subsystem (IMS) instead of SMS pipelines. When it works, you get real media quality, typing indicators, read receipts, group chats that do not break when someone leaves, and since the GSMA standardized MLS end-to-end encryption in early 2025, your carrier cannot read your texts (at least in theory). iOS 26.5 includes support for it, though full cross-platform E2EE is still rolling out and depends on carriers actually implementing the spec.
That is, until your carrier decides not to bother supporting it at all.
What you actually get when RCS works
To be honest, RCS is basically WhatsApp without having to download another app. The media isn’t aggressively compressed. Groups have names, you can add or remove people and you can chat over Wi-Fi when you have no cell signal.
RCS Business Messaging is verified for businesses. This means companies have to prove who they are, so you see their logo and a checkmark. They can send interactive carousels, reply buttons, and “Add to Calendar” widgets. API aggregators like Twilio, Sinch and Vonage handle the heavy lifting by doing the smart routing. If your phone’s offline, they’ll automatically switch to an SMS fallback so the message still gets through.
From a developer’s point of view, it’s just a JSON payload to a REST endpoint. The Twilio SDK makes it pretty straightforward. Here’s a simple Python example that uses Twilio’s messaging service. You’ll need to set up an RCS sender and verify the brand first, though.
import os
from twilio.rest import Client
client = Client(os.getenv("TWILIO_ACCOUNT_SID"), os.getenv("TWILIO_AUTH_TOKEN"))
message = client.messages.create(
body="Hello from your favorite brand! Check out our new interactive deals below.",
messaging_service_sid=os.getenv("TWILIO_MESSAGING_SERVICE_SID"),
to=os.getenv("TO_PHONE_NUMBER")
)
print(f"Message sent. SID: {message.sid}")
Turning it on is easy, if your carrier allows it
Android: Open Google Messages, hit Settings > RCS chats, flip the toggle. Takes about 30 seconds.
iOS: Go to Settings > Apps > Messages, turn on RCS Messaging. Your phone verifies the carrier bundle, and you are done.
Unless, of course, you live here.
What happened in Bulgaria
Google used to run Jibe, their own massive RCS cloud infrastructure that let carriers use Google’s backbone for free. Recently, access changed. People can’t agree on why. Google has said that RCS is their service, but carriers and some reports have said that the problem is the version of the protocol or crashes. Whatever the cause, the result in Bulgaria was the same.
A1, Yettel and Vivacom still haven’t got their RCS service working properly. It’s not clear if this is down to infrastructure delays, problems with Google’s protocols, or cost prioritisation, but it’s the users who are paying the price. Apple needs strict carrier certification to enable the feature, so the iOS 26.5 update doesn’t help us. If you check Apple’s carrier bundles, you’ll see a big cross mark for RCS support on A1 BG, VIVACOM, and Yettel.
In Bulgaria, the downgrade happened without much noise. There was no warning, no press release, and no text from your carrier explaining why messages suddenly cost money again. One day the feature was there; the next, people were back to unencrypted 160-character blurbs and per-message charges like it was 2008. We had a modern utility, and the carriers, Google, or both, let it go to waste.
I am not the only one annoyed
It seems like loads of people on the Bulgaria and Google Messages subreddits were caught out by this. One user said they sent five texts before realising they were being charged for SMS again. Another person reported calling A1, only to find the support rep had literally never heard of RCS. Vivacom replied with a standard “we’re working on this feature” and no timeline.
The bottom line
RCS is solid technology. The E2EE promise, high-res media, verified business messaging, and clean APIs all work fine in countries where carriers and infrastructure providers have their act together.
But Bulgaria shows that a global standard is only as good as the local infrastructure and partnerships supporting it. We are kind of stuck paying for legacy tech until A1, Yettel, and Vivacom sort out their RCS situation, whether that is building their own servers, negotiating with Google, or both.