I just discovered a way to build a billion-dollar startup entirely from free open source software from the most talented programmers in the world.
Actually, everybody knows that already, like why pay an engineer when you can just use their stuff for free on Github.
In today's blog we're going to cheat off the smart kid's homework and look at some of the coolest open source libraries that you've never heard of. Tools that will make your apps faster, better looking and less expensive to run.
You'll ask yourself how have I not been using that already? and that brings us to library number one:
Here's a problem that anybody who's ever built a website is faced. It's too slow even if you work really hard to create a tiny JavaScript bundle. The product manager will eventually tell you to add a bunch of other chunks like Mixpanel, Intercom and Google analytics. These third-party scripts clog up the main thread and will make your app slow. No matter what luckily there's an open source library called Partytown that can run third party scripts from a web worker. JavaScript is single threaded but modern browsers allow you to run background jobs via web workers. Partytown will offload any scripts that don't deal directly with the UI into a web worker and that means the only thing on the main thread is your UI which leads to a faster more responsive website.
Another problem that every app developer will need to solve is user authentication. Firebase is great but it's somewhat feature-limited. Auth0 is great but it's expensive and that brings us to Supertokens which is an open source authentication solution. It provides SDK’s for runtimes like Node and Python allowing you to quickly self-host a fully featured authentication system with support for 0auth providers, passwordless login, but most importantly it deals with session management and security.
Pretty cool, but it's got nothing on this next one. Here's a pro tip if you're building an open source library make sure that the readme includes phrases like blazingly fast, bleeding edge, holistic approach and game changing. Because they make your library better the same way putting flame stickers on a car makes it go faster. Many businesses out there need to build their own full text search engine either for internal data or to build a search engine for their customers. You could go with Elasticsearch but it's expensive and complicated. If you want to self-host, there are two very promising open source alternatives. One is Meilisearch implemented in Rust and the other is Zinc implemented in Go. Both provide a fast-simplified way to build your own search engine.
Now, our next library Trcp. It is exceptionally cool but a little harder to explain. If you're building an API today, there are two main approaches REST and GraphQL. I won't go into the differences right now although. But there's another less talked about approach called RPC or remote procedure call and basically, it's just a URL on a server. But unlike REST that corresponds to an entity, it corresponds to a function that you want to run on the server. This approach actually makes a ton of sense for many modern applications. Trcp allows you to build entirely type safe API’s without the need for schemas or code generation like you would with GraphQL. Overall, I think it has the potential to fundamentally simplify the way we build full stack web applications.
Speaking of simplification, one company that has simplified the modern database is Airtable. The only problem is that you have to pay a company to use it. If only there was an open source alternative, NocoDB does exactly that. It's an open source Airtable that can be built on top of your own Mysql or Postgres database. In other words, it's an open source no code database or smart spreadsheet.
As a developer another piece of software you may want to replace is Postman, your http client. An awesome open source alternative is Hoppscotch, which is built with Vue.js and Typescript entirely as a progressive web app. Not only is its open source but you can go use it in the browser right now at hoppscotch.io and then install it as a PWA on your desktop. It runs in a native window and allows you to interact with your file system.
Now, if you've ever coded in Python, then tried Javascript later, you might be shocked at how difficult it is to work with multi-dimensional arrays. In python we have libraries like Pandas that can do all kinds of useful stuff to an array or data frame. Not many people realize that there's a library called Danfo.js that is inspired by Pandas and can do many of the things you know and like read a .csv file and process the data within it before it gets sent to a machine learning library like Tensorflow.
That's pretty useful but the hardest thing in front-end web development is making your website look good. There’re a million different tools out there that can help you do that but one I’ve been really loving recently for React is Mantine. Not only does it have a bunch of well-crafted UI components but it also has a bunch of built-in hooks that handle many of the annoying things that you'll come across when building a web app. Like debouncing an input or paginating a collection of items. On top of that it has optional packages for a notification system, rich text editor and a drop zone for file uploads.
The problem with all the libraries that we've looked at so far is that they require you to know how to write some code. If you have an idea for a full stack application but want to skip the whole learn to code part, an open source tool to check out is Amplication. It's a tool that can automatically generate both your frontend and backend code based on relationships to data models in a database that you can manage visually. The backend is built with other open source tools like node Next.js and Prisma while the front-end is based on React. Even if you don’t know how to code this is a tool that can speed up your workflow.
Wish you will be using one of these libraries in your next projects.