Case study · SOMOS.tech · Platform and cost · 5 min read

A whole community platform for a nonprofit, on donated cloud credits

Nonprofits usually rent their community: a website builder, an event platform, an email tool, a chat app, each priced per seat or per contact, each holding a slice of the members' data. I replaced that stack with one platform and kept it inside nonprofit credits from Microsoft and AWS, with Google's nonprofit ad grant covering marketing.

In short

The problem

SOMOS.tech started the way most volunteer groups do: a website builder for the site and the mailing list, an event platform for RSVPs, and whatever chat tool people already had. By the time we moved, 3,406 of our contacts lived in the website builder, events lived somewhere else, and conversations lived nowhere we could moderate.

That stack has three problems for a nonprofit. The price grows with the community, which punishes exactly the growth you want. The data is split across vendors, so nobody can see a member's whole journey from first event to mentorship. And none of it can be made safe or smart on our terms: no shared moderation, no risk signals, no AI that knows our programs.

Constraints

Options I considered

OptionWhy not, or why
Keep renting tools and connect them with automationsRejected. Fastest to start, but cost scales with contacts, data stays split, and moderation and risk controls stop at each vendor's edge.
Self-host open-source community softwareRejected. Lower license cost, but always-on servers to patch and pay for, with a volunteer team on call for all of it.
One platform on donated cloud credits, pay-per-use by defaultChosen. Serverless by default, so idle costs close to nothing and cost tracks real use. Each capability goes to the provider that does it best for the money. The one fixed cost I chose on purpose is a small always-warm baseline for the API (see below).

What runs where

CapabilityRuns onWhy there
Website, API, member dataAzure serverless hosting and databasePay per request, covered by Microsoft's nonprofit sponsorship
AI programs and moderationAzure AI servicesSame credits, and data stays inside our own cloud tenant
Email and newslettersAWSPriced per email. One newsletter send delivered 3,685 emails
Direct messages and group chatAWSReal-time delivery that scales with use, replacing a premium hub sized for traffic we never had
Local Spots mapGoogle MapsThe maps members already know
Search adsGoogle Ad GrantsIn-kind ads for nonprofits, so finding us costs nothing
Paid event ticketsStripeWe only pay when someone buys a ticket

On top of that sits everything a member actually sees: sign-in with the account they already have, a community feed, local chapter groups, events with RSVPs, tickets and QR check-in, mentorship, scholarships, digital badges, a one-tap email preference page, and the AI programs.

Cost as a product metric

Credits make cost invisible until they run out, so I made it visible. A cost explainer ties every change in spend to its cause: more traffic, an email wave, image generation, deploys. When daily spend rose 27% over a few days, it showed the cause was healthy growth (a community event week and four chapter emails), not a leak. Each AI program's usage is tracked on its own ledger.

Then I cut what wasn't earning its keep, and kept what was:

DecisionReasoningEffect
Retired a second edge networkCloudflare already did the job, with the firewall managed as codeAbout $31 a month saved
Moved real-time chat to AWSWe paid for peak capacity we never usedAbout $61 a month saved, with more headroom
Moved all email to one providerTwo providers meant two sets of failures and limitsOne place to fix deliverability, one bill
Trimmed CI and batched pushesA habit of pushing every small change used a month of included build minutes in three daysEach run down to about 7 minutes
Kept malware scanning of uploadsIt keeps malicious files away from membersCost kept on purpose
Kept always-warm API instancesWithout them, members waited 10 to 20 seconds on a cold startCost kept on purpose

The cheapest version isn't the goal. The goal is the most community per credit dollar without making members wait or making them less safe. Two of the six decisions above were to keep spending.

Tradeoffs I accepted

What I'd do differently

Why it matters beyond SOMOS.tech

Most community nonprofits could run this way, and almost none do, because nobody shows them how. That's part of why I teach: SOMOS.tech AI Labs ends with members deploying their own apps to the cloud, and our Build Your Agents workshops have members build working AI agents themselves. The platform is the proof that a volunteer group can own its community, its data, and its AI, without renting any of them.


Figures are from our own cost data and email logs as of October 2026. Security-sensitive specifics are left out on purpose.

← Back to all work