I build for the web and teach what I learn.
Websites, ads, and search for businesses without a tech team.
Designed and built for your business, not dropped on a template. You can edit it yourself afterwards.
- Pages written around what you actually sell
- You edit your own text and photos, no developer needed
- A contact or booking form that reaches you
- Works properly on a phone
- Hosted and kept running after launch
Google and social ads, set up and managed, with a monthly report you can actually read.
- Set up from scratch, or taken over from whoever had it
- Written and targeted for the customers you want
- Watched and adjusted every month
- A plain report: what was spent, what it brought in
The unpaid side. Work so people searching for what you do land on you instead.
- What your customers are actually searching for
- Pages and articles written to answer those searches
- The technical parts handled quietly in the background
- Progress you can see month to month
Design first, then a build with booking, contact and a privacy page in the client's own words.
Read the case study →Stratus · 2026Paid media and reporting for an MEP software companyLinkedIn, Google and Reddit campaigns, HubSpot audiences, and reporting that fits on one page.
Read the case study →- Entries from July 2026
- 28 Jul 2026A coaching practice with booking built in
Design first, then a build with booking, contact and a privacy page in the client's own words.
payloadnextjsdesignProject - 20 Jul 2026Payload Essentials is on sale
The course that came out of putting Payload in front of clients since version 1.
payloadteachingCourseLaunch - 16 Jul 2026Paid media and reporting for an MEP software company
LinkedIn, Google and Reddit campaigns, HubSpot audiences, and reporting that fits on one page.
paid-mediaanalyticsProject - 2 Jul 2026OPML export, so nothing is locked in
Import was already OPML. Export makes leaving as easy as arriving, which is the point.
riverbedrssRiverbedProject - Entries from June 2026
- 30 Jun 2026Paid search for a landscaping business, measured properly
Google Ads, and the reporting work needed before the numbers meant anything.
google-adsanalyticsProject - 23 Jun 2026Making a feed reader refresh before you open it
Background polling with a staggered schedule, so a hundred feeds do not all refresh at once.
infrastructureriverbedRiverbedProject - 18 Jun 2026A new site and a cutover with no gap in service
Design, build, and the migration off the old host, planned as one piece of work.
nextjsmigrationProject - 9 Jun 2026nlvcodes.com, where the courses and tutorials live
The teaching side: written tutorials and the courses that grew out of them.
teachingSiteLaunch - 5 Jun 2026A church site the staff can actually update
Service information, messages and giving, on a CMS the team runs without me.
payloadnextjsProject - Entries from May 2026
- 29 May 2026A meal planner built around macros, not recipes
Plan a day, hit the numbers, and keep allergen tags out of the way until they matter.
nextjspayloadPersonal projectProject - 19 May 2026An Obsidian plugin that captures straight out of Riverbed
Send an article from the reader into a vault note without leaving either one.
obsidianriverbedObsidian pluginLaunch - 15 May 2026Building the feed reader I wanted after Feedly
A self-hosted RSS reader, shipped to production and used every day.
payloadnextjspwaProject - 7 May 2026Mid-Roll Manager, a Chrome extension for YouTube Studio
Bulk ad-break editing in the monetization editor: insert at an interval, clean up by spacing, dry-run either one first.
toolsyoutubeChrome extensionProject