Heartful Allies
Four programmes running in three countries is not twelve pages of content. It is one structure that has to answer the same four questions differently depending on where the reader is standing.
Challenge
The same four interventions run in Bangladesh, the United States and Canada, but the galleries, impact stories and points of contact differ by country. Hard-coding twelve pages guarantees eleven of them go stale.
Approach
Treat country as a dimension rather than a duplicate. One intervention template takes a programme and a country, and content is attached per pair — so a country with nothing to show yet says so instead of borrowing another country's material.
Outcome
Live at heartfulallies.org with four interventions across three countries, a filterable resource library, expert columns by topic and a country-first registration flow.
The brief
What the business needed.
Heartful Allies is a forum built on the idea that unity is strength — a network of people cutting across gender, race, age, nationality, disability, qualification and social status, joined by a shared purpose. It runs four interventions: PACC, or Professional Assistance for Community Change, which connects accomplished professionals to communities that can use their expertise; Expert's Column, verified specialist insight across education, health, lifestyle, mental health and women's empowerment; Call for Cause, which mobilises collective action when a situation needs immediate attention; and Fellowship & More, which documents the relationships holding the movement together.
It runs all four in Bangladesh, the United States and Canada. That is the structural problem. The programme definition is global — PACC means the same thing everywhere — but the galleries, impact stories, downloadable material and the person you write to are all local. Build twelve separate pages and the content drifts apart within a quarter.
So country became a parameter, not a copy. One template renders any intervention for any country, pulling the shared definition once and the local material per pair. Where a country has no gallery or impact stories for a programme yet, the page says exactly that — which is more honest than padding it with another country's photographs, and it makes the gap visible to the team who can fill it.
What we built
Shipped scope.
Country × programme matrix
Four interventions across three countries from a single template, with shared programme definitions and per-country galleries, impact stories and registration.
Country-first involvement
Get Involved opens by asking which country you are in, so every subsequent step, contact address and form is the relevant one rather than a global catch-all.
Filterable resources
A resource library of newsletters, reports, financial statements, media and partnership documents, filterable by category and downloadable directly.
Expert's Column filters
Specialist contributions filtered by topic — education, health, lifestyle, mental health, women's empowerment — and by content type, so readers reach the right piece quickly.
Per-country contact
Separate addresses for Bangladesh, Canada and the USA in the footer of every page, so enquiries land with the team that can act on them.
Honest empty states
A country that has no gallery or impact story for a programme yet says so plainly, rather than inheriting material from elsewhere.
Build details
How it was made.
- Stack
- PHP, custom admin CMS, per-country content model
- Scope
- Design, build, content architecture, admin, deployment
- Sectors
- Non-profit, humanitarian, professional volunteering
- Coverage
- Bangladesh, United States, Canada
- Status
- Live — heartfulallies.org ↗
FAQ
Questions this raises.
How do you build a site for an organisation operating in several countries?
Make country a dimension of the content model rather than a set of duplicated pages. Heartful Allies runs four interventions across three countries from one template: the programme definition is shared, while galleries, impact stories and contacts are attached per country-and-programme pair.
What happens when one country has no content for a programme yet?
The page says so. Showing an explicit empty state is more honest than filling the gap with another country's photographs, and it makes the missing material visible to the team who can supply it.
More work