Contact  //

Ready to build something that actually fits?

No cookie-cutters. No templates. Just your problem, solved properly.

Loading
svg
Open

CASE STUDY 3 //

Nazareth College

Catholic school, Melbourne · Custom CMS content layer on Digistorm

The school's CMS was locked.
So I built a layer on top of it.

Platform: Digistorm / Craft CMS + Custom PHP Infrastructure · Industry: Education · Scale: 13 widget types, 600+ calendar events

The Brief //

Nazareth College is a Catholic school in Melbourne running on Digistorm, a specialist CMS built for Australian schools.

Digistorm is excellent at what it does: managing enrolment funnels, school events, and branded content at scale.

But it's a locked platform. The school's web team can add content, but they can't modify the underlying system.
No server access, no custom plugins, no new components.The school had a clear list of things their website needed to do that Digistorm couldn't do natively.

A dynamic events calendar.

A campus map.

Real-time event listings pulled from their school management system.

Widget-based content blocks staff could drop onto any page.

The brief, as I understood it:

make all of this work, without touching the platform itself.

The Problem //

Digistorm allows one thing we could use: a global JS/CSS injection field and embed widgets.

That was the entire surface area.

A locked CMS with global JS injection and the ability to embed iframes.

That's it.The school's calendar data lived in Simon Everywhere, their school management system, behind a Cloudflare-protected iCal subscription URL that block

ed every standard server-side fetch approach. Their events data lived in Digistorm Funnel, accessible via GraphQL but requiring custom polling and storage logic.

Their campus had multiple buildings that needed a navigable map.

None of this was wired together. And none of the standard solutions applied, because the platform was closed.

The Solution //

The Nazareth Patch:

a dynamic content infrastructure layer hosted on guiladmalik.com, serving Nazareth's locked CMS via iframes and embed widgets. Staff only ever touch Craft CMS. Patch runs invisibly underneath.

The calendar problem

Simon's iCal URL was protected by Cloudflare in a way that blocked every automated server-side request — a problem that had sat unresolved for months.

The fix turned out to be architectural rather than technical: a Mac-side cron script running on a residential connection, with a native macOS TLS fingerprint that Cloudflare treats as a legitimate browser.

The script fetches 1050 events daily and posts them to a PHP receiver on the server, which updates a local `calendar.json` with all future events. The iCal feed then serves from that local file, not from Simon directly.

The widget system

Thirteen widget types were built across three groups:

Calendar (upcoming list, carousel, this-week view, agenda, full calendar, today, countdown),

Events (tour card, open day, term dates, non-teaching days),

and Map (campus map embed, building directory).

Each widget is generated through a visual dashboard UI — staff select the type, configure the parameters, and get an embed code. No coding required on their end.

The events infrastructure

A Funnel event bridge polls Digistorm's GraphQL API every 15 minutes.

When new events are detected, they're assigned to numbered slots, styled HTML pages are generated automatically, and they're surfaced through the calendar widgets across the site.

An Endpoint Recorder Chrome extension was built as a companion tool — capturing API calls made by any of Nazareth's management platforms so future integrations can be reverse-engineered without needing vendor documentation.

The result of all this

The school expressed interest in recommending the Patch system to other schools on the Digistorm platform.

The Results //

-13 Widget types built across 3 groups
-600+ Future calendar events synced daily
-0 Changes required to the locked CMS platform

A fully dynamic content layer running invisibly on top of a locked CMS. Staff use Digistorm as normal.

Patch handles everything the platform couldn't.

Contact  //

Ready to build something that actually fits?

No cookie-cutters. No templates. Just your problem, solved properly.

Leave a reply

svg