Ask HN: What open-source projects you built yourself? How you maintain it?
What you have built in the open-source, and why you have chosen to make it open-source.
Have you found a sustainable way to maintain the project active? If yes, what's your method?
23 comments
I developed osTicket [0] - a popular ticketing system. I was an early Linux user so open source made sense. Accidentally turned into a real profitable business- with full time devs & support to maintain the project. We have a SaaS [1] offering and provide commercial support to enterprise users.
[0] https://osTicket.com
[1] https://SupportSystem.com
[0] https://osTicket.com
[1] https://SupportSystem.com
When have you started thinking about making it a profitable project?
Did it start from a community need, or the project started as a commercial open-source solution?
Community needs at first - I had no intention of turning it into a business. I did paid consulting for years until SAAS became a thing that users demanded.
Thanks for your words! Did you started with the Saas business model or you served some support services before.
I'm having some asking from my community to open an enterprise support to my project and then we will see at the opportunities for other project, like a saas solution
I'm having some asking from my community to open an enterprise support to my project and then we will see at the opportunities for other project, like a saas solution
When we started, circa 2003, SaaS wasn’t a thing! Initially I focused on commercial support - we still do it for those who want to self host with someone to blame.
That said - there’s no reason not to explore both options from the start.
That said - there’s no reason not to explore both options from the start.
I built a head tracking mouse replacement. It’s assistive tech for people with paralysis, bad RSI, etc. The software is fairly polished with a decent GUI. I used OpenCV and NumPy for the visual processing. Aspects of it were based on a good technical paper Microsoft put out on mouse ballistics. There are some commercial products that do the same thing, but at least compared to the ones I’ve tried, mine is more precise, and much less susceptible to background noise. The latter ends up being pretty important for long term usability. I built it to be cross-platform, Windows, Mac, and Linux. I’ve used it every work day for the past 8 years; it totally cured a bad case of RSI I was having; for that alone I have to consider it a total success.
I chose to open source it because I decided ultimately it was way more of a niche business than I wanted to be in, and I wasn’t convinced it was a money maker. I figured maybe I could help some people who needed it.
I presented it at a major hacker conference; the same year Edward Snowden was the keynote, that was very cool. So what happened after that? I think it went from having 1 to 4 stars on Github (and zero forks). I’ve never heard of anyone using it. It’s there if anyone wants it. How do I maintain it? If I find a bug that bothers me enough, or an OS compatibility issue comes up, I fix it. These days I only really maintain compatibility with Linux and only a dedicated hardware mode, that uses an Arduino to get foot pedal inputs for mouse clicks.
This can’t be an uncommon scenario, you make something cool, release it, and all you hear is crickets. The software was always single-purpose: a tool for me to do my work. Without being hyperbolic I can say it literally saved my career. One other unexpected side effect: any job interview in which I’ve gotten far enough to talk about this project I’ve gotten an offer. I don’t think the code is that amazingly clean and it’s not solving an impossibly difficult problem, but there’s something to be said for making stuff that actually works and having the entire code base visible for review.
I chose to open source it because I decided ultimately it was way more of a niche business than I wanted to be in, and I wasn’t convinced it was a money maker. I figured maybe I could help some people who needed it.
I presented it at a major hacker conference; the same year Edward Snowden was the keynote, that was very cool. So what happened after that? I think it went from having 1 to 4 stars on Github (and zero forks). I’ve never heard of anyone using it. It’s there if anyone wants it. How do I maintain it? If I find a bug that bothers me enough, or an OS compatibility issue comes up, I fix it. These days I only really maintain compatibility with Linux and only a dedicated hardware mode, that uses an Arduino to get foot pedal inputs for mouse clicks.
This can’t be an uncommon scenario, you make something cool, release it, and all you hear is crickets. The software was always single-purpose: a tool for me to do my work. Without being hyperbolic I can say it literally saved my career. One other unexpected side effect: any job interview in which I’ve gotten far enough to talk about this project I’ve gotten an offer. I don’t think the code is that amazingly clean and it’s not solving an impossibly difficult problem, but there’s something to be said for making stuff that actually works and having the entire code base visible for review.
Hey, this is really cool. Could you direct me to the GitHub? I'd be very interested to check it out.
On a less selfish note, though I've no disability of my own (yet), I appreciate you building and open-sourcing such a project.
On a less selfish note, though I've no disability of my own (yet), I appreciate you building and open-sourcing such a project.
I'm working on https://github.com/imvetri/ui-editor and its called ui-editor. It started out as an experiment to try building an in-browser reactJS code renderer and later I improved it so that it can generate reactJS code along with it. Now I'm trying to build few tools within it that will help me to design components and generate the code for it.
It is my hobby project, whenever I learn some interesting implementation techniques used in other projects I use it in my tool. There are no users for my tool so there is not much maintenance work going on. I usually try to implement ideas that I get and make it as part of the tool's features.
For every idea I start with pen and paper and then into implementation of it. I'll make sure I wouldn't bring in complications so I'll take few weeks for the idea and technique to implement to be strong. Whenever I get free time during my office hours like release is over, or I'm on a leave or I'm blocked I'll make tiny changes. Whenever I get a long break from office like long weekends, I'll spend a productive time with it.
Usually I take breaks and do not try to implement that is hard for head. If something feels smooth, I'll jump in to implement it.
It is my hobby project, whenever I learn some interesting implementation techniques used in other projects I use it in my tool. There are no users for my tool so there is not much maintenance work going on. I usually try to implement ideas that I get and make it as part of the tool's features.
For every idea I start with pen and paper and then into implementation of it. I'll make sure I wouldn't bring in complications so I'll take few weeks for the idea and technique to implement to be strong. Whenever I get free time during my office hours like release is over, or I'm on a leave or I'm blocked I'll make tiny changes. Whenever I get a long break from office like long weekends, I'll spend a productive time with it.
Usually I take breaks and do not try to implement that is hard for head. If something feels smooth, I'll jump in to implement it.
I'll start. I'm working on an open-source, cross-platform app to manage Cloud Providers credentials for developers.
The project started from a work need; as a consultant, it was a daily task to switch from a cloud account to another, and I was looking for a secure and easy way.
The project grows rapidly, and I'm looking to add support to the solution for the enterprise that is adopting the solution at the company level.
In the community, I've had some requests for troubleshooting and bug prioritization and granting a certain level of continuity. I think that a support option for the enterprise is the best option.
The project started from a work need; as a consultant, it was a daily task to switch from a cloud account to another, and I was looking for a secure and easy way.
The project grows rapidly, and I'm looking to add support to the solution for the enterprise that is adopting the solution at the company level.
In the community, I've had some requests for troubleshooting and bug prioritization and granting a certain level of continuity. I think that a support option for the enterprise is the best option.
I have built a few open-source projects. I choose to make it open source because it is more useful than not being open source. However, currently I only manage them by myself, and they are only active when I am choosing to work on them. But if someone else is interested, you can join too. (Currently, the one I am working on mainly is the puzzle game engine called Free Hero Mesh.)
I built a few in the past, typically with a friend or two, but they were dying together with the initial hype/interest.
So, lately I tried to focus on bigger challenges and set up companies to handle the os project. My passion is security which I think should be more open. Cryptography is pretty much open nowadays (meaning everything we use crypto-related is likely open), but many other areas in security are not, e.g. authentication.
First project SoloKeys: https://github.com/solokeys/solo
An open source security key, FIDO2 certified, open hardware and firmware. Profitable, revenue selling the hardware + kickstarter campaigns.
Second (newer) project Saasfrom: https://github.com/saasform/saasform
A modern auth system for SaaS, with teams & payments. Revenue will come from cloud solution. Just started, onboarding the first beta customers.
So, lately I tried to focus on bigger challenges and set up companies to handle the os project. My passion is security which I think should be more open. Cryptography is pretty much open nowadays (meaning everything we use crypto-related is likely open), but many other areas in security are not, e.g. authentication.
First project SoloKeys: https://github.com/solokeys/solo
An open source security key, FIDO2 certified, open hardware and firmware. Profitable, revenue selling the hardware + kickstarter campaigns.
Second (newer) project Saasfrom: https://github.com/saasform/saasform
A modern auth system for SaaS, with teams & payments. Revenue will come from cloud solution. Just started, onboarding the first beta customers.
so you decided to open the company and the open-source project at the same time right?
Why Saas is the choice for the first commercialization model?
I can suggest this community, it's helping me a lot on lot of choices to be made in the COSS community:
https://www.coss.community/
Why Saas is the choice for the first commercialization model?
I can suggest this community, it's helping me a lot on lot of choices to be made in the COSS community:
https://www.coss.community/
Open source came first, we tested a bit, then incorporated the company a few months after (in both cases).
Saas as in monthly subscriptions because it helps with predictability. Meaning that if you reached 100 customers each paying $99/mo, for the next few months you can safely expect to make O($10k).
Saas as in monthly subscriptions because it helps with predictability. Meaning that if you reached 100 customers each paying $99/mo, for the next few months you can safely expect to make O($10k).
I've built whm [0] also known as WiFi heatmap generator. This project is actually just a week old. For the past few weeks I was searching for a proper tool that can benchmark and profile my Access Point locations at my home. Tried a lot of android and windows apps and got frustrated using them. So I ended up making whm and releasing it to public. The project currently is able to capture metrics like WiFi latency, jitter TCP and UDP bandwidth across iperf3, speedtest and librespeed. So far its only me who is maintaining it and hopefully some might be interested in it.
[0]: https://github.com/Nischay-Pro/wifi-heat-mapper
[0]: https://github.com/Nischay-Pro/wifi-heat-mapper
nice project! have any idea on how to comunicate the project properly?
I've seen so far that is truly important create a community behind a project, and that's the true power of open-source, because if there is an audience and a community interested in solving a common problem, it will be also something available to pay for a solution tha solve a common problem
I've seen so far that is truly important create a community behind a project, and that's the true power of open-source, because if there is an audience and a community interested in solving a common problem, it will be also something available to pay for a solution tha solve a common problem
Yeah, I agree. The initial stages of releasing to public is always rough. You need to gain traction and be able to capture a suitable audience who is willing to use the product. Unfortunately open-source projects are not some product you can make ads on and show it on TVs or billboards. But thankfully there exists platforms like Hacker News and Reddit. Two good platforms where you can post about your product. While its more specific on Reddit, you need to share it on a subreddit you think whose audience closely resonates with your project.
Once your project becomes popular that's usually when companies start looking at it. And when you reach that stage you probably already have established a community for your project.
Once your project becomes popular that's usually when companies start looking at it. And when you reach that stage you probably already have established a community for your project.
I completely agree with you, also I can suggest a model to measure the gravity of your community in an open-source project, take a look at Orbit:
https://orbit.love/
I've built secure-electron-template [0] which is a secure-by-default Electron template for writing apps. I made it open source because I'm not motivated to build this for a profit (then it becomes work). The project is sustainable because it's a template, and once people decide to use it, they make their own changes to their app. It's assumed a template is, a template. This doesn't make me any extra work besides fixing bugs here and there or improving things at my own pace.
[0]: https://github.com/reZach/secure-electron-template
[0]: https://github.com/reZach/secure-electron-template
Awesome template, my project is an electron based cross-platform app tjat encapsulate an angular project.
Securing our template has been an hard challenge:
https://github.com/Noovolari/leapp
Securing our template has been an hard challenge:
https://github.com/Noovolari/leapp
I have built two that I am kind of proud of.
https://www.firstcontrib.com - This is a website I built so users can easily find personalised issues to contribute to.
Another one would be https://github.com/krishnanunnir/rmm. Which is a telegram bot server you can run on your machine along with a telegram bot to remotely grab screenshots and linux commands on your machine from your Telegram app.
https://www.firstcontrib.com - This is a website I built so users can easily find personalised issues to contribute to.
Another one would be https://github.com/krishnanunnir/rmm. Which is a telegram bot server you can run on your machine along with a telegram bot to remotely grab screenshots and linux commands on your machine from your Telegram app.
A static blog generator: https://github.com/john-bokma/tumblelog (See for an example website: https://plurrrr.com/ ).
I made it open source because I wanted it to be part of my resume.
The project is small (around 1 kLOC) and hence is easy to keep active.
I made it open source because I wanted it to be part of my resume.
The project is small (around 1 kLOC) and hence is easy to keep active.