Open Orchestras

2019 – Present

Open Up Music support Music Education Hubs, arts organisations and schools to create orchestras that are accessible to young disabled people. I built the Open Orchestras Laravel app, and the Django API that powers The Clarion.

Syncing with Discourse

Open Up Music care a lot about accessibility, and it was important to them that the experience be consistent between both the Laravel web app and their Discourse community forum.

Discourse supports SSO out of the box, and there's a reasonably well maintained Laravel library for integrating it, so syncing users and sessions wasn't a huge problem. However, Open Up had quite a complicated design in mind, a design which they wanted to share between the systems.

I decided that despite this being a server-side rendered project rather than a single page app, it made good sense to scrap the built-in Discourse navigation, and build out our own custom one that was API and prop drivable and built using Vue.js. This meant that both Discourse and Laravel could render it, and the systems needn't even talk to each other about it, the Vue.js components query the data they need from both Discourse and Laravel APIs, if they weren't fed it already via props on the page load. Seems like a crazy idea, works really well.

Integration with WordPress

Open Up Music wanted Open Orchestras to feel like an integrated experience, so it seemed like a good idea for the My Orchestra portal to sit alongside their existing WordPress site.

The way I achieved this was by serving as much of the Laravel app under a /my prefix, and filtering out those URLs in NGINX.


After working with Steve when I was a Project Manager at Simpleweb, I knew I could bring him into client projects with confidence.

Over the past couple of years I've contracted him to build a Django REST API and a sizeable Laravel app.

He is insightful, competent and actively engages in discussions about technical solutions.

Paul Masri-Stone, Open Up Music
Paul Masri-Stone Open Up Music