This is not an April Fools joke. This is a real project I built in an afternoon using Claude Code and Delphi. It is a command-line tool that scans my PC for installed games, identifies their save file locations, and creates backups with optional S3 upload. The entire implementation was generated by Claude based on my specifications, and it compiles to a single native executable with zero dependencies beyond sqlite3.dll. This is the power of spec coding.
There are a handful of tools out there for backing up PC game saves. They all share the same problems: bloated UIs, slow performance, confusing workflows, and the kind of feature creep that turns a simple task into a chore. I wanted something different. Something fast, something I control, something that just works.
So I built my own. In an afternoon. With Claude Code as my pair programmer.
The Delphi community has strong opinions about AI — and I get it. Privacy concerns, code quality worries, the instinct that real developers should not need a machine to help them write code. I have heard every argument in the book, and honestly, some of them are fair. The skepticism is real, though the tide may be turning. Still, the doubters outnumber the converts, and I am not here to pretend otherwise. But after what I just witnessed on a real-world migration project, I think even the skeptics will have a hard time arguing with the results. This is not about replacing developers — it is about what happens when developers stop fighting the tool and start using it.
A customer approached us with a legacy desktop application built in Delphi 7. Let that sink in for a moment. Delphi 7 — released in 2002. No Unicode support. No HiDPI awareness. Running on Firebird 1.5 — a database engine so old its last update predates the iPhone. The application had been serving its purpose for over two decades, but the world had moved on. No responsive design. No web access. No mobile support. Customers had been begging for a web-based solution for years, but the cost and complexity of a ground-up rewrite in the legacy stack — let alone migrating to a modern platform — had always been prohibitive.
The target: a full-stack TypeScript application built on Next.js with server-side rendering, a component-based UI, Prisma ORM for database access, and a responsive design that works on both desktop and mobile devices. Not just a facelift — a complete architectural transformation from a Win32 desktop application to a modern, deployable web platform.
This was not a toy project. It involved user authentication, role-based access control, property management workflows, incident tracking, image handling, complex relational data models, and a migration pipeline to move real production data from the legacy Firebird database. The kind of application that, in any traditional development shop, would require a team and a timeline measured in months — which is precisely why it had not been done in over twenty years of customers asking for it.
The other day I saw a post on a Delphi developer forum. A fellow developer had been struggling for days trying to convert a bitmap to grayscale. Days. He had tried multiple third-party components, downloaded libraries, read through outdated documentation, and was still stuck. The forum thread was filling up with suggestions for yet more components to install, each with its own quirks, licensing, and version compatibility headaches.
I'm thrilled to announce that I'll be speaking at TMS Training Days 2026 in Rotterdam, and I hope to see you there! After successful events in Lille and Bruges, the TMS team is bringing this incredible two-day developer conference to the Rotterdam Marriott Hotel (right across from Rotterdam Central Station) on April 23-24, 2026.
The no-code movement is having its moment. Articles proclaim its death, its rebirth, its transformation. But amid all this noise, there's a critical distinction being lost:
Rapid Application Development (RAD) is not no-code, and the difference matters more than ever.
I've been building Windows desktop applications with Delphi for three decades. During that time, I've watched trends come and go—from the CASE tool revolution to today's no-code platforms. And I've learned something important: there's a vast difference between tools that eliminate coding and tools that accelerate coding through intelligent design.
I started with Delphi before most developers today wrote their first line of code. Over 30 years, I watched Borland rise, worked inside the company, and built a career helping others master the platform. I've created hundreds of videos, spoken at conferences worldwide, and earned recognition in the Delphi community.
But I'm not writing this to reminisce. I'm writing because the world has fundamentally shifted, and pretending otherwise helps no one.
The traditional setup—a developer at a desk, building Windows applications that run on office PCs—is no longer the default. People work from phones on trains. They access business systems from tablets in warehouses. Executives approve invoices from airport lounges.
The desktop isn't dead. But it's no longer the center of gravity.
I came across something this morning that made me pause: a developer celebrating their move from daily ZIP files to GitHub, calling it their "backup solution." While I'm genuinely happy they've discovered version control, this statement reveals a dangerous misconception that's worth addressing.
Let me be clear: GitHub is not a backup. Version control is not backup. Full stop.
I recently came across several Delphi implementations in which developers used their own random number generators, apparently unaware of—or unconvinced by—the built-in Randomize and Random functions that have been part of the RTL since Delphi's earliest days. Some developers seem to believe they can do better than the runtime library, while others might simply not know what's already available.
Let's take a fair look at Delphi's built-in random number generation, understand when it's perfectly adequate, and identify the rare cases where you might actually need something more sophisticated.
If you've been writing Delphi code for any length of time, you've used TStringList. It's the go-to container for managing lists of strings. But here's the thing: most developers only scratch the surface of what this versatile class can do.
Let me show you three powerful features that often fly under the radar: duplicate handling, built-in sorting, and the surprisingly useful CommaText property.
As the holiday season wraps us in its magical embrace, I wanted to share a fun little project that perfectly captures the Christmas spirit while showcasing the power of AI-assisted Delphi development. Meet Santa's Sleigh - a delightful VCL application that brings Santa and his reindeer flying across your Windows desktop!
This isn't just another holiday greeting - it's a fascinating experiment in modern Delphi development. The entire application was created through AI-powered coding, demonstrating just how far we've come in leveraging AI to build real, working applications.
Every December, you can hear it echo across developer forums: “AI? Bah, humbug! It doesn’t help with real Delphi code!”
If you’ve spent decades refining your Delphi craft — from Turbo Pascal to today’s VCL and FireMonkey projects — you might share that sentiment. But let me show you why those days are fading faster than a pine tree in January.
Recently, I built a new Delphi system information component, TSysInfo, in about one hour.
No, not because I worked all night — but because AI helped.
I’m very excited to share some great news — TMS Software has announced the next edition of TMS Training Days, which will take place in Rotterdam, the Netherlands, on April 23–24, 2026!
This isn’t my first time being part of a TMS event, and even though I’ve been a bit quiet lately when it comes to TMS and Delphi, I’m proud and truly honored to be invited again to speak at yet another TMS Days.
After 30 years in software development, I've learned that specialized tools almost always outperform generalist solutions. Nowhere is this more evident than in database management, where IBExpert stands as the undisputed champion for Firebird databases.
Let me be blunt: if you're working with Firebird databases and you're not using IBExpert, you're making your life harder than it needs to be. I've tried the alternatives—those Swiss Army knife database tools that promise to handle "any database." They all fall short when it comes to Firebird. The difference isn't subtle; it's the gap between a tool built by people who truly understand Firebird's architecture and one where Firebird support was tacked on as an afterthought.
After years of working with various frameworks and tools for building web services, I've come to a clear conclusion: TMS XData is the best tool for the job—if you're a Delphi developer. Now, I'll be upfront—I've been doing extensive work with the company that distributes TMS XData, so there's certainly a personal connection here. But my preference isn't just based on familiarity or convenience. There are solid, practical reasons why I keep reaching for XData whenever I need to build robust, professional web services in the Delphi ecosystem.
Let me be clear from the start: I'm talking specifically about the best solution for Delphi developers. Other languages have their own excellent options—Node.js has Express, Python has Flask and FastAPI, .NET has ASP.NET Core. Each language ecosystem has evolved its own tools optimized for its strengths. But if your world is Delphi, and you need to build web services that leverage your existing Delphi skills and codebase, TMS XData stands above the rest.
For most Delphi developers, the switch to 64-bit isn’t obvious at first glance. After all, for decades since Delphi 2, we’ve been working quite happily in a 32‑bit IDE, building applications, connecting to databases, and delivering production software.
With the introduction of 64‑bit compilers for Windows and other platforms, the natural assumption was:
“As long as I can compile 64‑bit executables from the 32‑bit IDE, I’m fine— right?”
Not quite. Let’s talk about why sticking to the 32‑bit IDE is holding you back, and why the time to switch is right now.