Skip to content

News

Why You Need to Switch to Delphi 13 and its 64-bit IDE Yesterday

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.

Better-Auth taking over management of Auth.js

I’ve tried a lot of authentication frameworks for React and Next.js in the last year. I wanted something that just works, is secure, and lets me move fast without wrestling with OAuth flows or rolling my own session handling.

For a long time I liked Auth.js (formerly NextAuth.js). It solved many problems out of the box and made it possible to own auth without spending months on integrations. But there were a couple of things that held me back when starting new projects: progress on the project sometimes felt slow to my eyes, and the getting-started documentation could be tricky to follow when you were just learning the library.

Then I learned about Better-Auth — and honestly, I never looked back. Better-Auth felt clearer, more opinionated where it needed to be, and focused on the primitives teams actually reuse. It removed the friction I had with Auth.js when building new apps.

The big news

Last week, there’s been some news that validates that move and makes the ecosystem healthier: Auth.js is now maintained and overseen by the Better-Auth team.

Vercel Web Interface Guidelines

Vercel, the company behind the popular Next.js framework, has published a comprehensive set of Web Interface Guidelines. These guidelines provide best practices and recommendations for building modern web applications using Next.js and other web technologies.

They also included their customizations which are specific to Vercel.

Following comprehensive interface guidelines like these is crucial for creating web applications that truly serve their users. Poor user experience design can make even the most powerful applications frustrating and inaccessible, leading to user abandonment and business failure. These guidelines address fundamental UX principles such as accessibility, performance, and intuitive interaction patterns that directly impact user satisfaction and engagement.

Modern web development extends far beyond just making things work—it's about creating experiences that feel natural, inclusive, and delightful across all devices and user capabilities. By adhering to established patterns for keyboard navigation, focus management, loading states, and responsive design, developers can ensure their applications work seamlessly for users with disabilities, on slow networks, and across the diverse landscape of modern devices. This attention to detail not only improves user retention but also enhances SEO performance and reduces support costs.

Key Areas Covered

The guidelines focus on several critical aspects of web interface development:

  • Interactions: Keyboard accessibility, focus management, mobile input optimization, and loading states
  • Animations: Performance-optimized motion with proper easing and reduced-motion support
  • Layout: Responsive design, optical alignment, and safe area considerations
  • Content: Accessible typography, proper state handling, and internationalization
  • Forms: Input validation, autocomplete integration, and submission handling
  • Performance: Rendering optimization, network budgets, and image loading strategies
  • Design: Color contrast, shadows, and visual consistency

Vercel-Specific Customizations

Vercel has also included their own brand-specific preferences, particularly around copywriting standards. They emphasize active voice, action-oriented language, consistent terminology, and positive framing of error messages. Their approach prioritizes clarity and conciseness while maintaining encouraging, problem-solving communication even in failure scenarios.

Need help?

Looking to migrate your desktop Delphi applications to modern web technologies? I specialize in helping developers transition from traditional desktop development to web-based solutions using TMS WEB Core, React, or Next.js. Whether you're modernizing legacy VCL applications or building entirely new web interfaces, I can guide you through the process and ensure your applications follow current best practices. You can contact me via my website.

FlexCel is the perfect report generator for any frontend

FlexCel is a powerful library for creating and manipulating Excel files in Delphi and .NET applications. You can export to many image formats as well as PDF files.

The product allows you to create templates in Excel, which makes it easy to design and format reports. You can use all the features of Excel, such as formulas, charts, and conditional formatting. Then, in your backend, you can use FlexCel to populate the templates with data from your database or other sources.

It is currently distributed by TMS Software, a well-known company in the Delphi community. You can find more information about FlexCel on their website. As said, it is available for both Delphi and .NET, so you can use it in various types of applications.

However, this is a major understatement. FlexCel is not just a tool to create Excel files. It is a comprehensive solution for generating reports in various formats, including PDF, images (PNG, JPEG, BMP, GIF, TIFF), and even HTML.

I have been using FlexCel for Delphi and .NET for many years. It is a fantastic library for generating Excel and PDF reports from templates. I have used it in various projects, from small desktop applications to large web services. In my books you can find real-world examples of how to use FlexCel in Delphi applications to create reports. In my latest book about Modern Delphi Application development, I have a whole chapter dedicated to FlexCel and reporting as well as in my book about creating Web Services with XData.

Another Use Case

Recently, I have been working on a Next.js project that required generating complex reports that users had to download as PDF files. I decided to use FlexCel for .NET in the backend, and it worked like a charm. I had two alternatives implementing the backend:

  • Using Delphi with WebBroker or RAD Server
  • Using Delphi with XData

Both these alternatives would have worked, but I decided to go with ASP.NET Core because I wanted to explore the .NET ecosystem as Microsoft has recently made great improvements with .NET Core to compile for any platform, including Linux and macOS. Also, ASP.NET Core Minimal APIs are very easy to use and get started with.

Deployment Scenario

Deployment is very easy. I picked Linux as the operating system to save costs on hosting. A server that is capable of hosting a Linux ASP.NET Core application is much cheaper than a Windows server. The same is obviously true if you want to host a Delphi application on Windows. Thankfully, Delphi comes with a Linux compiler and both XData and FlexCel support Linux.

To isolate the reporting service from the outside world and only to expose the Web Application, I created a Docker Compose setup with two containers:

  • One container for the Next.js frontend
  • One container for the ASP.NET Core backend

The two containers communicate via a private network. The Next.js application calls the ASP.NET Core backend to generate the reports. The backend uses FlexCel to create the reports and returns them to the frontend, which then serves them to the user.

The Web Application is accessible via HTTPS, and the backend is only accessible from the frontend container. This setup ensures that the backend is not exposed to the internet, which adds an extra layer of security.

Conclusion

FlexCel is a fantastic library for generating reports in various formats. It is easy to use and integrates well with both Delphi and .NET applications. If you need to generate reports in your application, I highly recommend giving FlexCel a try. You can find more information about FlexCel on the TMS Software website.

Need help?

If you need help with FlexCel, Delphi, .NET, or anything else related to software development, feel free to reach out to me. I offer consulting and training services and would be happy to assist you with your project. You can contact me via my website.

RAD Studio 13 Florence has been released

Exciting times being a Delphi developer! Embarcadero has just released RAD Studio 13 Florence, bringing a host of new features and improvements to the Delphi and C++Builder development environments. This release focuses on enhancing developer productivity, improving application performance, and expanding platform support.

Here is a list of my favorite new features in RAD Studio 13 Florence:

  • Database magic with FireDAC: FireDAC gets several practical improvements — better type support (unsigned BIGINT, improved PostgreSQL array handling), smoother drag-from-fields behavior, OAuth for Oracle, and parallel Firebird backups, plus many smaller fixes. RAD Studio still ships with InterBase 2020 Developer and now includes a license for the upcoming InterBase 15 Developer edition.

  • Ternary Operator: RAD Studio 13 finally brings the much‑requested ternary operator to Delphi — written with the if keyword so you can use concise in‑expression conditionals.

  • Language improvements: The update also adds handy language tweaks across Delphi targets: NameOf, {$PUSHOPT}/{$POPOPT} as new compiler directives, implicit Self in record class operators Initialize and Finalize, is not / not in operators, a noreturn directive, and tighter generic constraints — small changes that make everyday code cleaner and clearer.

  • 64-Bit personalities: So far, all 64-Bit personalities had been in Preview. RAD Studio 13 includes a full-featured 64-bit IDE for Windows x64 that's now part of the core installer (no separate add-on). Compared with the 12.3 initial release it adds full Delphi and C++ build/debug support, C++ tooling via Visual Assist, COM/ActiveX/type-library support, Live Templates (Ctrl+J) and the Surround menu, plus various quality improvements.

  • WebStencils and WebBroker enhancements: In recent blog posts, I explained that I mostly focus on the backend these days. Most of my frontend work is done with React and Next.js. I only have a few VCL and FireMonkey applications that I maintain. WebStencils turns RAD Studio’s web stack into a proper server-side framework, adding scripting, session/auth support, dataset access controls and a new switch statement. RAD Studio 13 also extends WebBroker with session management, improved logging and better Apache/Nginx integration — together these updates make building data-driven sites and secure web APIs much faster and easier.

How to configure Linux for Delphi development

Delphi has long been a powerful tool for Windows application development, but with the introduction of Linux support in recent versions, developers can now leverage Delphi's capabilities to create applications for Linux environments. This opens up new opportunities for cross-platform development and expands the reach of Delphi applications.

The difficulty for many developers lies in the configuration of Linux that you can connect it to RAD Studio so that you can deploy your Linux applications directly from the IDE. This process involves several steps, configuring the Linux target in RAD Studio, and ensuring that all necessary libraries and dependencies are in place.

As always, you find great resources on GitHub from other Delphi developers.

Why do you mention Linux?

Linux is a popular choice for many developers due to its flexibility, stability, and open-source nature. By supporting Linux, Delphi developers can reach a broader audience and take advantage of the strengths of both Windows and Linux platforms. Additionally, Linux is widely used in server environments, making it an attractive option for developing backend applications and services.

Just to give you an example, I run all my web servers on Linux and I also run all my XData backend services on Linux. I simply love the stability and performance of Linux servers. Installing reverse proxies like Nginx or Apache is a breeze and does not require a lot of resources. And best of all: Linux is free! Renting a Linux server is often cheaper than 5 bucks a month. You won't find a Windows server for that price.

A note on Delphi developers and GitHub

It's common to hear that Delphi developers are less active on platforms like GitHub compared to other programming communities. While open-source collaboration is widespread elsewhere, Delphi developers often hesitate to share their code publicly or contribute to shared projects. This reluctance can limit opportunities for learning, collaboration, and innovation. Embracing platforms like GitHub can help Delphi developers connect with peers, improve code quality, and contribute to the growth of the community.

Still, talking to many Delphi developers, I often hear that they are not familiar with GitHub or do not see the value in sharing their code on a platform that they cannot control. This is a missed opportunity for the Delphi community to grow and thrive.

Version control? I only use backups and ZIP!

Sadly, another frequent occurence when talking to Delphi developers is that they do not use version control systems like Git. Many developers rely on manual backups or ZIP files to manage their code, which can lead to issues with code management, collaboration, and tracking changes over time. Version control systems like Git provide a robust way to manage code changes, collaborate with other developers, and maintain a history of code changes. By using Git, Delphi developers can improve their development workflow, reduce the risk of code loss, and enhance collaboration within their teams. It is also very easy to embrace as the learning curve is not steep at all. And best of all: Git is free! And one of the best books is free as well: Pro Git.

Please use version control!

Back to Linux

To get started with Delphi on Linux, you'll need to set up a Linux environment that RAD Studio can connect to. This typically involves installing a compatible Linux distribution, configuring SSH access, and ensuring that the necessary libraries and tools are installed on the Linux machine.

But nowadays, Windows even offers a Windows Subsystem for Linux (WSL) that you can use to run a Linux environment directly on your Windows machine. This can simplify the setup process and make it easier to test and deploy your Delphi applications on Linux.

Once your Linux environment is set up, you can configure RAD Studio to connect to it. This involves adding a new Linux target in the IDE, specifying the connection details, and testing the connection to ensure everything is working correctly.

How to configure Linux for RAD Studio

Ian Barker and Jim McKeeth to the rescue! Initally, they created a great series of Gists that walk you through the entire process of setting up Linux for RAD Studio. As Gists are a bit hard to find, I have copied the content to a GitHub repository that you can find here:

This repository contains detailed instructions and scripts to help you configure your Linux environment for Delphi development. It covers everything from installing the necessary packages to configuring SSH access and setting up the RAD Studio connection.

Surf GitHub for more resources

There's so many great resources on GitHub from other Delphi developers. Just search for "Delphi Linux" or similar terms to find repositories, gists, and projects that can help you get started with Delphi on Linux. You can find sample projects, libraries, and tools that can make your development process easier and more efficient.

Summary

Running Delphi applications on Linux is now more accessible than ever, thanks to the support provided in recent versions of RAD Studio. By setting up a Linux environment and configuring RAD Studio to connect to it, developers can take advantage of Delphi's powerful features to create cross-platform applications. This opens up new opportunities for reaching a broader audience and leveraging the strengths of both Windows and Linux platforms.

Ready to expand what your Delphi applications can do?

Whether it’s deploying to Linux, building web APIs, or learning new frontend tools, I’ll guide you through planning, setup, and delivery. Reach out and we’ll map the next steps together.

Why Web development is difficult for Delphi developers...

I have been fairly quiet over the past few months, focusing on several projects that required my full attention. Last year, I got to know React and I reported about the challenges.

Coming from a Delphi background, I have learned a great deal about web development and have applied my knowledge of TypeScript and React in real-world scenarios. Some backend functionality is written in Delphi using TMS XData, allowing me to leverage Delphi's powerful database capabilities while utilizing modern web technologies on the frontend.

When building web applications with Next.js, the gap between frontend and backend is narrowing. I can now develop full-stack applications using a single language, TypeScript, which greatly improves efficiency. The learning curve has been steep, but the rewards are significant.

As Delphi developers, we can quickly grasp TypeScript concepts since they are similar to Object Pascal. The tooling is as mature as the Delphi IDE, and the community is huge, with many resources available to help you get started.

The challenges...

The biggest challenge, as I mentioned in my previous blog post, is transitioning to React. Its component-based architecture differs from what we are used to in Delphi, but once you understand it, it becomes a powerful way to build user interfaces.

However, the main hurdle is not the component-based architecture itself, but the fact that React is a JavaScript framework. JavaScript is very different from Object Pascal—the syntax, coding style, and debugging process all differ. TypeScript helps bridge the gap, but learning a new language and framework remains a challenge.

...but they are not too difficult! A new programming paradigm.

React is a declarative, component-based framework for building user interfaces. Instead of writing imperative code to manipulate the DOM, you write declarative code that describes what the UI should look like. This represents a fundamental shift in how we approach UI development.

Consider a pizza restaurant: you order a pizza, and the restaurant prepares it for you. You don't care how the pizza is made; you just want to eat it. In React, you describe what the pizza should look like, and React handles the preparation. In Delphi, it's different—you must instruct the restaurant on how to make the pizza, what ingredients to use, and how to cook it. You control the entire process.

This is known as the declarative programming paradigm. It is a powerful way to build user interfaces, but it requires a different mindset. For me, understanding this paradigm was the most challenging part of learning React. Once you grasp it, the rest is just learning the syntax and framework. The benefit is that you can build complex user interfaces with less code and reduced complexity. Imperative code is often more complex and harder to maintain, while declarative code is easier to read and understand. Today, I would not be able to build a complex UI without the declarative approach.

UI is difficult

Building user interfaces is challenging and requires great attention to detail. In Delphi, we have the VCL and FireMonkey frameworks, which provide a rich set of components for UI development. In React, however, you must build your own components or use third-party libraries, which can be daunting if you are unfamiliar with the framework.

Fortunately, two 'tools' make building user interfaces in React easier:

  • Tailwind CSS: A utility-first CSS framework that enables you to build user interfaces quickly and easily. It offers a set of predefined classes for styling components, making it simple to create responsive, modern UIs without writing extensive custom CSS.

  • Shadcn UI: A component library that provides pre-built components for React applications. Built on top of Tailwind CSS, it offers components that are easy to use and customize, reducing the need for custom code.

If you are a Delphi developer looking to get into React, I highly recommend using Tailwind CSS and Shadcn UI. They will make your life much easier and help you build user interfaces efficiently.

Writing backend plus frontend code is tedious

Writing backend code in Delphi and frontend code in React can be tedious. You must switch between two different languages, paradigms, and frameworks, which is challenging if you are not familiar with both. Even if you write your backend in TypeScript, you still need to manage two separate projects.

Next.js simplifies full-stack development by allowing you to write both backend and frontend code in the same project using TypeScript. This approach increases efficiency, enables code sharing between backend and frontend, and reduces duplication. You can call backend code from the frontend using Server Actions or API routes, making it easy to build full-stack applications with a single language. Everything is encapsulated in one project, simplifying management and deployment.

Conclusion

In summary, React is a powerful framework for building modern, responsive user interfaces. It requires a new way of thinking about application development, but once you understand it, React offers an efficient approach to UI design. The declarative programming paradigm is the most challenging aspect, but it is also the key to React's power. With Next.js, you can build full-stack applications using TypeScript, streamlining development. Delphi, with TMS XData, provides robust database features that complement modern web technologies. If you prefer, you can also write your backend using Next.js.

Are you ready to dip your toes into something new?

If you’re interested in exploring web technologies, learning React, or building your next application for the web, I’m here to help. Whether you want to modernize parts of your existing solution or start a new project, I offer consulting to guide you through the process and help you master these tools. Let’s connect and take your development skills to the next level!

Cherish the Past, Embrace the Future: Web development with Delphi and TMS WEB Core

Get ready

This week, I watched several technical sessions from Google I/O and React Conf 2024. Two conferences that contain a plethora of information about the latest trends in web development. It's fascinating to see how the web platform has evolved over the years, from the early days of static HTML pages to the modern, dynamic web applications we have today.

As a Delphi developer, I couldn't help but reflect on the evolution of web development and how it intersects with the world of Delphi. While Delphi is primarily known for its strength in building native desktop applications, the rise of web technologies has opened up new possibilities for developers. One such technology that bridges the gap between Delphi and web development is TMS WEB Core.

Bridging Worlds: Delphi, TMS WEB Core, and the Evolution of Hybrid Desktop Applications

User interface design

In the ever-evolving landscape of software development, the boundaries between different platforms and technologies continue to blur. One such convergence is the fusion of web and desktop applications, facilitated by powerful tools like Delphi and TMS WEB Core. These technologies enable developers to seamlessly integrate web components into native desktop applications, opening up new possibilities for innovation and user experience.

In this article, we'll explore the strengths of Delphi and TMS WEB Core, and how they come together to create hybrid desktop applications that combine the best of both worlds. We'll also provide an example of how to integrate a web component into a VCL application using TMS WEB Core, showcasing the power and flexibility of this approach.

In this upcoming video series, I will show you how to create a modern, responsive image gallery with TMS WEB Core. In addition, you will learn how to integrate the Pexels API. Starting with basic principles of web development using cascading stylesheets (CSS) including a detailed introduction of flex box, the new grid system, and cards. Floats are a thing of the past! We will also use the Bootstrap framework to create a responsive design. With regard to functionality, we will begin just to show a few curated images from one endpoint. At the end, you will create a web application that allows you to search for specific keywords and display the images in a grid with the ability to navigate between pages (pagination).

Results of the poll: HIW LIVE

I just wanted to give brief feedback on the results of the poll from the beginning of this month. It has become very much clear looking at the results that there is little interest in LIVE HIW seminars with the opportunity to ask questions.

Support my projects with GitHub Sponsors

In the ever-evolving landscape of technology, community-driven support plays a crucial role in fostering innovation and growth. Today, I'm thrilled to share a significant step in my journey as a Delphi enthusiast and content creator – I have joined GitHub Sponsors to provide you with an opportunity to support my tutorials, videos, source code examples, and other Delphi-related projects.

I'd like to mention that several developers have approached me, expressing their interest in supporting my projects financially. This move to GitHub Sponsors serves as a dedicated platform where you, along with other members of the community, can contribute and help sustain the continued development of valuable Delphi content. Your support is greatly appreciated, and if you have any questions or would like to contribute, GitHub Sponsors is the avenue through which you can do so.

Please also see my remarks on the Thanks button on YouTube below.

Support my projects

POLL: LIVE seminar about Web development ?

In recent weeks, I have gotten inquiries about a live seminar to build a full stack project with Delphi. With regard to scope, something like my latest video series with the ability for you to interact and ask questions. The seminar would either be during the week or on a Saturday.

Possible Topics?

Here's just a few suggestions as an overarching topic for the whole seminar. They would last from 3-6 hours.

  • HTML, CSS and Bootstrap for Delphi developers
  • Building the architecture of a Web application with responsive navigation bar
  • Web page with user login and dedicated areas (front plus backend implementation)
  • Getting started with MQTT
  • Your idea! Use comment section in poll...

Are you interested?

Let me know if and when you would like to participate. Also, if you would only participate for free. The likelihood of an event happening is lower then because I would need to look for a sponsor.

Warning

The poll is closed.

FREE video series published

Here's just a heads up that my latest video series named "Modern Delphi Web Development" has been completely published by TMS Software on YouTube. It consists of 8 episodes with a run-time of over 3 hours! A full table of contents with links to each video is available here.