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:
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.
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.