All articles

Why I'm Not Making Writizzy Open Source

HugoHugo
··10 min read

Why do open source today?

Or… why not?

I'm developing a product, writizzy.com and I started asking myself this question by wondering how to make sustainable software? Is open source a path for that?

Beyond sustainability, I've been working since the early 2000s and overall my profession has drastically changed. One of the main reasons is linked to the rise of open source.

Sure, when I started my computer science studies in 1997, we were already working on linux with many open source software, but my first experiences in the working world looked more like archaeology. My mission was to find the scattered documentation CDs on the floors, and to question the right experts to understand why the software we used reacted in such or such a way. Without access to the source code, I had to guess how it works and especially I had to reinvent the wheel constantly for pretty much everything, which resulted in very questionable quality software.

I saw my profession change and open source become one of the foundations of all modern computing. So yes, I want to contribute in turn.

But I'm concerned about the constraints that come with it.

I'm torn between the desire for a return to a more open web and, basically, economic imperatives.

It's this dilemma I want to explore here. Through the example of Writizzy, here's why I'm hesitant to open my code, what I would nevertheless like to do, and what I'm considering for the future.

The benefits of open source

Well first, why do open source? Off the top of my head I'd say:

  • to contribute to an ecosystem
  • for wider distribution
  • for contributions and serendipity
  • for transparency
  • for a more open web

But as we'll see, it's not that simple.

Simplified marketing and distribution

Let's be honest, open source is a communication lever. Open source allows wider use and thus gets known through word of mouth. It's the possibility of having providers that would offer Writizzy as white label, or users who could make their own themes/plugins and sell them on a marketplace (like Ghost). It seems like nothing, but once an economy is established around your product, it guarantees it a certain notoriety. It's free "advertising".

Ok but, at what cost?

Whether it's Wordpress, Ghost or Gitlab, how many really use the commercial service offered by the publisher? And how many commercial services have attached themselves to these software, while avoiding contributing directly to the open source project?

Here are the estimated annual revenues for several competitors of Writizzy:

  • Substack: $45M
  • Beehiiv: $30M
  • Ghost: $10M

Ghost is the only open source platform of the 3. It's estimated that the economy revolving around Ghost creates approximately between $15 and $25M.

That is to say that approximately $20M is captured outside of Ghost.

Let's imagine that Writizzy works, let's be crazy, don't I have the risk of having actors who commercially exploit Writizzy, don't contribute to the open source project, benefit from my advertising investments, and leave me to manage all the difficulty of software maintenance?

Yes open source is noble, but it doesn't put food on the table and I don't want to end up like one of these countless open source projects that survives poorly and eventually closes.

Two options are possible, having a restrictive license that prevents commercial use, or just… not care.

Ghost doesn't care. Because it's a company without shareholders to pay and they're not seeking to maximize their profit.

But if I think about it well, it's the same for me. Well first, I would be very happy to have even just one tenth of Ghost's success. If I manage it, in part, because the open source model allowed the product to be talked about, I can also tell myself that I've achieved my goal, right? And besides, it would be hypocritical of me, I also use open source building blocks to go faster, right?

I'm creating a commercial product, I'm not going to hide it. But I'm not aiming to create a multinational company with 400 people, so having an ecosystem that's created around the project and that lives on its own but that also increases the visibility of the project, why not?

But anyway, I don't want to make you think that "open source = success" magically. If the project interests no one, it will maybe be the same even in open source. It's kind of what happened to me on Bloggrify.

(Unexpected) Community Contributions

You know how a product improves? Through feedback from its users.

I'm used to saying, "you're never right on your own".

You can be an expert in your own software, it's when confronting it with real users that this software becomes truly perfect.

Because each user can come with new ideas, because you can measure what matters most to people and therefore better prioritize what needs to be done or because you can have direct contributors.

If someone improves your product, it's a useful contribution for everyone.

But that comes with a cost, having to respond day and night to hordes of users, not always respectful of the work provided for free. Remember:

Finally, that's when there's success. The vast majority of the time, your project will just have 0 users and almost no feedback.

In the past, I had created two projects that fell pretty much into this category:

  • pg-mongo-streamer: a connector to feed pgsql by replicating mongo events in real time
  • Bloggrify, a static blog generator, a kind of equivalent to Jekyll in the Nuxt ecosystem

In both cases, the user base was very small so feedback was almost nonexistent. In the case of Bloggrify, it mostly became a burden of trying to implement certain open source project standards for virtually no results.

In any case, yes, this dimension scares me. I can only hope that Writizzy has traction and find myself in the first case. And at the same time, I'm afraid I won't be able to keep up.

I'll admit I largely understand Ben Johnson (litestream) who chose to limit the opening to contributions to protect his mental health and the viability of the project, in other words, choose open source but limit contributions. Today, my issue isn't going faster in terms of code production anyway.

Now when I talk about contributions, I also think in terms of ecosystems. It's the opportunity that things are created unexpectedly. It could be theme marketplaces, community hosting, plugins, … things… by definition if it's unexpected I can't really list them anyway :)

Transparency: Exposing Your Weaknesses

An open source project inspires trust, in theory. It gives the illusion that, being open, all of its code has been blessed by a community of experts.

In reality, open doesn't mean being read. I doubt you've read the source code of the vast majority of tools you use under linux, for example, and you're not alone. We could cite the xz backdoor affair or the log4shell CVE.

In any case, I remain convinced that it's preferable to closed software. Does security through obscurity really work? Not really, and sometimes it's the publisher itself who places backdoors in their software.

But precisely, if I open Writizzy's code tomorrow, I'm not entirely confident. I did everything possible to make it well-designed and secure software, but let's be honest, am I 100% sure that no one will find security flaws? Not at all. A friend had actually detected flaws in Writizzy a few months ago. I have users in production, what happens if malicious individuals actively search for flaws in my code with each release? That's clearly part of my concerns.

As for the "quality" of the code, that's another topic. I would always find people to criticize it, but I've been working for 25 years, it slides off me a bit. Criticism is easy, art is difficult. But for security, that's another matter, impossible to ignore.

And today I don't have a sense of versioning. I deploy to production continuously. Should I abandon this principle to leave a rest period before deploying a new version? It would be extra burden I'd impose on myself and I don't necessarily have the luxury to do so.

So yes, partially today I'm counting on the fact that no one can read the errors I may have made before I fix them. If it were open source, that would no longer be the case. It would impose another way of working on me, heavier, and more dangerous for my users. That's clearly a brake.

Is Writizzy's Architecture Compatible with an Open Source Project?

Another point that worries me, once I open the code, is that Writizzy has certain architectural complexity. To run the application today it's:

  • 1 Kotlin API
  • 1 front app for the CMS part
  • 1 front app that runs the blog
  • a PostgreSQL database
  • a RabbitMQ message queue

A user might want to have a single application and I understand that.

All my architecture is based on the fact that I run all the clients on the same instance in multi-tenant and I have the entire commercial site that exploits my users in the "CMS" application.

How can I offer that as open source? It's very far from a standard like Ghost or Wordpress.

Well, that wouldn't be the only software like that. I recently installed PostHog and you just need to use a Docker compose to hide this complexity, so I suppose we can find a solution. I even want to say that it's become the norm, nowadays the unit brick for installing is the docker compose.

On the other hand, I imagine I would really need to separate the admin part and commercial site from the CMS (EDIT: that's been done as of today). That part would remain proprietary. And we'd need a "mono-tenant" mode to hide all the complexity of multi-tenancy so that a user can just launch their app for themselves.

If I have some ideas, they remain additional constraints nonetheless.

So what's the plan for Writizzy?

Well then, what's the plan? I'm building Writizzy with a desire to also find a more open web, to get out of US platforms, to encourage people to write too. Because writing, reading, informing, is more than necessary in today's world.

In a previous article I was questioning whether to create sustainable software, open source was part of the solutions.

So yes, I'm torn. I'd like at some point to make it an open source product. Concretely, I've started making significant modifications to the software to separate the "commercial" part from the application itself. I have a trajectory in mind to isolate what belongs to my application that allows me to sell and host Writizzy, from the rest, the CMS and the blog.

It's in progress. It also allows to reflect on dependencies, to simplify. But maybe it won't work out.

I don't want to repeat the mistakes of Bloggrify (too much burden for not much). And maybe I should wait to see that Writizzy has more hype behind it? Many questions, few answers :)

In any case, if you have experience with opensource projects, I'd be interested in your feedback.

a+

Stay in the loop

Get new articles delivered directly to your inbox. No spam, unsubscribe anytime.

0 Comments

No comments yet. Be the first to comment!