Controluce: developing a real-world application with AI, without writing code
Is it possible to develop and launch a complete application without manually writing a single line of code, relying on Artificial Intelligence agents?
This was the question that prompted Marco Ranica’s work on Controluce, the portal dedicated to the historical photo archive of Urgnano and Basella.
Developed between June and September 2026 as part of an Intré Guild, the project is now online and accessible to everyone, hosted on a municipal server. It is therefore more than a simple demo: it is a real-world application designed to manage historical photographs, users, content and community contributions.
The aim of the experiment was to understand how far coding could be delegated to AI while retaining control over design decisions, architecture and the quality of the result.
From the students’ idea to the creation of Controluce
The story of Controluce began before the experiment with AI.
The project originated in a school–work learning programme with Istituto Andrea Fantoni, during which students helped design a website dedicated to the area’s photographic heritage.
The activity simulated a real working relationship between a client and a design team, with requirements, objectives and guidelines to follow.
By the end of the programme, eight prototypes had been created using Adobe XD. These were then analysed to identify their most interesting elements.
These included:
- The name Controluce, chosen for its ability to convey the project’s identity.
- The structure of History of Urgnano, which was particularly effective in organising the archive and personal accounts.
- The sense of local identity conveyed by Storie tra le vie.
- Features devised by the other groups, including postcard creation, a collection of residents’ photographs, a historical timeline and various games.
These proposals provided the starting point for developing the application.
The materials were collected and organised into a brief in Figma, alongside visual guidelines and design priorities. This document became one of the main references provided to the AI agents during development.
An important step in the experiment was giving AI structured context rather than relying on generic requests, to achieve results more closely aligned with the project’s objectives.
An experiment with one clear rule: no manually written code
The experiment followed a well-defined constraint: all application code had to be generated and modified exclusively through Artificial Intelligence tools.
This did not mean giving the agents complete autonomy.
Instead, the work focused on three core activities: defining the context, designing the architecture and verifying the results.
Providing agents with consistent context
To ensure continuity across development sessions, instruction files were prepared containing essential project information: objectives, technologies used, constraints and rules to follow.
These documents were supplemented by a project plan and an activity log, with references to the commits confirming completion of each task.
This allowed each new session to pick up where the previous one had left off, reducing the need to continually reconstruct the context.
Defining the application architecture
Architectural decisions remained under human control.
Controluce was developed using a technology stack consisting of:
- Angular, for the frontend.
- NestJS, for the backend.
- PostgreSQL, for metadata management.
- MinIO, for photograph storage.
- Docker, for running application components in containers.
The application also includes an authentication system with separate roles for administrators and contributors, along with automated weekly backups.
The AI agents handled the implementation, following the architectural decisions made during the design phase.
Verifying the work produced
Quality assurance was another key element.
During development, automated tests, security checks, accessibility checks and mobile page tests were carried out using Playwright.
These activities were also delegated to the agents, but the results were reviewed by a person.
The experiment therefore maintained a clear distinction between automating tasks and taking responsibility for decisions.
Five AI agents to organise the photo archive
One of the most interesting aspects of Controluce is how photographs are catalogued.
Creating a historical archive requires more than an application that can store and display images. Each photograph needs accompanying information that makes it searchable, accessible and understandable in context.
Titles, descriptions, locations, historical periods and keywords are essential elements, but entering them manually can be time-consuming.
To tackle this task, a system of AI agents specialising in photo cataloguing was designed.
The process involves a coordinating agent that organises the material received from donors, divides the photographs into groups and assigns tasks to five archivist agents working in parallel.
Each agent analyses the images, fills in the descriptive records and organises the files into the corresponding albums.

Once processing is complete, the coordinator compiles the information into a CSV file that can be imported directly into the portal.

Cataloguing without inventing information
The cataloguing process was designed around clear rules, with particular attention to the reliability of the generated information.
Agents must describe only what is visible in the images, avoiding unsupported interpretations.
For example, they cannot arbitrarily assign a date to a photograph, identify people without reliable information or infer family relationships and occupations.
When information is unavailable, the relevant field is left blank or the uncertainty is explicitly noted.
Alternative text, which makes photographs accessible to people using screen readers, also follows specific rules and must be distinct from titles.
The aim is not to produce seemingly complete records, but reliable, verifiable information.
Every record is still reviewed by a person before publication.
This approach makes it possible to benefit from AI’s speed while maintaining content quality and respect for historical memory.
Controluce today: 467 photographs and an archive open to the community
The result is an archive that, at the time of the presentation, contained 467 published photographs organised into 12 albums.
Each image has a catalogue record containing its title, year, location, album, keywords and donor information.
The photographs can be downloaded in high resolution under the Creative Commons Attribution 4.0 (CC BY 4.0) licence, which allows reuse subject to its terms.
The portal also includes a feature for suggesting corrections to the catalogue records.
Anyone who recognises a location, an event or a historical period can help improve the information in the archive.
This is a particularly important aspect of the project: AI helps organise information, while the community helps reconstruct and preserve the area’s historical memory.

Non solo fotografie: le funzionalità del portale
Controluce non si limita alla consultazione dell’archivio fotografico.
Il sito integra diverse funzionalità, molte delle quali derivano direttamente dai prototipi realizzati dagli studenti dell’Istituto Andrea Fantoni.
Raccontare la storia del territorio
La sezione dedicata alla linea del tempo raccoglie 50 eventi documentati, organizzati in cinque epoche storiche. Ogni evento dispone di una pagina dedicata e di collegamenti alle fotografie dell’archivio.
A questa si affianca una raccolta di 13 storie e racconti dedicati a persone, luoghi e aspetti della vita quotidiana del territorio, consultabili attraverso filtri tematici.
Sono inoltre previste due ulteriori sezioni, ancora in fase di realizzazione: una dedicata alle testimonianze degli abitanti e una mappa interattiva che permetterà di individuare i luoghi rappresentati nelle fotografie.
Le testimonianze audio verranno trascritte per facilitarne l’accessibilità e la ricerca, mentre la mappa richiederà un lavoro progressivo di georeferenziazione delle immagini.
Coinvolgere i cittadini
Il portale offre anche strumenti per favorire la partecipazione della comunità.
Tra questi, una funzionalità che permette di creare cartoline personalizzate utilizzando le fotografie dell’archivio, scaricabili in formato A6 per la stampa oppure in formato 4:5 per la condivisione sui social.
Sono presenti anche due giochi basati sulle immagini storiche: un puzzle fotografico e un memory.
Attraverso la sezione Partecipa, i cittadini possono inoltre proporre nuove fotografie, condividere ricordi, segnalare correzioni e inviare testimonianze audio o video.
Tutti i contributi vengono sottoposti a moderazione prima della pubblicazione.
La gestione di queste attività avviene attraverso un back office dedicato agli amministratori, che consente di approvare le fotografie, importare le schede preparate dagli agenti, moderare i contenuti e gestire gli utenti.
From project to launch: the presentation on 23 October 2026
On 23 October 2026, Controluce was officially presented to the community of Urgnano at an event held in the conference room at Rocca Albani.
The event was an opportunity to share the project’s journey, from the students’ initial proposals through to the experiment with AI agents and the launch of the portal.
The evening also covered how the digital archivists work and the contribution of the families who shared their photographs.
Attendees received 36 printed postcards, each featuring a historical image and its accompanying story.
The project was therefore presented both as the outcome of a technological experiment and as a resource for the local community.
The event materials are available online:

What does this experiment teach us about software development with AI?
The Controluce experience offers several insights into the role of Artificial Intelligence in software development processes.
The first concerns the importance of context and instructions.
The quality of the results depends not only on how a single prompt is worded, but also on the ability to provide agents with clear objectives, constraints, documentation and consistent references.
A second aspect concerns the need to verify what is produced.
Agents can accelerate many activities, from code generation to content cataloguing, but they do not eliminate the risk of errors. Testing, reviews and checks therefore remain essential.
The experiment also highlights a shift in the developer’s activities.
In the case of Controluce, there was no need to write code manually. However, this did not eliminate design work, architectural decisions, the evaluation of solutions or quality assurance.
The focus shifted from writing code directly to defining instructions, supervising the process and verifying the results.
Finally, the work on the photo archive highlighted the importance of handling uncertainty consciously. When information is insufficient, it is better to mark a piece of information as unavailable than to generate an unverified answer.
Experimenting to understand AI’s opportunities and limitations
Controluce is a practical example of how an experiment can become a real-world application whose value extends beyond technology.
The summer Guild provided an opportunity to explore new approaches to AI-assisted development, testing tools, processes and responsibilities in a complete application context.
The experience shows that delegating coding to AI does not mean giving up software development expertise, but applying it differently.
Designing an architecture, defining requirements, recognising the limitations of tools and critically assessing results remain essential activities for building quality software.
This is one of the aims of Intré’s Guilds: to create opportunities for learning and experimentation, share the knowledge gained and turn it into new skills.
In this case, the result is also a digital archive that helps preserve and celebrate a community’s historical memory.
Controluce is online and freely accessible.
Our thanks to the Municipality of Urgnano, Istituto Andrea Fantoni and its students, and all the families who contributed to the project by sharing their photographs.