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.
He is insightful, competent and actively engages in discussions about technical solutions.