Hi, I'm Daniel, and I'm bringing to life a brand new, fullstack, all-encompassing job orchestration engine into the world of C#/.NET, called Didact. This has been a dream of mine for a number of years, and to my surprise and my delight, I discovered that I wasn't the only one.
I owe a tremendous debt already to Rob Walling, the founder of MicroConf and the maestro behind his renowned podcast, Startups For the Rest of Us. I had the absolute pleasure of meeting him in person at the mini-MicroConf event in Atlanta, Georgia in 2022. It was several months later in 2023 that I began listening to Startups For the Rest of Us, and I happened to stumble across a fascinating episode of the podcast. It was in episode 661 that I learned about a peculiar solo-preneur from the Ruby community named Mike Perham, and he was already living out one of my entrepreneurial dreams: he had successfully created - and was making lavish amounts of money from - a background job processing engine that he constructed in the Ruby programming language. I learned that he adopted an open core business model, and, even more astounding, he didn't even offer cloud hosting like Astronomer from Apache Airflow or Prefect were doing in the Python world!
Mike's humble and honest discourse about his product, Sidekiq, and his unusual indie hacker story captivated me. Not only that, but I had been dreaming about bringing Didact to life for several years and even tried to reach out to Microsoft to do it previously in a GitHub issue. Yet here I found a bootstrapped, solo, one-man software company that had already accomplished what I was only just now starting.
Like Mike, I, too, think that the open source community is a powerful and wonderful hunting ground for spinning up a little startup or micro SaaS. My micro SaaS that I'm currently working on, a hyper-niche Electron app for creating slideshows and digital signage in Power BI, called Displagent, was originally an open source Chrome extension that I had maintained on GitHub for a few years. After about 2 years of trying to maintain it, COVID and 2020 happened, I got married, life got busy, and I let it fall to the wayside. Yet, during a vacation that I took with my wife to New Orleans in November 2021, it was my GitHub traffic chart for that little Chrome extension - and an unhealthy amount of MicroConf YouTube videos - that convinced me to resurrect my little Chrome extension and completely rebuild it from the ground up as a new application.
As I listened to Mike's words of wisdom about people regularly underestimating the power of open source development and explaining how Sidekiq has survived its competition, I realized that I had already trodden the path of open source development myself. Although Displagent is closed-source, its predecessor was a forked open source Chrome extension.
Perhaps to your surprise, job orchestration and task scheduling in the C#/.NET world is variegated yet unsatisfactory (in my opinion). Most .NET job processing engines don't even ship with a user interface, half of them or more are outright abandoned on GitHub, and none of them are constructed the way that I would like to construct one. Even though I began dreaming up Didact back in 2020, three years have passed as I write this article in 2023, and still it appears that no one has tried to build what I'm trying to build.
The most entrenched job orchestrator in .NET right now is Hangfire, and it is well-known amongst the C# developer community. It's going to be an interesting challenge to disperse my product's brand throughout the community. However, even with Hangfire, I feel there are many things that it does not do well that Didact can do much better.
One key takeway that I learned from Mike's interview with Rob was that Mike had been blogging about advanced Ruby topics for years before he developed Sidekiq, so he had already built that trust and renown within the Ruby community. When Sidekiq came along, he capitalized on that reputation he developed, and it's worked beautifully for him ever since. He put in what I'm sure was no small amount of hard work and dedication writing those Ruby blogs for years, and now he reaps the benefits of his work. Based off of his interview with Rob, I feel like Mike would strongly emphasize that he is not a marketing person now, and that may very well be true - but he was a marketing person in the making for years before he made Sidekiq, he just didn't realize it at the time. Since I don't have that advantage right now, I have to do the hard part of both building and marketing at the same time.
I wish there was a cheat code to this, I really do. Marketing sucks, I'd much rather be just a developer, but that's just not how it goes for most of us. I haven't been writing C# blogs for years like Mike did for Ruby, so I'm starting that journey now. The best solo-marketing advice that I've ever heard to date comes from the mad genius at BannerBear.com, Jon Yongfook. I really hope that I get the opportunity to meet that guy sometime in the future because his BannerBear journey video on YouTube has been instrumental in my indie hacker journey already.
Jon said that he grinded through his initial growth at BannerBear with intense discipline to a scheduled regiment that he set for himself: one week of coding, then one week of marketing, then a newsletter recapping the last two weeks of your efforts first thing on the next coding week. One week of coding, one week of marketing, newsletter, repeat. One week of coding, one week of marketing, newsletter, repeat. It's simple and it seems to make sense to a clueless marketing developer like me.
I've just started this with Displagent, and now I'll be doing the same with Didact. My audience will be developers, and developers have very high expectations of tools. Not only that, but Didact will absolutely be the single most advanced piece of C# software that I will probably ever write in my life. The architecture that I've laid out for the platform is borderline insane, and I'm trying things with the dependency injection system that most other developers haven't even asked about on StackOverflow. Since a version 1 of the project has a ways to go still, this means that the code is going to take some serious time and tremendous mental energy on my part. It took me roughly three months just to work through the dependency injection and dynamic assembly obstacles in my head, so I'll admit... this is a very daunting task before me.
I don't know how successful I'm going to be at this, but I'm making myself get in the habit of writing to keep the momentum going.
I liked this idea because I felt that it had a very strong case for validation. Mike clearly validated this idea with Sidekiq and the Ruby community, and it appeared to me that Apache Airflow, Prefect, and Dagster were doing quite well over in the Python world. I knew that there must be thousands of .NET shops all over the world, for small, medium, and large enterprise companies - a market ripe for the picking! Moreover, I absolutely loved programming in C#, and I felt deeply passionate about this particular idea.
From my small number of posts on Reddit so far about Didact, I've also heard from multiple C# Reddit users that they are in total agreement; .NET is in dire need of a more advanced job orchestration platform.
This project seems like it has all of the right pieces: a little market validation, an available niche for me to burrow myself into, a deep and personal passion for the project itself, and open source development with the very-real possibility to go to an open core revenue model if I could get Didact off the ground.
So there you have it. I'm still struggling to get even marginally significant MRR with Displagent, and I still work a fulltime job, so these type of journeys for me are hard - very, very hard. But I've done my research, I've made some educated guesses about validation, and I'm starting to put all of these marketing tactics that I've learned about to good use - this post is a perfect example of that.
Didact is in its infancy, but I'd love for you to follow my journey. Even better, if you're a C#/.NET person, come see what happens with Didact - you might just find yourself wanting to try it out at work soon. Maybe I can become Mike's unintended protege in the .NET community.
Good luck, sir!