Rebuilding My Agency Site and Rethinking Our Pricing
Agency pricing math, a domain move for the DDi site, three rejected design proposals for a games studio client, and the cost-to-serve numbers behind it all.
Today started with me poking a hole in my own offer. We sell content at one post a day, and I could not explain why. That one question turned into a full day of agency pricing math, a new domain for the DDi site, and three design proposals a client has not seen yet.
Where our agency pricing math actually broke
One piece of content a day is not aggression, it is a habit. If a client is paying for reach, three a day is closer to honest. So I pulled the packages apart and looked at what the numbers really say.
Forty five thousand shillings one off plus eight thousand a month is ninety six thousand in year one. Thirty thousand a month is three hundred and sixty thousand. Those are not the same business. The retainer tier is where the agency lives, and I had been treating it like the cheap option with extras bolted on.
Then I did something I should have done months ago and worked out cost to serve. Not vibes, actual inputs:
- Token spend on the AI tooling I run every day, which is now a real line item, not a rounding error
- Internet at roughly two hundred to three hundred shillings a day
- Electricity, which in Nairobi is never a flat number
- My own hours, which I had never priced properly
The hourly baseline came from an odd place. I mentor a student into this line of work, an hour and a half a week, twenty thousand shillings paid in three instalments because she is salaried and that is what she can manage. I teach for a month. Four sessions, six hours, twenty thousand. That is a real hourly rate, revealed by what somebody will actually pay. Once I had that number, a one week job at twenty five thousand (ten thousand deposited, fifteen pending) stopped looking like a win and started looking like what it was, which is me proving myself. Fine. But you cannot build a price list out of proving yourself.
The other thing I decided: stop paywalling the basics. SEO is not premium. It is table stakes. If the paid tiers are going to mean anything, they need to contain things a client genuinely cannot get for free. We are a full service marketing agency with a specialty in web development, and the packages should read that way instead of hiding ordinary work behind a gate.
Taking the old DDi site down and buying a new domain
I do not like the current site. A client told me plainly that there is too much happening at once, and once you hear that you cannot unhear it. So I bought a new domain and decided to rebuild from scratch rather than patch.
I spent a chunk of the morning trying to shortcut it by remixing a reference template. Bad call. The remix path was slow and it kept producing half work, so I killed it and switched to studying the reference and coding our own. That cost me maybe an hour and a half of nothing. Worth saying out loud.
The plan that survived:
- New primary domain for DDi, with the CRM left where it currently sits so nothing breaks
- Full code wiring, including routing email properly to DDi specific addresses
- Old site goes dark only after every piece of the new wiring is tested
- Brand colour direction tightened, because the heavy orange look I had been admiring elsewhere actually works and ours does not
- Testimonials pulled from our public reviews for now, real ones added later
- A work section built from concept designs we have already done, with every identifying detail stripped out
That last one matters. I want a portfolio section, and I do have a retail client project worth showing, but I am not putting a client's logo and work on our site on a whim. That is a conversation to have with them, not a decision to make at nine in the morning.
Advising a retail client on a December campaign
In the middle of the site work, a conversation came back on WhatsApp. A retail client is willing to change approach if it brings real money, and a partner was pushing for a big marketing push with premium targets attached.
My first draft of advice was generic, and I caught it. Generic strategy is worse than no strategy, because it sounds like work. The client is a middleman. That changes everything. He does not need brand awareness, he needs demand he can fulfil and a margin he can defend.
So the campaign got concrete. Three strong pieces of video content, not one, so there is footage to cut and repurpose. Push them from 21 November to 10 January, which is the whole buying season here. Paid support across the big ad platforms. And critically, start from the revenue target and work backwards into the ad spend, rather than picking a budget and hoping. I also gave him the production investment estimate so he could see the real shape of it before saying yes.
Three proposals for a games studio client, none of them landing
The last stretch of the day was the hardest. A games studio client wants a blog first site that says we are young, we are wild, we are doing this, carrying over everything already on their current site, with zero AI texture.
I tried a magazine style reference and it was wrong. A magazine template is a magazine, not a game development studio. Then I tried building our own with that reference as inspiration and it still came out flat. Generic cards, cold colours, scroll behaviour that felt like a demo instead of a studio. By evening I deleted the reference approach entirely and started from first principles instead: who the studio actually works with, what their competitors are serving, what the industry vibe is, what pages the brief genuinely demands. A ten plus point checklist for what the homepage has to do before anyone writes a line of layout.
What I have now is proposal one. Not approved, not loved, just honest enough to show. We are giving them three. Also worth noting I pushed back on putting public prices on their site, because they do not publish prices and inventing that is not design, it is making things up.
Last thing before I closed the laptop: I set up this blog. Automated, SEO built in, publishing every day off the actual record of what I do. No reminders needed.
What I would tell another founder
Work out your cost to serve before you touch your price list, and include the boring inputs: internet, power, tokens, your own hours at a rate someone has actually paid you. The number will probably embarrass you, which is the point. And when you catch yourself remixing a template to save time, check whether you are actually saving time or just avoiding the part where you have to decide what the thing should be.