
Every project starts with a moment. A spark. An idea that will not leave you alone. This is the story of how TCTF began — the first decision, the first lines of code, and the moment we realized this was bigger than a side project.
Every project starts with a moment. Not a plan. Not a roadmap. Not a business case. A moment. A spark. An idea that will not leave you alone no matter how many times you try to talk yourself out of it. For TCTF, that moment came from a simple observation: Africa has the fastest-growing developer population on Earth, but the continent is underrepresented in open-source contribution, maintainership, and governance. The talent is there. The ambition is there. What is missing is the infrastructure — the mentorship, the funding, the platforms, the institutions — that turns individual talent into sustained, institutional contribution. This is the story of how we decided to build that infrastructure. Not the technical story — we have covered that in the 'Building TCTF' series. This is the personal story. The human story. The story of what it feels like to start something from nothing and keep going when nothing is certain.
The idea for TCTF did not arrive fully formed. It started as frustration. Frustration with watching talented African developers struggle to find mentorship in open-source projects. Frustration with seeing the same names on every maintainer list while an entire continent of developers was invisible. Frustration with the gap between the potential and the reality.
Frustration is a powerful motivator — but it is not enough to build something. What turned frustration into action was a question: what if someone actually built the thing that is missing? Not talked about it. Not wrote a blog post about it. Not tweeted about it. Actually built it.
That question would not leave. It followed me to work. It followed me home. It kept me up at night. And eventually, I stopped trying to ignore it and started trying to answer it.
💡The idea did not arrive fully formed. It started as frustration. What turned frustration into action was a question: what if someone actually built the thing that is missing?
The first lines of code were terrible. I mean genuinely, embarrassingly terrible. A single Lambda function that returned 'Hello World' from an API Gateway endpoint. That was it. That was the beginning of a platform that would eventually have 34 microservices, 4 frontend applications, and thousands of lines of shared infrastructure code.
But those first lines mattered. Not because they were good — they were not. They mattered because they were real. An idea in your head is just a thought. An idea in a code editor is a project. The gap between thinking about building something and actually building something is enormous. And the only way to cross it is to write the first line.
The first week was messy. The first month was chaotic. The first architecture was wrong. But it existed. And because it existed, it could be improved. You cannot iterate on something that does not exist. You cannot refactor an idea. You can only refactor code. So write the code. Write it badly. Write it wrong. Just write it.
✍️An idea in your head is just a thought. An idea in a code editor is a project. You cannot iterate on something that does not exist. Write the code. Write it badly. Just write it.
There is a moment in every project where it stops being a side project and becomes something more. For TCTF, that moment came when someone I had never met opened a pull request.
It was a small PR — a typo fix in the README. But it meant someone had found the project, read the README, cared enough to fix a typo, and submitted a contribution. A stranger believed in what we were building enough to spend their time on it. That is when it became real.
From that point, the project was no longer just mine. It belonged to everyone who contributed. Every pull request, every issue filed, every suggestion made — they all added weight to the project. Weight that made it harder to abandon. Weight that made it more real. Weight that turned a side project into a responsibility.
That responsibility is heavy. But it is the good kind of heavy. The kind that keeps you grounded. The kind that reminds you why you started. The kind that makes you show up on the days when you do not feel like it.
🌱The moment a stranger opens a pull request on your project, it stops being yours alone. It becomes a shared responsibility. That weight is heavy — but it is the good kind of heavy.
That is the story of the early days. The spark. The first lines of code. The moment it became real. Next week, we will talk about what happened next — the grind, the setbacks, the funding challenges, and the people who showed up when it mattered most. Stay tuned.
Never miss a post
Subscribe to get the latest TCTF articles delivered to your inbox.