Case studyWebsite

1EdTech Europe

From a content brief, a design book and a lot of loose ends, into a coherent website

September 2026 - Ongoing

Key outcomes

  • A site the team can run without a designer: conference editions, news posts and newsletter issues are templates
  • Accessibility and privacy rules built in: WCAG 2.2 AA for the European Accessibility Act, and cookie consent with equal Accept and Reject choices under GDPR
  • A clear path to launch: every content gap is methodically catalogued
  • 18 pages and 6 theme templates delivered at desktop, tablet and mobile, all built from design tokens

TL;DR

1EdTech Europe, the new European branch of a global edtech standards body, needed its own website. The material came from different owners and often disagreed: a brand guide written for print, a Figma design system missing most web components, a Word brief with comments from three reviewers, and content spread across other sites, some of it not written yet. The site also had to meet WCAG 2.2 AA and be built in WordPress with Elementor.

I added the components a website needs to the design system, set clear rules for which source wins, and designed 18 pages and 6 templates at desktop, tablet and mobile, with accessibility built into every component. I made my own visual assets from the brand's shapes, chose and placed the photos, tracked down missing content, and worked out a new Figma → Claude Code → Elementor pipeline that builds pages straight from the design.

The design is complete and the first pages are built on the staging site. The launch is waiting only for 10 pieces of content, each listed with its owner, and after launch the team can run the site without a designer.

The problem

1EdTech is a global non-profit that writes open standards for education technology, such as LTI, OneRoster and Open Badges. In 2026 it set up 1EdTech Europe, a separate association registered in Belgium, with its own board, members and fees. It needed its own website: one that explains why a European university, ministry or edtech company should join, lists its 79 member organisations from 17 countries, and hosts Learning Impact Europe, the yearly conference.

The landing page hero section.

There was no shortage of material. The trouble was that it came from different owners, in different formats, and the pieces didn't always agree.

  • The parent organisation had just rebranded and sent a 58-page brand guide written mostly for print. An updated version arrived halfway through the project.
  • Its web team had a Figma design system with tokens and components based on those brand guidelines. On some values, such as button radius, drop shadows and heading weight, it contradicted the brand guide. It also lacked much of what a real website needs: navigation menus, a page header, cards, tabs, accordions and form fields.
  • The content was a Word document with tracked changes and comments from three reviewers.
  • The member list was a separate document, the fees lived on the old website, the event photos on Flickr, and the conference programme on a ticketing platform.
  • Some content didn't even exist yet.
The site map, created based on the content brief: 26 pages across eight navigation sections.

On top of that, the site had to meet WCAG 2.2 AA, which the European Accessibility Act makes a legal requirement, and it had to be buildable in WordPress with Elementor, so other people could maintain it after launch.

My approach

Deciding what the design system was missing

The web design system had tokens, buttons, links and icons, and not much else. I built what the pages needed on the same tokens: mega menus, a shared sub-page header, tabs, accordions, a slideshow, a fee finder, form fields, a toggle switch and the footer, each with hover and focus states. Where the two sources disagreed, the split was simple. The Figma design system decides web values: spacing, radii, elevation, the type ramp. The brand guide decides brand rules: colour use, photography, the conduit shapes, the logo, the tone of voice.

Following the copy selectively

The content brief had to be used word for word: nothing reworded, nothing left out. But the brief also made layout decisions along the way, often arbitrarily: one list of benefits as bullet points, a set of options as cards, a comparison as running text. I kept every sentence and decided for myself how each piece should be shown, often overruling the format the brief suggested. A comparison became a table, six parallel reasons became tabs with a visual each, and long lists became accordions on mobile. Where it made the page easier to use, I added a short line, such as a section intro or a label, as long as every fact in it came from the brief.

One system, three viewports

Every page has a desktop (1440 px), tablet (768 px) and mobile (390 px) frame, side by side on the canvas. Padding, gaps, heading sizes and section spacing are bound to tokens with a viewport mode, so switching a frame to Tablet or Mobile rescales it without hand edits. The desktop frames are also fluid from 768 px up: content stays capped at 1440 px and the margins grow. This way, the content looks good no matter whether it's viewed on a mobile screen or an ultra-wide monitor.

The top of the landing page at desktop, tablet and mobile. The same tokens drive all three; only the viewport mode changes.

Accessibility from the first frame

Because WCAG 2.2 AA was a legal requirement, I designed for it from day one. Every interactive component has a focus variant. Mobile layouts must reflow at 320 px. Forms have error states and mark required fields. Text contrast was checked on every brand colour pairing. Touch targets are at least 44 px. Inline links are underlined at rest. Icons that carry meaning always have a text label. Colour is never the only way information is shown. With all of this in the components from the start, the build can follow the design as it is.

Making my own assets

Experience has taught me that a website looks only as good as its assets, and that the hard part is finding assets that fit together. All I had was a small set of stock photos of mixed quality, so I made my own assets, built from the brand's own geometry. The conduits (quarter-ring shapes taken from the logo) appear large and cropped as backgrounds, small as strips, and as patterns behind coloured sections.

Our Goals on the About page: the purpose statement and a bento grid of goals, mixing photos, brand colours and macro-cropped conduits.

For the more abstract topics I modelled 3D objects and rendered them with a two-colour dither or halftone effect in the brand colours, using a 3rd party UI tool: a ring of stars for European regulation, a trophy for the awards, and a set of everyday objects for the mega menus. One effect across all of them makes them read as a family. On the membership page, I gave the brand guidelines to Claude Motion and made five short animations that each explain one of the reasons to join. They match the shapes, colours and diagram style of the rest of the page so closely that they read as official brand material.

How Our Standards Meet European Rules: a 3D ring of stars rendered with a two-colour dither, between the six regulation topics.
The Resources mega menu. Each card has its own custom dithered 3D object: a ring of stars, a stack of books, a balance scale and an envelope.

I explored a lot of options for each section, combining my own ideas, brainstorming with Claude and patterns from Mobbin. Nothing was thrown away: rejected versions moved to an Archive page, grouped by section, so a decision can be revisited without redoing the work.

The Archive page keeps every replaced version. These are the 13 hero options explored for the landing page.

Getting the photos right

Real photos from the Learning Impact Europe 2026 conference arrived mid-project, as a Flickr album of 595 images. Instead of downloading all of them, I went through the thumbnails and shortlisted 28. The first step was to place the shortlisted photos according to the context of each section.

The rest of the site used the few stock photos the client had supplied at the start, and a reviewer later called them "too somber". So I had to swap some of them. I listed every photo on the site, 26 of them, and flagged 17: the grey ones, the empty rooms, and the ones which repeated. Then I built a simple HTML review page with Claude. For each candidate it shows the current photo, the text beside it, the reason to replace it, and three options from two folders: 63 photos from the 2024 conference and 77 approved stock images.

The photo review page: each flagged photo with the text it sits beside, why it should go, and three replacement options.

The rule I settled on was conference photos where the text is about the community or the organisation, and stock where it's about learners, teachers or abstract ideas. Otherwise the site turns into rows of people on stage. Done by hand, choosing from dozens of options and then swapping each photo on every page, at every viewport and inside every component, would have taken a long time. With Claude, I built the review page, made my picks, and had them automatically applied everywhere in about half an hour.

Hunting for missing content

Wherever the brief left a gap, the page shows a visible "[Content needed]" marker. Halfway through, I audited every marker and went looking. The conference's ticketing site had the full 2026 programme and the sponsors, and the advisory board arrived as a PDF from the General Assembly, so real sessions, 11 sponsor logos and nine board members went in.

The 2026 edition page with real sessions from the published programme. The slides and recordings are still marked as content needed.

Some things weren't published anywhere. The 2026 award winners were announced at the ceremony but never published. For those, I went hunting by contacting the people involved. Whatever is still missing is in a one-page request for the content owner, with a link from each item to its Figma frame. It has 10 rows now.

The content request: a plain table for the content owner, with a link from each row to its Figma frame.

From Figma to Elementor

For this project I worked out a new pipeline for getting a design from Figma to a live website. In our company, we used to rely on UiChemy, a plugin that converts Figma designs into Elementor, but layouts break on the way and fixing them takes as long as building. Having AI write the website from scratch wasn't an option either. The site will have other editors who need to change text and make small edits on their own, and it needs a CMS for news, events and newsletters. So the site stays in WordPress with Elementor, and the job became getting designs into it faster, with higher fidelity, and with more consistency. I did some research on what our options are, and discovered Novamira, a free WordPress plugin that connects WordPress to Claude over MCP and can build pages directly in Elementor. With it, the pipeline became Figma → Claude Code → Novamira → Elementor, with no converter plugin in between. The tokens became Elementor globals, one per token per colour mode (94 colours), so nothing on a page is a hard-coded hex value or font, and an editor picks "Ivy / heading" from a list. The header and footer are Theme Builder templates. The whole pipeline is written up in a handover document, so it can be reused for the next site.

Working with an AI agent

This was the first project where I used AI seriously in my design process, through Claude Code connected to Figma, WordPress and a set of image tools. I directed every step. For each section I gave it the inputs (the brand guide, the design system, the brief), showed examples of what I wanted and described it in detail. Tasks that came up often became custom skills, so they ran the same way every time. Then came rounds of corrections, mostly as annotations in Figma, until each screen was exactly how I wanted it. Every correction was written into the project files, so it held from one session to the next, and each correction became a lasting rule.

AI was most useful for wide changes and audits, where doing it by hand means checking hundreds of layers. I used it to audit the designs against WCAG 2.2 AA, to find spacing, colour and type values that weren't bound to tokens, to check that every page's text matched the brief word for word, to review the photos, and to compare the designs with the brand guidelines. A fix found on one page could then be applied to every page and all three viewports in one pass.

I also gave it a list of third-party tools it could drive to make assets. For the hero, that meant a pipeline that built a 3D model from the brand's geometry and rendered it in a web-based effects tool, so I could compare dozens of combinations of shape, effect and colour. The same pipeline made the dithered objects for the menus and sections, and an ASCII texture for one of the membership visuals.

The animations took a similar route. I designed each one in Claude Motion and then had it converted into a small, self-contained HTML block. On the site it plays at full fidelity, weighs far less than a video, uses the brand's colours and diagram style, and explains an abstract idea, such as a tangle of custom connectors collapsing into one standard API.

The six visuals from Six Reasons on the membership page. Each explains one reason to join: European needs merging into one standard, custom connectors replaced by one API, Europe inside the global community, the long route versus certification, scattered data falling into order, and everyone at the same table. Five of them play as short looping animations on the site.

Together, this sped up the design process and multiplied the number of variants I could explore for each section.

The solution

The scattered, conflicting sources now live in one Figma file. The brand rules and the web tokens meet in a single component library, and all 18 pages and 6 theme templates are built from it, so every page looks like part of the same site.

The reason the site exists, getting European organisations to join, runs as one path: why join, what each membership type gets, the fees in a single fee finder, the directory of all 79 members as social proof, and an enquiry form at the end. A visitor never has to leave for the global site to make up their mind.

European Members on the landing page: an abstracted square-tile map with the number of members per country, shown here with the hover state for Sweden.

Missing content doesn't hold the structure back. Every Learning Impact Europe edition, news post and newsletter issue is an entry on a template, so adding the 2027 conference means filling in a few fields, rather than designing a new page. Each gap is marked on the page and tracked in one list, so a page can go live as soon as its content arrives.

The legal requirements are built into the components themselves. Focus states, touch targets and contrast are built into every component, and the cookie banner gives Accept and Reject equal weight.

The people who run the site after launch work inside the same system. The tokens are Elementor globals, so editors can change text, images and posts without breaking the design.

The outcome

The site hasn't launched yet. The design is complete for every page in the brief, at three viewports, and the landing and membership pages are built as drafts in Elementor on the staging site, with the rest following the same pipeline.

As of writing, the pipeline is ready to go and the build is waiting only for content. That content is now a list of 10 items, each with an owner and a Figma link. The rules behind the design (the design system extensions, the copy policy, the 29-rule viewport checklist, the accessibility checklist) are written down, so the next page, or the next person on the project, can start from them.

Screenshots

What Is 1EdTech Europe? at the top of the About page: an in-page menu in the header, the mission statement, and the key facts beside a conference photo.
Annual Fees on the membership page: the fee finder shows the fees for the chosen type of organisation, above the four country groups that set them.
Who is on the Board: the founding team as conduit-framed portraits, the executive director, and the nine elected advisory board members.
What We Stand For on the About page: one conduit emblem per value, with a pattern band along the bottom edge.