Applications Platform rebuild

Rebuilding Manchester Media Group: The Mancunion, Fuse FM and Fuse TV on one platform

18,465
Mancunion pieces carried across
4 sites
One codebase, one Worker
3,296
Accounts moved, passwords kept
1 sign-in
For every title, with passkeys

The brief: Manchester Media Group is the home of three student media outlets in the University of Manchester Students’ Union: The Mancunion, a newspaper first published in 1964; Fuse FM, student radio on air since 2001; and Fuse TV, student television since 2009. All three, and the group’s own site at manchestermediagroup.co.uk, ran on one WordPress multisite. The brief was to replace it with one modern platform the titles could share, without losing an article, a login or a link. We rebuilt it as a single SvelteKit application on Cloudflare that serves all four websites, and moved every article, account and old link across. Spotlight Studios led the design of the four sites, and tells that side of the story; this is the story of the build.

One Worker serves all four titles. The address decides which one you are reading.

The problem

Four websites shared a single WordPress install: a page-builder theme, a custom-fields plugin, four layers of caching and 474 database tables, many of them left behind by plugins that were no longer in use. The Mancunion alone held more than 18,000 published articles and around 29 GB of images.

Student media changes hands all the time. Writers graduate, new ones join every term, and editors move on each year. The newsroom needed software that explains itself: who can write, who can publish, and what happens to a piece in between. Fuse FM and Fuse TV needed more than a blog, too: a live stream, a schedule, and shows and episodes that keep up with what the stations put on Mixcloud and YouTube.

A student newspaper’s archive is its record. The rebuild could not drop an article, lose a byline or change where an old link goes.

What we built

A new platform built from the ground up as one application, which we design and build as custom software. The parts that matter most:

  • One application, four sites. A SvelteKit app on Cloudflare Workers. One Worker reads the address and draws The Mancunion, Fuse FM, Fuse TV or the group site, each in its own brand. Content lives in Cloudflare D1, media in R2, and Cloudflare Images makes the responsive sizes: the same edge-first approach as our Colour Index rebuild.
  • A newsroom built for students. Six roles, from Contributor to Platform Admin, each given per title. Contributors submit; editors accept, or send a piece back with a reason; a writer’s change to a published piece waits for an editor. The editor saves as you type, locks a piece while someone has it open, and keeps a revision history.
  • AI that suggests, people who decide. The editor proposes links to related pieces, and an editor approves each one; nothing is linked silently. It also drafts search titles, descriptions and image alt text for people to check. More on how we approach this on our AI automation page.
  • One sign-in for every title. Everyone signs in once, at manchestermediagroup.co.uk, with a password, an emailed link or a passkey. Two-factor sign-in is required for editors and above. Every existing account came across with its password: old WordPress password hashes are accepted, then upgraded on first sign-in.
  • Radio and TV that keep themselves up to date. Fuse FM’s live player keeps playing as listeners move between pages, and the schedule shows what is on air in UK time. Both stations build their schedules by drag and drop. New Mixcloud recordings and YouTube uploads are imported three times a day and filed under their shows.
  • Search, comments and newsletters. Search covers one title or the whole network. Disqus comment threads stay attached to their articles. Each title has its own newsletter with double opt-in.

The integrations

Almost everything the old sites depended on was an outside account: audio on Mixcloud, video on YouTube, the live stream on Radio.co, comments on Disqus. So the services moved by re-pointing, not re-hosting, and the platform now talks to each of them directly instead of through a plugin.

  • Mixcloud and YouTube are read three times a day. New recordings and videos are filed under their shows by rules each station sets; a new YouTube playlist arrives as a draft show for an editor to check.
  • Radio.co streams Fuse FM live into a player that stays with the listener from page to page.
  • Google Analytics 4 and Search Console feed the dashboards: reads for every piece, search clicks and queries, kept at the edge so a desk loads instantly. Analytics only runs once a reader has agreed to it, through the sites’ own consent banner.
  • Mailgun sends every sign-in email and each title’s newsletter. Bounces and complaints come back by signed webhook, so the lists stay clean.
  • IndexNow tells Bing and the other search engines that use it about every new or updated piece the moment it goes live. Google reads the sitemaps.
  • Workers AI runs the link, alt text and search title suggestions inside Cloudflare, next to the content.
What the platform talks to, and which way the data flows.

Moving the archive

Everything published came across: 18,465 pieces from The Mancunion, 454 from Fuse FM and 132 from Fuse TV, with 9,569 images and files, 20,614 bylines and 3,296 user accounts. We checked the counts against WordPress title by title, and they matched exactly.

Articles now live at short addresses, /section/article-name. The old dated addresses, Fuse FM’s /listen pages and Fuse TV’s /watch pages each redirect once, straight to the new page, so search engines and old links land where they should. During the build, a nightly sync copied anything new from WordPress, so the old and new sites ran side by side and the switch was a DNS change.

Everything came across, and every old address lands on its new one in a single redirect.
Mancunion pieces
Fuse FM pieces
Fuse TV pieces
accounts, passwords kept
mancunion.com/2012/11/04/the-student-foodie-generation/ 301 mancunion.com/news/the-student-foodie-generation
fusetv.co.uk/watch/fellows/ 301 fusetv.co.uk/shows/fellows
fusefm.co.uk/listen/the-mixed-tapes/ 301 fusefm.co.uk/shows/the-mixed-tapes

Browse the whole network

The group site’s Network page draws everything the three titles have published, four ways. A spiral shows every academic year since 2010, month by month; pointing at a month lights the same month in every year. A sunburst splits the newspaper by section and the stations by show. A week clock shows when stories go live, one ring per day, with a hand at the time now in Manchester. A sunflower draws the 2,890 people with a byline, one dot each, coloured by the title they wrote for most.

Each chart has the same figures as a table, for screen readers and for anyone who prefers numbers. The counts cover the whole archive, so they are worked out once and kept at the edge, then refreshed whenever new work is published. Pieces imported with only a date, and no time, are left out of the clock rather than piling up at midnight.

manchestermediagroup.co.uk/network: the whole archive, drawn four ways.

Built to be fast

Pages are cached at Cloudflare’s edge, close to every reader. Publishing refreshes every cached copy worldwide at once, so a new piece is live within about a minute. When an early build read far too much from the database, we traced it to three query shapes and fixed each with the right index: a section page went from reading 290,835 rows to about 11,700, and a newest-first list from 36,744 rows to 12. The public sites are built to WCAG 2.2 AA.

The result

Manchester Media Group now runs four websites from one codebase. Each title keeps its own look, and the group shares one newsroom, one sign-in and one archive. Editors see what is waiting for them as soon as they sign in, writers get a clear answer on every piece, and the stations’ shows fill themselves from Mixcloud and YouTube. For the first time, the group can see its whole history at a glance.

Questions about the project

What is Manchester Media Group?

The student media group behind The Mancunion, Fuse FM and Fuse TV, based in the University of Manchester Students’ Union.

What did the old websites run on?

One WordPress multisite, with a YOOtheme Pro theme and Toolset custom fields, serving all four domains.

What does the new platform run on?

SvelteKit on Cloudflare Workers, with Cloudflare D1 for content, R2 for media, Cloudflare Images for picture sizes and Workers AI for suggestions. One Worker serves all four sites.

Which services does the platform connect to?

Mixcloud, YouTube and Radio.co for audio and video; Google Analytics 4 and Search Console for the dashboards; Mailgun for email and newsletters; Disqus for comments; IndexNow for search engines; and Workers AI for editing suggestions.

Who designed and who built it?

Spotlight Studios led the design. Swarm Labs built the platform: the application, the migration, the integrations and the hosting on Cloudflare.

Did old links and logins keep working?

Yes. Every old address redirects once to its new page, and all 3,296 accounts kept their passwords.

See it in action

Contributors submit; editors accept a piece, or send it back with a note saying what to change. An accepted piece goes live on its title straight away.
Fuse FM's schedule follows UK time wherever the listener is, and new Mixcloud recordings file themselves under their show three times a day.

Next

Could your business
run on one screen?