New currency in Software Development
Tags: programming, opensource, webdev, news
Published: 2022-09-28 17:20:25

## Under the Hood
Software development is evolving very fast and we always have something new coming under the hood.

In the last month, I found so many interesting open-source packages that literally deserve the chance to try.

When I started my programming journey I was told much about architecture. My only attention is to look for highly extensible solutions in frontend and backend and architecture plays a very good role.

Because of this, I’ve covered so many stories about frontend architecture and how we can make it extensible to god knows what extent.

In fact, to reduce the reusable workload I create a [custom repo](https://ihatereading.in/customrepo) section on the website to easily download the repository with top-notch packages pre-installed of your choice.

## Not the only storyline
But that’s not the point of today’s story, we are completely in a chaotic world.

We have so many packages, tools, frameworks, and concepts to depend yet we are not able to develop the most extensible, fast and highly customisable products.

## Introducing a new trade-off currency in software development
Extensible, Customisable and Scalable are the new trade-offs or so-called new currency.

Let's explore this with my favourite section called real-world example.

## Supabase vs Firebase
Recently I post a tweet asking questions on the price fluctuations of Firebase alternative Supabase.

[Supabase vs Firebase Price discussion on Twitter](https://twitter.com/treyvijay/status/1572892495880794112?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1572892495880794112%7Ctwgr%5Ea6648ee86bf3adce8ad3ea5b237b066f80903885%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2Ftreyvijay%2Fstatus%2F1572892495880794112image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07)

Twitter is so good, you can directly solve your doubts with the largest community in the world instantly.

The discussion went good, even the Supabase founder Ant Wilson replied by attaching an article from tech crunch about the hike in google storage price.

But that’s not the point the most important thing the people mentioned about Supabase is we can directly eject the database and independently run it on our own server.

Imagine a few years down the line when your website got huge traffic you can simply eject supabase and runs your own backend servers independently.

This means scalable and extensible and further, we can customise the database to whatever extent we want. This is what makes people happy behind using supabase.

Another thing that motivates developers to contribute to the supabase is its open-source. They have sponsors and more than 480 contributors so far.

The firebase alternative is ready to crash the market and go higher and higher. But the real trade-off happens because it’s quite scalable, easy to use, customisable and extensible.

Let’s take another example that I am discussing a lot nowadays.

## Astro — the all-in-one framework
Astro follows Island architecture under the hood. Meaning loads each and every component independently and exclusively. This makes Astro quite fast in 2020 as compared to Next.js and other javascript competitors.

But that’s not the only thing why Astro is getting so much love and recognition.

Astro is termed as an all-in-one framework meaning we can write React, Svelte and Vue code in a single repository. We can use markdown extension to lazy-loading optimised image components and third-party like TailwindCSS and vercel integrations in a single repository.

[Shorts for Astro introduction](https://youtube.com/shorts/mOrNs53Syt8)

Imagine writing HTML or markdown directly for static pages such as blog and using React with Redux or Zustand for home pages that requires complex state management in a single repository.

This makes Astro highly extensible and customisable and we can do whatever we want in a single repository. This is the future I can see where we don’t argue among the frameworks to choose instead we just add whatever we want in whatever fashion.

## Next.js industry standards

So let’s understand Next.js developed by Vercel. Next.js file-based routing is loved by almost all frameworks across the globe. Recently I read the post from the Expo team that helps to develop apps that work across Mobile and desktop.

Expo itself supports new file-based routing, in fact, Astro provides file-based and dynamic routing just like Next.js did.

Read the tweet by the Expo team member introducing new file-based routing in Expo.

[Twitter thread by Expo team on releasing file-based routing](https://twitter.com/Baconbrix/status/1574837248029331495?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1574837248029331495%7Ctwgr%5E1f5a1f3d7232ea3cd5541bbbaa13536891f349e2%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2Fbaconbrix%2Fstatus%2F1574837248029331495image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07)

Next.js set the new standard by providing an extensible solution when it comes to architecture in the front end. People loved this and somehow made it an industry tradition.

Just providing an extenisble solution makes the product more transactional and acceptable and becomes the new currency to make a trade-in software development.

## Tinder Swipe Era
We all loved the tinder swipe effect and getting used to it very well. Tinder makes the trademark in the industry for providing the most effortless user experience.

In this story where [Josep Ferrer](https://uxdesign.cc/swipe-left-swipe-right-but-why-tinder-ux-ui-simple-dating-mobile-app-swiping-design-4d2295d80407) covered how tinder thinks and creates the most effective functionality. This single functionality disrupts the market and because of this, we can witness more swipe functionalities on the browser itself.

Because it’s scalable and extensible and easy to use people are loving it including developers.

## Xstate — The futuristic state management
Xstate is the state management library that is so underrated. The most important thing about Xstate is its extensibility meaning you can use it React, Vue, Svelte and even with vanilla javascript.

If you want to learn here is the introduction shorts on the Finite State Machines concept.

[Introduction to Finite State Machines](https://youtube.com/shorts/JKq3xiMaVsY)

Xstate is not constrained to a single framework you are using which makes it powerful.


![Xstate packages list for other frameworks](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1a748zytxgmgphjbpvr3.png)

Understand that in future if we want to remove React then only the UI component required a change, the entire UI logic and business logic can still remain untouched.

we can replace React with the new framework easily and this all is possible because Xstate is extensible with other libraries.

## Headless UI
This is quite a trending concept and people are loving it including me

Let me explain, earlier when we have to develop UI we use third-party packages like Material UI, React Bootstrap or Ant Design and add the logic to the components.

To create the website according to your theme we have to override the CSS or add the new themes to each and every component provided by these third-party libraries.

So these libraries come with the cost of customisable and extensibility that they don’t understand until they have a competitor in the market.

## Competition is good for consumers
I am talking about Mantine dev this is a headless UI library that only provides components and you can directly add your styling to each component. No overriding, time-saving, extensible and customisable components library.

Now, look what happens when we have so much love for mantine.dev and headless UI. The Material UI backed by google itself developed and launched the MUI Base called Headless Material UI.

[MUI Base release twitter thread](https://twitter.com/MUI_hq/status/1570164458118418433?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1570164458118418433%7Ctwgr%5Ecf7d37c4e33dbaccf1c6424346da95a0b5f4c7e9%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2Fmui_hq%2Fstatus%2F1570164458118418433image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07)

This is the power of open-source and hence new currency to make transactions called Extensible, Customisable and Flexibility.

Even another React Frontend UI library Chakra UI is proceeding in this direction by creating a headless UI library without providing any styling.

We are having more and more libraries that will provide only the functionality and you take care of the design and looks and styles basically making it highly customisable and scalable and extensible.

In addition, [Chakra UI](https://chakra-ui.com/) is planning to go further, they will use Xstate in the business logic for a component so that they can provide highly customisable and extensible components that can be used directly with React, Svelte and Vue and saves a lot of their time in creating components for each of the individual frameworks.

[Chakra UI team have named it Zagjs](https://zagjs.com/)

I have asked directly with the Chakra UI founder about this new headless UI library using Xstate in the backend. Here is the reply —

[Chakra UI founder on releasing Zagjs](https://twitter.com/treyvijay/status/1575128399256829952?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1575128399256829952%7Ctwgr%5E7202bc7d5acb19a2b26e6e72d70776e8821a97e2%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2Ftreyvijay%2Fstatus%2F1575128399256829952image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07)

The idea is to use Xstate to create a Headless UI library that is highly customisable, extensible and scalable making it a high-standard product and easy to trade off among developers.

See, I told you Twitter is quite a product, you can talk directly to the founders, team members and to whomever you want.

## USD in Trade = Extensible, Customisable and Scalable in Software development
Just like the USA did in the 90s, swapping GOLD with USD to make any trade in the world.

Well, this is the story I can see with all other third-party packages, companies and open-source products. All of them are somehow promising to be in among one of the categories and that’s the right way to make products for developers and consumers.

## Encouragement is still rare
But we all should also understand one thing, irrespective of making such high standard promises these companies are working extensively hard to stand on it.

It’s very easy to condemn the product or third-party or to say bad about any package or software we have used.

Developing and maintaining open-source products is quite a task and a lot of developers are not even getting paid for the hard work. We should understand that competition should stay alive but it should not make people jobless instead it should create more opportunities.

That is why I covered most of the underrated third-party open-source packages a lot.

Recently, I post on LinkedIn mentioning Moralis Web3. Ironically, the moralis team itself showed their love in the comment section.

[LinkedIn Post for Moralis Web3](https://www.linkedin.com/posts/shrey-vijayvargiya-b62a3a105_rainbowkit-activity-6980450163530039297-4B-t?utm_source=share&utm_medium=member_ios)

We should all encourage it and as I always add my favourite —

> Technology doesn’t evolve over time on its own it’s the people who are working extensively hard to make it happen.

So support them show your love share their good work with your audiences and encourage them to do such a high standard of work.

## Conclusion
It is good to see competition and I am looking forward to where we are heading in future. Will we always be competitive in nature among the frameworks languages or we will instead support each other to keep working for betterment?

Well, time will tell but seems like software development is on the good track so far and people are not concerned about money much and paying more attention to providing top-notch and best services.

If you are any kind of open-source contributor then DM me over Twitter about your product or mention it in the comment section I will certainly reply and try to use your product.

My good wishes are to all open-source contributors and developers you are doing a good job, KUDOS.

Keep developing
Shrey
[iHateReading](ihatereading.in)