Illustration comparing cursor-based pagination and offset pagination in modern APIs. The graphic features side-by-side visualizations of each pagination method, highlighting cursor navigation versus numbered page navigation, alongside the title "Cursor-Based Pagination vs Offset Pagination: Preserving User Navigation at Scale." Author attribution for Rachel Walker appears in the lower-left corner.

Cursor-Based Pagination vs Offset Pagination: Preserving User Navigation at Scale

Rachel Walker API Development, Architecture, Articles, UI/UX Leave a Comment

Cursor-based pagination has become the default pagination strategy for many modern APIs, including GraphQL APIs, cloud platforms, and large-scale SaaS applications. While it offers significant performance advantages over traditional offset pagination, it introduces new challenges for navigation, bookmarking, sharing links, and preserving user context. In this article, we compare cursor pagination vs offset pagination, explore why the industry is moving …

Vibe Coding Trends 2026: Adoption, Productivity, and Code Quality Data

Keyhole Software Agentic AI & AI-Accelerated Development, All Industries, Articles, Artificial Intelligence, Generative AI & LLMs, Industry Research, Retrieval-Augmented Generation (RAG) 11 Comments

2026 vibe coding trends: 92% daily U.S. developer adoption, $4.7B market, 63% non-developer users, and a deepening quality crisis. Data for engineering leaders.

Header image for a Keyhole Software article by Austin Powell about using LLMs and AI-assisted discovery to understand, document, and modernize a legacy Delphi application. The image highlights transforming a "black box" system into a documented architecture blueprint and delivering a modernization project in approximately half the original timeline.

How We Used LLMs to Understand and Modernize a Legacy Delphi Application

Austin Powell .NET, Agentic AI & AI-Accelerated Development, All Industries, Articles, Artificial Intelligence, Modernization Leave a Comment

Many legacy modernization projects start with a simple question: what does this thing actually do?

In this project, we were modernizing a decades-old Delphi application with limited documentation, no meaningful test coverage, engineers long since moved on, and significant unknowns about the environment in which it operated.

Modernizing legacy systems is challenging, particularly when documentation is limited and system knowledge has been lost over time. When LLMs and AI are applied thoughtfully, they can help teams understand legacy systems faster and reduce modernization risk.

This article focuses on how we used LLMs to understand, document, and de-risk an unfamiliar legacy system before modernization began. Once the application was understood and the architecture was defined, the team leveraged AI-assisted development workflows to accelerate the Delphi-to-.NET rewrite itself. Evan Sanning shares that side of the project in his companion article, How We Used LLMs to Rewrite a Legacy Delphi Application in C#.