After co-founding a startup and being part of the rollercoaster for almost six years, I decided to embark on a new adventure. I was curious if I would be able to make a living selling my software, work from anywhere in the world and live the life I wanted. As the title suggests, I'm already enjoying many of my goals, I decide when, where and what I work on, and now I'm on a mission to help others achieve the same.
So there I was, starting from scratching, wanting to build the things I needed, something I would love to build without anyone telling me differently. By the way, this freedom we as developers experience is fantastic; this is why I love programming so much. Think about it for a minute; you can build anything you can imagine.
My new adventure began when I heard more and more about this thing called "Electron," which allows you to build cross-platform desktop applications using web technologies. I thought it would be cool to create an Electron application and came up with the idea to create a little application that could interact with my Laravel applications via an API.
I've had a lot of fun learning to build an application with Electron, and it didn't take too long before my first application was ready to be shipped to the world. I started to wonder how I reach people who would benefit from my little contraption but also how I could make sure I was able to ship updates to the users who would use my application.
Electron ships with an auto-update module that "should" make it easy to distribute updates, but it was pretty challenging. A friend of mine was running into the exact same problem. So I looked for an off-the-shelf solution that would make it easy to manage updates but found no promising solution. Of course, I decided to build an entirely different product just to solve this 🙈.
Introducing Unlock.sh 🥁
I had my MVP ready in a couple of weeks of writing code, and I could ship updates to Electron applications just by creating a new release on GitHub. At the same time, I also started to share what I was building on Twitter to see what other people would think of my product and if they had any feedback.
As it turns out, Twitter is an excellent platform for connecting with new people and getting feedback early on. I've had people cheering for what I was doing and were starting to share great suggestions, like adding more distribution repositories like Composer for PHP, NPM/Yarn for Javascript, Ruby Gems, and Python wheels. It didn't stop there; people would suggest more solutions they would love to have, like integrated billing.
At the same time, I've also been working on my next Electron application, but this time, it required payment. Selling my first commercial application would be a good test case to see if all facets would work together. Luckily it did! I sold hundreds of licenses, and Unlock took care of everything without a sweat!
At this point, it started to sink in that I've created a full-fledged platform that could help anyone sell their software in minutes and have Unlock take care of everything so developers could focus on what they love to do; writing code.
Not knowing the consequences, I launched Unlock on Product Hunt in January. The response was out of this world; little did I know so many people could benefit from my product. I've made it my mission to help anyone make a living selling their software as an all-in-one product platform.
Since then, I've seen some really fantastic products being sold, like Showcode, a tool that allows you to generate beautiful screenshots of your code, or Refine, a visual query builder for Laravel that saves countless hours writing queries.
The next project
While I was building Unlock, I needed a modal that works with Livewire. Unable to find anything, I made my own open-source package that has been downloaded over 400.000 times.
To support the ongoing development, I decided to build a Pro version of the various free components that I've made. Wire Elements Pro pre-sale was sold out in about 5 minutes, which was ridiculous 🤯. The best thing was that I didn't have to figure out billing, licensing, or distribution again; I simply connected by GitHub repository to Unlock and was able to sell the pro packages in a few minutes.
The compounding effect
The great consequence of selling software online is that revenue provides you with more opportunities to create more amazing applications, and revenue will compound. It can also be an excellent way for open-source maintainers to generate revenue by upselling their software's premium/pro versions to ensure they can continue maintaining their free projects.
For anyone out there who would love to start selling software online but doesn't know where to start, build something that solves one of the problems you are having right now. I guarantee others out there have the exact same problem and would love a solution.
How Unlock can help
Unlock is the easiest and most flexible way for companies and developers to sell, license, and distribute their products. Unlock's APIs and entire ecosystem of offerings lowers the time to market for a new product or makes it easier to manage existing products.
- Private PHP Composer Packages
Use Unlock as your private Composer repository and let your user install your private packages with only four lines of code. - Private Node NPM / Yarn Packages
You can also use Unlock as your private NPM/Yarn repository. - Private Python Packages
Use Unlock as your private PyPI repository to sell, license, and distribute your Wheels. - Private Ruby Gems
Use Bundler and Unlock's private repository to sell, license, and distribute your Gems. - Electron applications & Tauri applications
Use Unlock to secure your Electron application with license validation and ship auto-installing updates.
If you have any questions, reach out to me on Twitter.