Why I made FairScan open source (and chose the GPL)
August 30, 2026

When I started FairScan, it was the first time I was publishing software on my own. Previously, almost all the code I wrote was on behalf of my employer, and the rest was just for me, with no intention of being published. From day one, it was obvious to me that FairScan would be open source, and the GNU General Public License (GPL) felt like the natural choice. I knew what it meant and didn't give it much thought, because my attention was on all the technical topics I had to learn to reach my goal.
What did give me pause was something else: once the code is out there, I have no real control over what happens to it. Someone can fork it, rebrand it, build a product on top of it. The GPL legally requires derivative works to stay open source, but I can't enforce that in practice: if a company somewhere quietly used my code in a closed product, I would probably never even know. That's a risk I knew I was taking, and I had to be at peace with it before I clicked to make my repository public.
Why was it obvious to me that FairScan should be open-source and use the GPL? I believe it's the combination of several points of view I have on the project.
As a user
As a user, I want an app that keeps my data strictly private, that doesn't track me and doesn't force me to see ads. More generally I don't want it to have any behavior that is against my own interest, and that's what I call a respectful app. Some of those behaviors are quite visible (for example: ads) and some are hidden. App publishers make a lot of claims on how much they care about privacy and other things but there's no external control. Those claims may be phrased vaguely ("Your privacy is our strongest concern", "we use data to improve our service") and they rarely explicitly mention topics where you may not like the truth: how often did you read "we train our models with your data"?
How an app actually behaves is defined by its source code: the code is not a claim, it's what's executed. Most often, the source code is not publicly available because it's considered a trade secret. Except for open-source apps. If an app is open source, a developer can inspect its code, and check its actual behavior. A developer may also modify the code and distribute a new application based on that. That gives users a form of control, even if they don't understand code themselves. If an open source app behaves in a way that many people don't like, it's quite likely that someone knowledgeable will distribute an alternate version of it. This is one of the most important freedoms I believe software can give its users.
I personally use open source apps as much as possible, whether on my computer or my phone. Of course, that can't be the only criterion: an app should first help me get the job done, and in a way that's easy and efficient for me. Still, the fact that an app is open source means I'm in control of the software I use, and that's crucial to me.
As a developer
As a developer, I prefer to develop apps that I use myself. That's rarely the case when working for an employer: my job could be to work on software whose purpose is unfamiliar to me, and to make it behave in ways that I don't agree with. As an independent developer, I can decide what I work on. FairScan started with a need I had and a solution I wanted to build. I'm not FairScan's only user, but I'm its first user.
Why share it, though? Maybe I could have developed an app just for me: it would fill my need and I would be in control of it. I must say I never really considered that option: I would probably not have started FairScan if it was just for myself. The main reason is that I want my work to be useful. There's a real satisfaction in knowing that thousands of people use FairScan. Making it open source was the only way to share FairScan along with the freedom I want to get as a user.
One question everyone publishing open source code has to answer is which license to use. In fact, there's a major difference among the most common open source licenses. On one side, permissive licenses such as the Apache License and the MIT license allow users to do almost anything with the source code. On the other side, the GNU General Public License gives mostly the same rights but requires derivative works (apps that re-use the code) to be also open source and use an equivalent license.
For FairScan, the choice seemed easy to me. I chose the GPL because I don't want my work to be re-used in an app that gives less freedom to its users. In a way, it's about being consistent: if, as a developer, I build software that provides the freedom I want to get as a user, then all users of derivative works should get the same. I know it can be a significant constraint for developers who want to re-use my code but I'm fine with that: I believe it's a constraint worth accepting for developers who share my views.
Open source is not incompatible with making money, it can even be a business strategy. For example, Google open sourced Android's core and it provides open source libraries for Android apps (FairScan uses several of them). And companies such as Proton publish open-source apps as part of their business model. On my side, I don't see how I could build a business around FairScan and I have no intention to go that way. I started accepting donations a few months ago: that's a model I'm more comfortable with. Thank you to all the people who donated!
As a citizen
As a citizen, there are quite a few things I don't like in the world I live in. Complaining doesn't help me feel better. Acting does, at least a little. I guess it started by paying attention to the sustainability of the things I consume, and that includes the software I use.
But being a software engineer, I'm not just a consumer of software, I'm also in a position to produce it. Software has a huge impact on our lives, from personal communication to public services. But to what extent do users get to decide how software should behave? I believe that free and open-source software (FOSS) can help people take back some control over it. For me, joining April, a French association promoting free software, was one way to put that into practice. But building FairScan the way I did is another, more direct one.
And when I think about what to build, I come back to the same question: which software do people actually need? I believe that scanning a document is a basic need today: it's required for all kinds of administrative tasks, for people who don't necessarily know or care about tech. Should getting that done require paying, watching ads, or giving away private data? I don't think so, and yet this is so often the model for "free" apps.
By publishing FairScan's code, and also the dataset I built to train its detection model, I hope to contribute a small piece to what's sometimes called the digital commons: things that exist for everyone to use and build upon. It's a modest contribution and it can continue to exist beyond whatever I personally decide to do with the project. As a user wrote on the Play store:
It's FOSS!! So I know it will still be around in ten years without ad nor paywall nor nonsense nor malice.
Today, I still have that doubt: if someone violates the GPL, I will most likely never know. But that's a risk I accept to move forward.
In the end, I see FairScan less as an "open source app" than as a respectful app, but making it open source, with the GPL specifically, is what makes that possible.