All projects

Professional work

Sounds of Morocco · label platform

The website and CMS of an independent Moroccan music label, live at soundsofmorocco.com and maintained since.

  • Live · maintained
  • In a pair
in production since October 2025
Live
developers, working as a pair
2

01Starting point

Context & mission

The problem

Sounds of Morocco is an independent label supporting Moroccan electronic and traditional music artists. It needed a proper online home: an editorial site rich in audio and visuals, a team able to publish without a developer, and a channel for artists and partners to reach out.

The mission

As freelancers, working in a pair with another developer, build the label’s platform, take it live and keep it running.

As a pair

No fixed split: the two of us designed and built everything together, from the architecture to the Next.js front end, the Strapi CMS, the Supabase/PostgreSQL database, CI/CD and production maintenance.

02Execution

What I did

  1. Decoupled architecture

    Next.js for the interface, Strapi for content, Supabase/PostgreSQL for data: three separate responsibilities that evolve independently.

  2. Editorial front end

    Responsive interface with Next.js (App Router), TypeScript and Tailwind CSS, tuned for performance and media delivery.

  3. Content and media

    Strapi for content, Cloudinary to manage visuals and serve them over a CDN, React Markdown to render text.

  4. Inbound forms

    Demo submissions from artists and partnership requests, with validation and asynchronous processing.

  5. Continuous delivery

    Deployed on Vercel and Railway, builds automated with GitHub Actions, then ongoing maintenance: SEO, performance, Strapi updates and new features.

03Design

Architecture

Next.js 14 (App Router, TypeScript, Tailwind CSS) for the interface, Strapi v5 as the headless CMS, Supabase/PostgreSQL for data, Cloudinary for media. Hosted on Vercel and Railway, CI/CD with GitHub Actions.

From content to visitor
  1. Label teamPublishes without a developer
  2. Strapi v5Headless CMS
  3. Next.js 14App Router · TypeScript
  4. Visitorssoundsofmorocco.com
Supported by
  • SupabasePostgreSQL
  • CloudinaryMedia · CDN
  • Vercel · RailwayHosting
  • GitHub ActionsCI/CD

04The product

What it does

  • The label’s catalogue, releases, news and merch.
  • The label’s team publishes on its own through the CMS.
  • Demo submission and partnership request forms.

05Impact

Results

  • Platform live at soundsofmorocco.com.
  • The label’s team manages its content independently through the CMS.
  • Artists and partners reach the label through validated, secure forms.

06Wrap-up

Takeaways

What this project proves

That I can ship and run a real product for a real client: a live site, a team that owns its content, and maintenance that keeps going.

Learnings and next steps

The engagement is ongoing: I keep maintaining and evolving the platform. It teaches me to run a real product in production, from separation of concerns to CI/CD and day-to-day maintenance, while coordinating with my teammate.

07Technology

Full stack

  • Next.js 14
  • TypeScript
  • Tailwind CSS
  • Strapi 5
  • Supabase
  • PostgreSQL
  • Cloudinary
  • React Markdown
  • Vercel
  • Railway
  • GitHub Actions