How Constraints Made My Product Better
Less is more.
It is a really overused phrase that has become a cliché, yet it still has not lost its relevance.
At some point, 'less is more' was exactly what the mobile‑first approach was about: first you build the mobile version of the site and only then the desktop one. That shift opened the era of the mobile web. Now, if a site or service does not have a proper mobile version, almost no one will use it and the product will never go mainstream.
Today, while building Saylify, I realized I have 'less is more' on steroids. First I built a full‑featured Telegram bot, then a Telegram Mini App (basically mobile‑first), and only now I am building a Web App. And here is what is interesting: since I had almost no way to control the bot interface (the max you get is button layouts and commands), I had to win not through UI, but in other ways.
First, I designed all the necessary internal API endpoints. In practice, there is an endpoint for almost every action, instead of a monolith like I had before. This made it dramatically easier to build both the Telegram Mini App and the Web App.
Second, the logical architecture is now polished to 100%. For example: there is a translation of the transcript, and when you call `summary`, what should happen? Summarize the translation, or summarize the original and then translate the result? The answer to questions like this is now the same everywhere, which gives predictability.
Third, as I build the Web App now, I am getting huge satisfaction because the constraints are almost gone. Streaming responses from the OpenAI API? Sure. Time zone calculations on the client? Of course. Clear callbacks for every event? No problem, especially since they are already implemented in the internal API.
So, constraints are not always bad. Sometimes they help you make the product more logical, stable and understandable, both for yourself and for the end user.
More to explore
You Probably Don’t Need Kubernetes or AWS
In IT, these two terms have become more than just standard requirements in any DevOps/SRE job listing. They are more like the clichéd ‘stress resistance’ in a r…
Escaping the Sunk Cost Trap: Why I’m Planning My Exit from ‘Portugal’
The sunk cost trap We often pour time, money, and energy into something and, even when there is no real result, we cannot walk away because ‘so much has already…
Two Kinds of Startups: Venture vs Garage Bootstrap
Two kinds of startups When you spin inside a certain field long enough, you start to forget that some concepts and terms are not obvious to people around you. T…
How Watching Exchange Rates Replaces Reading the News
Another useful side of tracking exchange rates in real time is that I learn about world events without reading the news. I do not have time to read the media ri…