H5P and Drupal: Interactive Content for Educational Publishers

Your editorial team wants to publish interactive quizzes, drag-and-drop exercises, and timeline visualisations next to your textbook content. They don't want to file a development ticket every time. They definitely don't want to learn JavaScript.
H5P is the framework that closes that gap. It lets non-technical authors create rich interactive content through a visual editor, embedded directly into your Drupal site. For educational publishers in particular, it's one of the few practical answers to "how do we let editors build interactive content without owning a development backlog forever?"
Here's what H5P actually is, how it integrates with Drupal, and what to think about before you commit.
What H5P Actually Does
H5P, short for HTML5 Package, is an open-source framework for creating interactive content types: multiple choice quizzes, fill-in-the-blanks, drag-and-drop exercises, image hotspots, interactive videos, timelines, dialog cards, and around fifty other patterns covering most things educational publishers ask for.
The pitch for editorial teams is that H5P content is built in a visual editor that feels closer to a building-blocks interface than to writing code. Each content type is self-contained, responsive, and accessible by default. Authors pick a type, fill in the questions or media, and publish. The output works on mobile, plays cleanly in screen readers (mostly, with some caveats discussed below), and doesn't require any developer involvement after the initial setup.
The strategic value for a publisher is autonomy. Once H5P is configured, your content team can build interactives without going through engineering. That changes the economics of producing interactive content from "a feature request that takes two weeks and competes with everything else on the roadmap" to "a Wednesday morning task for the editorial team."
How H5P Fits With Drupal
There are three realistic ways to integrate H5P with a Drupal-based publishing platform.
Option 1: The H5P Drupal Module
The community H5P module integrates the framework directly into Drupal. Editors create content in the Drupal admin, the module stores it in the database, and content types live alongside everything else as fields or entities.
This makes sense if you want H5P to participate fully in Drupal's permissions, revisions, translations, and editorial workflow. Content versioning works the way you'd expect, exports and imports between environments are straightforward, and there's nothing external to manage.
The trade-offs are worth knowing. Module maintenance has been inconsistent over the years, and you should check current activity before committing. Library updates are tied to module releases, so you're at the maintainer's pace for new H5P content types. The database can also bloat fast if your editors lean heavily on rich media inside H5P packages.
Realistic cost: £6,000 – £15,000 for setup, configuration, content type selection, and editorial training.
Option 2: H5P.com Hosted Service
The other approach is to use the official H5P.com hosted service and embed content via iframe. Editors create content on H5P.com's interface, copy the embed code, and paste it into Drupal.
This is the lowest-friction option for getting started. There's no module to maintain, content types stay current automatically, and hosting load is offloaded entirely. The free tier is generous enough for small publishers to validate the approach before paying.
The cost is dependency. Your content lives outside Drupal, which means it's not part of your Drupal backups, doesn't participate in your editorial workflow, and is subject to a third-party pricing model that has shifted over time. For publishers with strong data ownership requirements or regulated content, this often rules the option out.
Realistic cost: £2,000 – £6,000 for integration plus H5P.com subscription fees.
Option 3: Headless Drupal With H5P
If you've already committed to a headless architecture, with Drupal as the content repository and a separate frontend, H5P needs slightly more thought. There are three viable patterns:
You can render H5P content in your frontend by fetching the content data from Drupal's JSON:API and using H5P's standalone player libraries. This gives you the most control over presentation but means writing wrapper components and dealing with H5P's bundle size in your frontend build.
You can embed H5P from Drupal via iframe, which is simpler. The H5P content runs on the Drupal host, your headless frontend renders an iframe, and you handle communication between iframe and parent via postMessage. Less flexible, but less code to maintain.
Or you can store H5P.com embed codes in Drupal and have the frontend render them as iframes. This is the simplest pattern and fits cleanly with the hosted-service approach.
Realistic cost: £15,000 – £40,000 depending on which pattern and how custom the rendering needs to be.
What You'll Actually Use It For
Four scenarios cover most publisher implementations.
- Supplementary practice content alongside textbook material
Each chapter or article gets one or two H5P interactives, embedded inline with the prose. Authors create the interactive while writing the chapter. - Standalone assessment platforms
H5P is the main content type, with custom navigation, progress tracking, and results reporting wrapped around it. The platform exists primarily to deliver assessments. - Interactive video courses
Video lessons with embedded quizzes that pause the video at specific timestamps, enforce a correct answer before continuing, or branch the experience based on responses. H5P's Interactive Video content type is genuinely good at this. - Searchable practice libraries
A library of tagged H5P items that teachers browse, filter by topic and grade level, and either embed in their LMS via LTI or share with their students directly.
The pattern is the same across all four: H5P does the interaction, Drupal does the structure, taxonomy, search, and editorial workflow around it. The integration is what determines whether it works in production.
What Goes Wrong With H5P
Six things tend to bite publishers in the first year of an H5P rollout. None of them are fatal, but they all need planning for.
- Library updates can break old content
H5P content types evolve, and a major update to the Multiple Choice library can change how older content renders. You need a process for testing existing content against library updates before you push them live. - Performance on mobile is uneven
Some H5P types are heavy. A page with three or four embedded interactives can feel slow on a budget Android phone, which is what a lot of secondary school students will be using. Test on real devices, not just desktop emulators. - Editor expectations need managing
"I saw this cool interaction on website X, can we do that in H5P?" Sometimes yes. Often no, or only awkwardly. The visual editor implies that anything is possible. It isn't. - The Drupal module's maintenance status varies
Periods of low activity have been a recurring pattern. Before you commit to the module route, check the issue queue and recent commits. Don't assume a module that worked well two years ago is well-maintained today. - Iframe communication is fiddly in headless setups
If your H5P content is embedded via iframe in a headless frontend, getting events out of the iframe (completion status, scores, navigation) requires careful postMessage handling. Modern browser cookie restrictions make this harder than it used to be. - Results storage is harder to retrofit
If you need to know which students completed which exercises, plan for it from the start. Adding result tracking after the fact usually means re-saving a lot of historical content, and sometimes losing data you'd assumed was being captured.
These are the things experienced H5P implementers know to design for. AI-generated tutorials usually don't.
Tracking Results
If your platform needs to know what students did, there are four realistic approaches.
The H5P module's built-in tracking stores results in the Drupal database. Reporting is basic but workable for small platforms. Good enough for a few hundred users; not good enough for serious analytics.
xAPI (sometimes called Tin Can) is the modern standard. H5P content types can emit xAPI statements, which you send to a Learning Record Store. This is the right approach if you need real analytics, branching learning paths, or compliance reporting. It requires LRS infrastructure such as Learning Locker or Watershed, which is a separate decision and cost.
Custom result handling is sometimes the right answer when you have specific business requirements. H5P emits JavaScript events when interactions complete; you write a handler that POSTs the result to your own endpoint and stores it wherever makes sense for your platform.
LTI grade passback comes into play if students are arriving from a learning management system. H5P results get translated into LTI grade messages and flow back into the institution's gradebook. This is often combined with one of the above approaches: xAPI for your own analytics, LTI for the institution's gradebook.
Accessibility
H5P content types generally follow WCAG guidelines, and most are usable with keyboard and screen reader. That said, the framework cannot enforce accessible content. Editors still need to provide alt text for images, write clear question prompts, and avoid timed exercises that disadvantage some users.
Before you enable H5P content types, audit each one. Create a representative example of each type and run it through a screen reader. Document what works and what doesn't, and build that into your editorial guidelines. The framework gives you a baseline. Reaching the standard your customers expect requires ongoing editorial discipline.
When H5P Makes Sense (And When It Doesn't)
H5P is a good fit if:
You have a non-technical content team that needs to produce interactive content regularly. Your interaction patterns are reasonably standard (quizzes, drag-drop, hotspots, timelines). Authoring speed matters more than bespoke design. Accessibility is a baseline requirement rather than a stretch goal.
H5P is the wrong tool if:
You need highly custom interactions that don't match any of the existing content types. Performance is critical and you can't afford the framework's runtime cost. Your brand requires very specific visual design, because H5P's styling is constrained. Or you're building game mechanics. H5P is an educational framework, not a games platform.
For most publishers, the question isn't "should we use H5P?" but "how do we use H5P without painting ourselves into a corner?" The answer is usually a combination of careful content type selection, an editorial workflow that includes quality control, and a results tracking strategy that matches your actual business model rather than the most ambitious version of it.
Making the Decision
Four questions to work through with your team.
- Does our editorial team actually need this?
If your content team is small, comfortable with development collaboration, and producing one interactive a quarter, H5P is overkill. If they're producing dozens of interactives a year and the development backlog is the bottleneck, H5P probably pays for itself fast. - Module, hosted, or headless?
Module if you want everything inside Drupal and accept the maintenance trade-offs. Hosted if you want the lowest-friction starting point and can accept a third-party dependency. Headless if you're already on that architecture and want consistency. - Do we need result tracking, and how serious?
Built-in tracking for casual use. xAPI plus an LRS for analytics-driven platforms. LTI grade passback if you're selling to institutions. Decide before you start building, not after. - Who owns editorial quality?
H5P shifts content production to editors. That's the value, and also the risk. Decide early who reviews H5P content before publish, what the standards are, and how you'll handle edge cases like accessibility issues or broken interactions on mobile.
Getting Started
Here's what I'd do if H5P is on your roadmap this quarter.
- Pick three content types to start with, not thirty
Editors get overwhelmed by the full catalogue. Start with multiple choice, fill-in-the-blanks, and one richer type like Interactive Video or Image Hotspots. Add more once the team is comfortable. - Build a small library of templates and examples
The fastest way to get good H5P content is to give editors strong starting points. A dozen well-built examples in your common patterns saves weeks of trial and error. - Decide on result tracking before you start authoring
If you'll need it, building H5P content without it and bolting it on later is painful. If you don't need it, say so explicitly so nobody spends time building infrastructure you'll never use. - Plan for accessibility review as part of the editorial workflow
Not after the fact. The cost of fixing accessibility problems on H5P content scales with how much content already exists. Build the review step in from day one. - Get architectural advice if you're going headless
The three patterns above have very different long-term cost profiles. The cheapest upfront isn't the cheapest at scale, and retrofitting is harder than getting it right the first time.
A Final Word
H5P democratises interactive content creation, which is genuinely valuable for publishers who can otherwise only produce interactives at developer cost. It's not magic. It's a framework with real constraints, and the publishers who get the most out of it are the ones who treat it as an editorial tool with a technical backbone rather than a one-click solution.
The implementation is mostly straightforward. The hard parts are choosing the right integration approach for your situation, designing an editorial workflow that protects content quality, and planning the data layer (results, tracking, reporting) before you've already committed to a path.
If you're considering H5P for a publishing platform and want a pragmatic view on how to introduce it without spending more than you need to, I'll help you map out the decisions and give you a realistic cost picture for the route that fits your team.
Map out your H5P decision
A short call to discuss your editorial requirements, your existing platform, and find an integration route that fits. Honest numbers, no agency markup.