Rapid prototyping with LLM: insights from a content migration tool#

This article documents observations from an experimental project on LLM-supported content migration. The primary purpose of the project was to test whether a specific tool idea could work in practice – a classic rapid prototyping scenario.

Initial situation#

In the context of an upcoming Plone-to-TYPO3 migration, the question arose as to how this process could be supported by tools. The focus was less on an immediate productive solution and more on exploring the feasibility: Could a tool be developed that processes JSON exports from Plone, improves the content through LLM analysis, and exports it in various formats?

The tool developed processes complete sub-websites (typically a few KB to a few MB) as structured JSON files. A two-stage LLM processing first analyses the content structure, suggests improvements and then applies this concept to the existing content. Processing takes place exclusively in the session memory.

Technical implementation#

The architecture was based on already known technologies: Python, Gradio for the web interface, an OpenAI-compatible API for LLM integration, and Docker for deployment. This choice enabled rapid implementation, as it was possible to build on previous experience. The application was structured in three modules – an organisation that was planned from the outset and proved to be practical.

A key learning area was JSON handling for large, structured imports. For example, a sub-website on the topic of Wi-Fi comprises 85 pages with different content types (documents, FAQ items, files, images) and is processed as a 12 MB JSON file. An LLM context of 256,000 tokens proved necessary for such data volumes.

Development process#

The development process followed an established pattern: a detailed specification – both functional and technical – was first drawn up and then handed over to the LLM in one piece. Non-functional requirements were taken into account directly in this specification. The KISS principle was already taken into account during the specification process, which resulted in focused code.

The entire development took about 20 minutes for the specification and one hour for the implementation, spread over three iterations: the first code implementation, adjustments for different export formats (Markdown, ZIP, Word) and minor UI refinements. The documentation was automatically generated from the specification and code.

Current status and outlook#

The tool is currently being evaluated by several teams. It serves to prepare for migration and helps to address the question of how this migration can be specifically supported. Feedback from this phase is being collected for a possible next stage of development.

The fact that a one-hour prototyping experiment resulted in a tool that is now being evaluated by various groups illustrates a potential strength of LLM-supported rapid prototyping: ideas can be quickly transformed into functional demonstrators, which can then serve as a basis for informed decisions.


This article is part of a series documenting methodological insights from various LLM-supported development projects.