Skip to content
← All projects
Web AppIn active development

GEMCA Music

A music organisation's website, with a content system its staff can run themselves.

Overview

The marketing site for GEMCA Music, with a blog, galleries and a PDF library, plus an admin CMS for managing content, enrolment requests and contact messages. Next.js and Firebase, with admin writes enforced by Firestore rules rather than by the interface.

The problem

A music organisation needs a public site that looks the part and can be updated by the people who run it, without a developer for every blog post, carousel image or PDF.

The approach

Firebase as a headless CMS behind a Next.js App Router front end. The security model lives in the data layer: admin privilege is a custom claim on the account, Firestore rules enforce every write, and the public can read only what is published or enabled. The newsletter signup goes through a server-side route so the Mailchimp key never reaches the browser.

Outcome

  • Staff manage blog posts, the homepage carousel, event media, embedded posts and a searchable PDF library themselves
  • Enrolment requests and contact messages arrive in the admin area, where they can be marked contacted, deleted and restored
  • The footer newsletter signup confirms or fails in a modal rather than leaving the visitor guessing
  • An audit-ci configuration and a tests directory sit alongside the app

What it does

  • Admin by claim, enforced by rules

    Sign-in is Google-only for admins, privilege is a custom claim, and Firestore rules enforce every write, so hiding a button is never the only protection.

  • Published means published

    Visitors can read only published posts and enabled media, so a draft cannot leak by guessing a URL.

  • Forms that reach a person

    Enrolment and contact submissions are stored for review in the admin area, with soft delete and restore.

  • A library people can search

    PDFs can be uploaded or linked, categorised, tagged and searched, so a handbook is found by what it is about.

Ask about GEMCA Music

Want something like this, or curious how a piece of it works? Send a note — it reaches me tagged with this project, so I have the context before I reply.

Replies within 24h on business days.