How we packaged all our mini tools into a single developer utility app?
Over the past 12 years in software development, we've created many mini tools and apps for doing trivial things. Tools as trivial as Json formatting, date conversion and JWT validation.
"Why didn't you use free online tools ?♀️" you might ask.
A little backstory
We could. In fact initially we used online tools for these simple tasks. There were a couple of issues with this though.
- It broke the continuity of development, as once you go online, there are many different things you start doing (read check emails, visit social media, blah blah blah) before actually doing what you came to do. Productivity affected.
- It required that machines be connected to Internet. Can't work offline.
- We had to look for a website and paste (sometimes sensitive) data (e.g. JWT tokens) there. We never liked it. Privacy concerns.
- We found CyberChef which was a very popular open source WebApp that had many tools (most of which we didn't need). But it was a web application, so user will need to host the app on a private server and open browser to actually use the tool. Not acceptable.
To avoid these issues, we decided for each such tool that made us skeptical, we'd add it to a single app, that we'll be using during our developments. The app should be available right on the taskbar, so we won't be playing around with browser tabs.
We created a Windows Forms application on .NET 2.0 and called it UtilDog with minimal interface, each tool accessible via its button. The aim was not to spend too much time on the app itself. Rather it should just work.
Our team has been using this app for 8 years now. Every time we feel like a tool is missing, we add one and share the updated exe on our local network. Plain, simple and fast. There are total 49 tools in UtilDog right now.
Early 2021, I found out about an app called DevUtils on ProductHunt. It's a similar app which has many tools that we are already using in UtilDog, and many new ones that deserved to be a part of that app. But it was Mac only.
I realized the tools we created and were using are actually used by other developers, either online or using the same way that we did. DevUtils easily confirmed that for us.
I thought that we can release UtilDog for commercial use. But surely it needed a refined UI to look like a professional app.
WPF to the rescue
We decided that to create the new UI, we'd use WPF. The choice of WPF was very straightforward, as .NET has been our core competency and we've been developing in .NET since it's initial days. We had also created ZeroAM a private journal app using WPF, so we knew how it worked well.
Keeping scalability in mind, we'd chosen .NET Core rather than .NET Framework, so we can convert the same code base for Linux and Mac apps in future.
It took us a week of designing the architecture, a new layout and converting tools from UtilDog to a WPF app. Initially I thought that we'll keep using the same name UtilDog for this product. However later after discussion within team, we were of consensus of a name change. After a good research and lean domain search, we landed on ValueTools for the app name.
What tools should we include? ?
It was clear from the start that we won't be able to use all the tools that are in UtilDog in the commercial release, not in the beginning at least. The reason being many of those are half-baked, which we created as a quick way to get things done.
We decided that we'd select the tools that
- we use most frequently
- were tested properly.
We selected 22 tools for first release of the product. We decided that we'll keep adding new tools as we move forward. Launching early was the key.
- Base64 Encoder / Decoder
- Color Converter & Palette Creator3.
- Data Converter between Json, Xml, CSV and Yaml
- Date Format Converter
- File Hash Generator / Validator
- Html Encoder / Decoder
- Interest / EMI Calculator
- Json Lint
- Json Web Token Validator
- Line Joiner
- Line Sorter
- Line Wrapper
- CSS Minifier / Beautifier
- Html Minifier / Beautifier
- Number Base Converter
- QR Code Generator
- RegEx Search & Replace
- RegEx Validator
- Text Diff
- Text Hash Generator
- Unit Converter
- Url Encoder / Decoder
The Scary Part - Launch ?⚖️
I knew that just like any other product, it's not going to be a "Launch and walk away with money" thing. We'll need to launch and relaunch. I found this amazing post by James Fleischmann on IndieHackers (a super awesome community of like minded indie hackers) that listed all the places to launch.
I scheduled ValueTools to launch the product on ProductHunt on a 30th July 2021, but then on 29th July decided to launch a day early ?. It was a good decision, in the end. ValueTools was featured in the top 8 product for the day, though top 3 would have been great. We got all positive feedback from community, both on ProductHunt and my Twitter Inbox.
After Launch? ?
Since the launch, we've been seeing consistent downloads and trial activations for ValueTools. There have also been reports about Microsoft Warnings
ValueTools may be a malicious software even after we have Code Signed the installers. Hopefully we'll be able to get rid of them in few days ?.
We've also added 4 more tools since the launch taking the count to 26.
- Combination Generator
- Series Generator
- Case Converter
- Test Data Generator
We have been recently reviewed by Softpedia as well. Things seem to be pacing up, albeit slowly but steadily.
We are regularly identifying the tools that we should add next from UtilDog and based on Feature Requests.
In the mean time, you are welcome to download ValueTools and give it a try. It's free to download and try for 30 days. You don't need to provide any of your details for the trial.
If you have some idea for a new tool or a feedback to improve the app, I'm all ears.