The different layers of a web applications

There are three mandatory layers of any non-trivial user-facing web application. Storage, compute and view. The view is the front-end website and the mobile app(s). The storage is the database layer like MySQL or Mongo DB. The compute layer is the actual backend service serving the web content and related APIs.

Read More

The biggest impact of ChatGPT

In the decade of the 2010s, after Facebook became mainstream, social became a building block for websites. A lot of websites added a concept of user profiles consisting of a name, a display picture, a profile description, and the ability to see/follow the activity stream of other users. Slowly, this became the standard expectation.

ChatGPT will have a similar impact. More and more users will get used to asking questions in natural language. Eventually, all the FAQ and knowledge-base articles would be replaced with a single box where users will ask a question in their preferred natural language. And then even the idea of actions would switch over to that one box, that users can use to navigate around and perform actions in the web applications.

Why I prefer Obsidian for taking notes

I started using Google Notebook around 2008. Once I received a notice that it will shut down, I switched to Evernote around 2012. Unlike Google, note-taking is the central business of Evernote, I thought I would be fine. I was wrong. Evernote became terrible over time. Then I heard about a service called Notion. I deliberated and decided to wait out. Turns out a new cool kid on the block showed up soon enough. It was called Roam Research. They had such an enthusiastic fan following that they decided not to even have a freemium model. I was tired of moving notes from one proprietary system to another. And decided not to use either Notion or Roam research.

Finally, in 2020, I came across Obsidian and decided to make the move. Obsidian is a simple Markdown-based note-taking application. The best thing is that it does not store your notes. You can store your notes on your favorite cloud provider. And if Obsidian ever shuts down, your notes are not only readable in a plain-text editor, but also can be modified/viewed by a gazillion other Markdown editors. Obsidian isn’t as fancy as Notion with dynamic views or anything like that. But it gets the job done. And I can be certain that my notes will be accessible for decades to come.

Low code

I’m a big of serverless. In fact, in 2021, I believe that it should be the default choice and one should have a strong reason to deploy their own servers.

Read More

React Native

There are tons of hyped-up claims surrounding React Native that are worth addressing.

The reasons why companies run for React Native are usually,

  1. We already use Javascript for the website and now, we can build apps in that as well.
  2. We can use one codebase for Android, iOS, and web apps. Or at least, Android and iOS apps.
  3. Facebook uses it

Read More

Indeterminate Progress bar is an inferior UX design

60 milliseconds is when we notice something isn’t immediate. Any user interaction, that involves sending data over the network or doing heavy computation on it, usually takes way longer than 60 milliseconds. So, we end with a progress bar. There are two broad categories of progress bars, one that shows the absolute/relative progress, a determinate progress bar, and one that does not an indeterminate progress bar.

Read More

The two-step approach to big code modifications

We all have to make significant code changes from time to time. Most of these code changes are large. Consider the scenario that you merged one such significant change, and then other team members made a few more changes on top. Then a major bug is detected. You desperately make the fix. It makes it in. You declare a victory, and a few hours later, your colleague notices another bug/crash/performance regression. Your commit cannot be reverted. It isn’t just about you. Many others have built on top of the change you madeā€”the code sloths along in this broken state for a few days before you eventually fix it. Everyone has faced this issue at some point or the other.

Read More

Programmable Money and value capture

Money serves three purpose – unit of accounting, a medium of exchange, and a store of value. Cryptocurrencies have been compared to Programmable Money. Anything programmable requires an experimentation platform for iterations and improvement. Bitcoin seems to have won the “store of value” battle. Ethereum has the developer mindshare and is the preferred experimentation platform. Multiple cryptocurrencies are still fighting the battle to be the medium of exchange.

BTC dominance chart from CoinMarketCap

BTC dominance chart from CoinMarketCap

The amusing part is that every cryptocurrency startup envies Ethereum’s developer ecosystem and is trying to attract developers. But there isn’t any real value capture being the experimentation platform. A successful product has a high chance of leaving Ethereum and migrating users to its chain. The real battle, I believe, remains in becoming the medium of exchange, being the programmable Visa & Mastercard equivalent.