web-development
AI in Action: Why I Built My Own Website From Scratch
In a world of instant website builders and endless AI theory, there is still immense value in building your own platform from scratch. Here is why aiia.li exists.
There’s a website builder for everything now. You can have a portfolio online in twelve minutes. So obviously, the correct move is to spend three weekends writing your own from scratch.
Less Theory, More Action
The site is called aiia.li. "aiia" stands for AI In Action, and the .li is there because every reasonable domain has been parked since 2004, and Liechtenstein, bless it, still has letters left over.
The "AI In Action" part is the entire point. There’s no shortage of AI theory online—hot takes, frameworks, manifestos, and ten-slide decks explaining the future of work. What’s a bit thinner on the ground is people showing what they actually shipped last week, with the rough edges still visible.
So, aiia.li is exactly that: things I’ve built (like PUCO and a few others), posts about how they got built, and the small, honest details you don't put in a keynote presentation.
Two Honest Reasons for Going Custom
Why do this the hard way? There are two reasons it exists, in order of honesty:
- Ownership: I wanted my LinkedIn writing collected in a place I actually own, right next to the work, not scattered across someone else’s algorithmic feed.
- Control: I didn’t want a Content Management System (CMS) arguing with me about what my own site should look like.
Embracing the "Boring" Stack
To build it, I chose a deliberately boring stack: FastAPI, MariaDB, Jinja, and nginx.
It’s the exact same shape as PUCO’s backend. Why? Because reusing a mental model is far cheaper than learning a new one.
Was It the Efficient Choice?
No, absolutely not. But was it the right one? Probably. For the exact same reason that cooking your own dinner is sometimes worth it, even though the restaurant downstairs is open and ready to serve.
aiia.li is live. Hands-on, result-driven, with zero theory that hasn't been tested directly in code.