This website uses cookies to ensure you get the best experience. By clicking or navigating the site you agree to allow our collection of information through cookies. More info

2 minutes to read Posted on Thursday November 26, 2020

Updated on Monday November 6, 2023

portrait of Dasha Moskalenko

Dasha Moskalenko

Manager Service Experience , Europeana Foundation

Website development for cultural heritage content at Europeana

This November on Pro, we share the practices we follow when developing the Europeana website to ensure that people have a positive experience browsing millions of cultural heritage objects. This post looks at our development processes, best practices, and tools we use to ensure that our application is robust and resilient.

A woman working on a data processing machine
IBM 650 Magnetic Drum Data Processing Machine. En tidig IBM-dator som användes bland annat inom Statens Järnvägar, SJ
Gylldorf, J.N.

Content management for digital cultural heritage

In 2019, we made the decision that we needed to take our processes and technologies for the Europeana website to the next level. We wanted to deliver faster, with fewer bugs, and offer an experience closer to what people see on social networking websites so that people could have the best experience exploring digital cultural heritage items.

In March 2020, we launched the new Europeana website using Contentful, a software as a service (SaaS) content management system (CMS) provider that allows us to combine editorially controlled pages with our EDM modelled cultural heritage objects.

Contentful enables us to structure our website in the way we want and combines all of our existing CMSs into one. It is virtually codeless, so the team needs no insight into the inner workings. Content structures of the website are designed using the Contentful user interface and relationships between this content are defined there. Contentful is a headless CMS, meaning it is not connected to our front-end interface, which is a client of the Contentful APIs.

To enable a quick and reload-free experience, we rewrote our application using JavaScript in the Vue.js/Nuxt.js framework (a development language and framework). Once you’ve loaded the Europeana website into your browser, it stays there, only requesting data not already available on your machine, which makes requests directly to the APIs rather than going via a server. This ensures that the website does not frequently reload and offers a faster experience for the user. 

Reducing bugs

We take great pride in our application in terms of performance and security. We develop our software following our software development guidelines and ensure that all code integrated has unit test coverage of at least 80%, meaning that individual code components used by the website work as expected. We achieve this by ensuring that all our functionalities have end-to-end (E2E) tests using a framework called Cucumber (which is written in the amusingly named scripting language Gherkin!). This includes accessibility testing, and you’ll find more about that in our Pro post on accessibility

All of our functionality has associated E2E tests, and we ask that all partners who develop for the Europeana website follow these same best practices.

Code and process

The Europeana website team develops in two-week sprints, following standard scrum rituals - a framework which helps us to work together and continually iterate. While we follow a roadmap and requirements from our funders, we review planned work every two weeks based on current business needs.

All development tasks are agreed upon by the Product Owner beforehand and ultimately signed off by the Product Owner. When code is completed, a review takes place within the development team to ensure that it is up to standard.

All of the application source code for the Europeana collections website is available in our GitHub repository.


We want our audiences to be able to explore cultural heritage in their own languages, and are pleased that the Europeana collections website can be explored in 24 European languages. To facilitate this, we use a third-party application called Lokalise, which helps us give different language translators access to the site, and quickly obtain professional translations. 

While we have English as a default language which users can fall back to if necessary, and people can look at content that is written in languages other than their own, the intention is for users to browse the site in their own localised version. 

If you spot an incorrect translation please email me ( including the original term used on the website and the correct translation - we will address it as soon as possible! 

See our development in action 

We hope you enjoy the performance improvements we made to the Europeana website and they elevate your experience! Enjoy browsing cultural heritage from across Europe.