Links Gets a Complete Python Makeover 🐍
Major refactor brings JavaScript support and eliminates licensing fees.
Remember when I told you about Links saving your stuff from the digital void? Well, it just got a complete technical overhaul.
The big news: Links now runs on a custom FastAPI Python implementation, ditching Kirby CMS entirely. Plus, it finally handles JavaScript-heavy sites that were previously impossible to archive.
From PHP to Python
The original Links was built on Kirby CMS. Great system, but it came with compromises. Licensed software means ongoing costs. PHP means working within CMS constraints. File-based content management that wasn’t quite right for archival workflows.
So I rebuilt it from scratch in Python.
FastAPI replaced the entire web framework. Clean, fast, and designed for APIs from the ground up. The archiving scripts were already in Python - now everything speaks the same language.
What This Actually Means
No more licensing fees. Kirby required a one-time payment. FastAPI is completely open-source. Your self-hosted Links installation is now truly free.
Slimmer codebase. Removed all the CMS bloat. No more fighting with file-based content management. No more PHP/Python context switching. Just focused Python code that does exactly what it needs to do.
JavaScript support. The new architecture made it much easier to integrate proper browser engines. Sites that load content dynamically now archive perfectly. Single-page apps, modern e-commerce, social platforms - they all work now.
The Technical Evolution
Before this refactor, Links would hit a wall with:
- Single-page applications (SPAs)
- Modern e-commerce sites
- Social media platforms
- Complex dashboard interfaces
- Any site that builds content after page load
Now it handles them all. The archiving process uses a proper browser engine, waits for JavaScript to execute, then captures everything. Content extraction gets the full picture. AI summaries actually have something meaningful to work with.
Still the Same Simple Experience
From your perspective, nothing changed. Share a link from iOS. Get the instant feedback. The background magic just got more powerful and more efficient.
The system still creates multiple archive formats. AI summaries still work. Full-text search still finds everything. But now it finds everything from sites that were previously impossible to archive properly.
Why This Matters
This isn’t just a technical curiosity. It’s about sustainability and control.
Cost control. No licensing fees means lower barrier to entry for self-hosting. Your digital preservation tool doesn’t depend on someone else’s business model.
Technical control. Custom FastAPI means the codebase does exactly what’s needed. No more working around CMS limitations. No more PHP/Python impedance mismatch.
Future-proofing. Python ecosystem means better integration with AI tools, archiving libraries, and modern web technologies. When the next big thing comes along, Links can adapt.
Production Ready
This complete rewrite rolled out to the live system at links.alexanderkucera.de. No downtime. No lost data. No new workflows to learn.
Your JavaScript-heavy bookmarks are no longer second-class citizens. And your self-hosted installation just got a lot more sustainable.
The Open Source Future
With the Kirby dependency gone, Links is now completely open-source ready. No licensing complications. No vendor dependencies. Just Python code that preserves your digital discoveries.
Digital preservation for the rest of us just got a lot more accessible.
115 commits became a complete rewrite. Sometimes the best way forward is to rebuild from first principles.