The last post on this blog is from May 22, 2020. It was about Pong and, along the way, it made a promise: another game, which I’d “launch here in the future too”. The future came, almost six and a half years of it, and neither the game nor another post showed up.
It wasn’t for lack of ideas. Life just happened: I graduated, changed jobs, started a master’s degree and, one by one, my personal projects went on the shelf. The blog went with them.
What changed
When I wrote that post, Brazil was at the beginning of the pandemic quarantine, this site ran on Heroku thanks to student credits, and building it had taken eight and a half months of work, Webflow tutorials and a lot of frustration with the design.
Six days later, OpenAI published the paper that introduced GPT-3. Back then, language models were still mostly a research topic, and one I’d end up studying myself: in my master’s, I research how Natural Language Processing systems can be fooled by small changes to the characters of a text. Two and a half years later came ChatGPT. Today, in 2026, I write code with Claude Code, Anthropic’s coding agent, which reads my repositories, runs the tests, opens pull requests and explains what it did.
Of everything that happened in these years, that’s what transformed my personal projects the most.
Old projects, back to life
The first was this site. The version you’re reading is the second one, rebuilt from scratch: a blog written in Markdown, a projects portfolio, English and Portuguese versions on their own domains, light and dark modes, editors that work on a phone and a deploy pipeline with staging and production. Even the two old posts came along, imported from the first version’s database.
The clearest example, though, is Instackup, a Python library I created at the end of 2019 so I’d stop rewriting the same code to connect to BigQuery, S3, Redshift and other services in every data pipeline. Its last version was from February 2021. Five years later, it required Python 3.6, pinned dependencies that could no longer be installed next to anything modern and relied on functions pandas had since removed. Its tests covered a single module, so there was no way of knowing what still worked.
With Claude, the revision became a single pull request: Python 3.11 to 3.15, credentials from secret managers, about 30 bugs fixed (three of them security issues), 420 tests running on Linux, macOS and Windows, and a new version on PyPI. The whole story is on the project’s page.
Understanding the context
Code I wrote five years ago is almost someone else’s code. I no longer remember why I made each decision, which workaround was hiding which bug or how each library worked back then. That’s usually what kills a revival: before changing anything, you have to rebuild the context, and that alone can take more weekends than the motivation lasts.
This is where Claude helps the most, in the least obvious way. In minutes, it reads the whole repository, the documentation, the commit history and even the old database, and explains what it found: what each part does, what depends on what, what’s outdated and why. It’s like getting back to a project with a colleague who has already read everything and isn’t shy about asking “why is this here?”. From then on, the conversation is about what to do, not about what’s there.
New ideas
Claude also doesn’t stop at doing what I ask. It suggests alternatives, asks about the cases I hadn’t considered and points out problems I didn’t know I had: covering every method of Instackup with tests is what surfaced the bugs nobody had noticed, the security ones included. Sometimes I agree, sometimes I don’t, but I always have to stop and think about it, and the result is better for it.
It’s also great for thinking out loud. Describing an idea to someone who answers with questions, trade-offs and a first draft in minutes is the fastest way I know to find out whether the idea is any good.
Taking ideas off the shelf
For me, the biggest change isn’t speed, it’s what becomes possible. Every personal project had a hidden cost: for each hour on the interesting part, there were several on everything around it, like setup, tests, deploys, documentation, translations and that bug that only happens on Windows. That’s the part that made me shelve ideas before even starting them, because I knew I’d never have the time to do them right.
With Claude, that part is no longer the expensive one, and the question changes from “do I have time for this?” to “is this worth doing?”.
Lavedonio Download is the first answer: a place to keep the files of my other projects and serve them from addresses that don’t change, with a site, a REST API, private storage on Cloudflare R2, permissions, quotas and interactive documentation. It’s the kind of project I’d have left for “someday”, and it went from an empty repository to its first version in less than a day.
And there’s a lot more on the shelf: ideas that seemed too big for one person in their spare time, projects that need knowledge I don’t have yet and, yes, the game I promised in the Pong post. Pong itself knows that shelf well: it spent months there before I picked it up again in 2020. For the first time in a long while, my list of ideas looks more like a plan than a graveyard.
What hasn’t changed
None of this replaces knowing what you want to build. What to keep, what to break, what to leave for later and when something is good enough are still my decisions, and I review everything that goes in: Claude makes mistakes, and after spending part of these years studying how language systems fail, I’m not about to forget it. The difference is that the bottleneck is now the review, not the typing.
In the first post, I wrote that this site is “an ongoing lab where I can try out and show what I learn along the way”. Six years later, it’s a lab again, and the experiment now is finding out how far these ideas can go. Hopefully the next post won’t take another six years.
P.S.: Fittingly, Claude helped write this post too, in both languages.
« Back to the blog