Local Spring Selected work Embrace a Street Child
Case study · Non-profit · Nairobi, Kenya
A ministry site rebuilt from scratch, with updates that publish from a message
embraceastreetchild.org ran on an off-the-shelf WordPress theme: nine pages, a blog category archive standing in for news, and a homepage that opened with a statistic instead of a way in. I rebuilt the whole thing from scratch, gave the ministry's work pages of its own, and set up a publishing path where staff in Nairobi send text and photographs and an AI workflow turns them into a finished update. The ministry has never been invoiced for any of it.
01 Results
What the rebuild changed
- $0
- Invoiced to the ministry the rebuild and everything since, free of charge
- 0
- Dashboards the team has to learn an update starts as a message from Nairobi
- 0.4 s
- Homepage load time measured on the live site, 24 requests
- 11
- Stories and updates on the site four posts existed when the rebuild started
No page-speed comparison is offered here: the old site only survives in the Internet Archive, so timing the two against each other would measure the archive, not the ministry's old host. Everything else can be checked against the live site and the archive's captures of the old one. 1
The project
- Client
- Embrace a Street Child — a Gospel-centred ministry for street-connected boys
- Where
- Nairobi Centre, Kenya, with supporters in Canada and the United States
- Before
- A WordPress site on an off-the-shelf theme, replaced at launch in June 2026
- Build
- A custom static build, rebuilt from scratch and launched in June 2026
- Publishing
- Staff send text and photographs; an AI workflow drafts and publishes
- Fee
- None — built and maintained free of charge
- My involvement
- Helped organise the first Reconnect Camp in 2024, and served on the 2026 Canadian team for IT and media while playing in the worship band
- Live site
- embraceastreetchild.org
What I did
- Rebuilt from scratch Structure, layout and visual language
- Platform migration Off a stock theme onto a custom build
- Content architecture Programmes, centre, camps and stories as real pages
- AI publishing workflow An update starts as a message, not a login
- Contact form Enquiries to a messenger and an inbox
- Spam protection Scored, so real messages still get through
- Photo pipeline Pictures from the Kenyan team, sized for the web
- Image ethics Written rules for photographing children
- Search and structured data NGO schema, sitemaps and social cards
- Testimony pages Two full stories, published with the ministry's approval
- Handover The ministry publishes without me, and without a developer
02 The brief
What was actually wrong
A ministry website has to do two things: convince somebody in ten seconds that this is real and careful work, and then let the people doing that work keep telling the story without a developer. The old site struggled at the first and made the second somebody's unpaid second job.
-
Problem
The front page opened with a number, not a way in
The old homepage led with “There are 250,000 children on the streets of Kenya” across a photograph, then “We can change this. We invite you to…”. There was no button anywhere on it — nothing to learn more, nothing to give, nothing to ask. A first-time visitor had to go hunting in the menu to find out what the ministry actually does.
Solution
A homepage that names the ministry, says where it works and since when, and offers two clear next steps in the first screen.
-
Problem
Everything the ministry does sat on one page
Rescue, rehabilitation, reintegration and discipleship — a decade of work — were a single page called Our Work. The Nairobi centre, the camps and the boys’ own stories had nowhere of their own, so none of it could be linked to, shared or found in search on its own terms.
Solution
A programmes page that walks the four-step pathway, a page for the Nairobi centre, one for each camp, and testimonies as full articles with their own addresses.
-
Problem
News was a blog category archive
Updates lived under the heading “Category Archives: newsletter”, with an author byline, a “Leave a comment” link and a quarterly newsletter pasted in as one block of text — spaces missing between words where it had been copied out of a document. Four posts in total, going back to 2023.
Solution
An updates hub that separates seasonal newsletters, testimonies and day-to-day moments, and a publishing path that formats each update the same way every time.
-
Problem
On a phone, the logo took the first screen
Opening the old site on a phone gave you the logo at full width, a “Menu +” button and three social icons before a single word about the ministry. Everything the page had to say started below the fold.
Solution
A layout designed for the phone first, where the first screen carries the ministry’s name, the verse it works from, and the two things a visitor is most likely to want.
-
Problem
Somebody had to keep a stack of plugins patched
The old site ran an off-the-shelf theme and a set of plugins for its gallery, sharing buttons, forms and spam filtering. For a small team split between Nairobi and Canada, that is a maintenance job nobody was hired to do and everybody inherits.
Solution
A static build with no plugins, no database and no admin panel exposed to the internet — there is nothing on it to patch.
None of this was carelessness. A small team split between Nairobi and Canada built a site with the tools in front of them and kept it running for years while doing the actual work of the ministry. The website was never the job. It just quietly stopped being able to carry what the ministry had become.
03 What changed
What changed, screen by screen
Each pair below is the same job on the old site and the new one. Select any screenshot to open it full size.
01Homepage
The same photograph, a completely different first impression
The new homepage keeps the picture the ministry already loved and puts the work in front of it: who they are, where they serve, since when, the verse the ministry is built on, and two buttons — learn about Embrace, or get involved.
02About
A group photo and a paragraph became a story you can follow
The old About Us page put a staff photograph under the words “About Us” and summarised eleven years in three sentences. The new one tells the story properly — Kitale in 2014, the centre in 2015, Nairobi in 2021 — and gives the team, the centre and the programmes pages of their own to continue on.
03Updates
A category archive became a place to read
Before, news was whatever the blog engine did by default: an archive heading, one post, an author name and a comment link. Now newsletters, testimonies and everyday moments each have their own lane, and every update carries a date, a summary and a cover image — because the workflow that publishes them fills those in every time.
04Get involved
Three photographs became four ways to help
Supporting a ministry is not one action. The new page opens with the four real ones — pray, give, visit or serve, and stay connected — then explains how each one strengthens the same journey home, so somebody who cannot give money can still see where they fit.
05Contact
Three fields became a conversation that gets routed
The old page was a name, an email and a message box beside an empty frame. The new one asks what kind of conversation this is first — prayer and updates, giving and partnership, or a visit — so a message from a church looking to partner does not land in the same undifferentiated pile as a general enquiry.
Pages the ministry did not have before
-
After — the four-step pathway
-
After — the Nairobi centre
-
After — a boy’s own story
-
After — a newsletter as a page
The same homepage on a phone
-
Before · on a phone
-
After · on a phone
04 Publishing
Updates without a dashboard
The reason the old site went quiet was not that nothing was happening. It was that publishing meant somebody finding an hour, remembering a login, and fighting an editor in a second language. So the deliverable was not a nicer editor — it was removing the editor from the job entirely.
- Sent, not typed
An update starts as a message
Staff in Nairobi send what happened and the photographs that go with it, in whatever shape it arrives — a few paragraphs in a chat, a quarterly newsletter document, a folder of pictures from the centre.
- Drafted
The workflow does the fiddly half
Title, date, summary, cover image, alternative text for screen readers, headings, links. All the parts that make a post look deliberate rather than pasted, handled the same way every time.
- Checked
A person still approves the wording
Nothing publishes itself. Every draft is read before it goes out, which matters more here than on most sites: these are children’s stories, and how they are told is part of the care.
- Live in minutes
Approval rebuilds the site on its own
Publishing triggers a fresh build of the whole site. Nobody deploys anything, nobody opens an admin panel, and there is no plugin to update afterwards.
Nobody on the team writes HTML, and nobody keeps a content system patched. What that buys is consistency: the newsletters and testimonies on the site are formatted the same way, described the same way and dated the same way as each other, which is the part a login has never been able to guarantee.
05 Photographs
The rules that come before the design
Most of this site's imagery is of children who have lived through things no one should have to. That is not a layout problem, and it does not get solved by taste. It gets solved by rules written down before the first page is built, so the answer is already settled when a powerful photograph turns up.
- Consent first
Identifiable photographs only where permission exists
A boy’s face goes on the site when the ministry has permission for it to be there, and not because it makes a better hero image.
- Dignity
No rescue or street-life imagery used for effect
The hardest moments of a child’s life are not fundraising material. Nothing on the site is there to make a visitor feel bad enough to give.
- When it is unclear
There is always a safer picture
Group context, hands, staff, a classroom, the compound at dusk. If consent cannot be established, the photograph does not run — and the page is not worse for it.
- One-off stays one-off
An approval covers one story, not the library
A historical photograph cleared for one boy’s testimony is used in that testimony and nowhere else. Approvals do not quietly become a stock folder.
The same rules apply to the words. The testimonies on the site are told as recovery, not as spectacle — what happened, what changed, where he is now — and they are published with the ministry's approval rather than assembled from whatever was in the photo folder.
06 Beyond the site
The parts that were not pages
A charity site is a set of connections as much as a set of pages: where a message goes, how a link looks when it is shared, how a photograph taken in Nairobi ends up on a screen in Ontario.
- Enquiries
Messages land where somebody is looking
The contact form goes to the team’s messenger and to email at the same time, with scored spam filtering in front of it, so a real message from a church in Canada is not lost among bots.
- Findable
Structured data and social cards
The ministry is described to search engines as what it is — an NGO in Nairobi, founded in 2014, with a named centre — and every page has a preview card, so a link shared into a church WhatsApp group looks like the site it points at.
- Daily life
Instagram on the site, not a second site
The ministry’s Instagram feed runs on the updates and contact pages. Short moments stay where they already get posted, and the site shows them without anyone maintaining a parallel gallery.
- Photographs
A route from Kenya to the page
Photographs from the Nairobi team come through one shared folder and get optimised on the way in, so a picture taken on a phone at the centre ends up as a properly sized, properly described image on the site.
07 Free of charge
This one was never invoiced
Embrace a Street Child has not paid for any of this — not the rebuild, not the publishing workflow, not the hours since launch. That is a deliberate choice, and it is worth being plain about how it is funded.
A rebuild at this size is a real amount of work: months of it, spread across evenings and weekends, plus everything that keeps arriving afterwards. It gets paid for by the businesses that hire me for the same work. So the honest version of the pitch is this — when a Canadian business books a redesign or local SEO with Local Spring, part of what it pays for is a ministry in Nairobi getting the same standard of work and no bill. 2
It is also not charity in one direction. I helped organise the first Reconnect Camp in 2024, and in 2026 I served on the Canadian team looking after IT and media while playing in the worship band. Knowing the boys, the staff and the camps is why the site could be written the way it is — you cannot design this from a brief.
Running a charity on a site that fights you?
If your website has quietly become the thing nobody has time to update — and the news page has not moved in a year because of it — tell me what you have now and I will reply with a practical first read on what it would take to fix, and what it would cost.
Notes
- Where the “before” screenshots come from. The old site was replaced at the migration, so it no longer exists on the ministry's host. Every “before” shot on this page is the Internet Archive's capture of embraceastreetchild.org, taken in August and September 2025 and rendered in the same browser, at the same window size, as the “after” shots. That is also why no speed comparison is offered: an archived page is served by the archive. The “four posts” figure is the count of posts in the old site's own sitemap in its last capture; “eleven stories and updates” is the count of update and testimony pages in the live site's sitemap today. The homepage load time is the live site's own load event, measured on a desktop connection. ↩
- What “free of charge” covers. Design, build, migration, the publishing workflow, the contact and spam setup, and the ongoing changes since launch. The ministry pays its own domain and its own hosting bill, which it would have paid anyway and which nobody should be dependent on me for. Non-profit work like this is limited by how much paid work there is — it is not an open offer, and it is not a discount programme. ↩