James HerasTake the scorecard

The work

Everything here we built for our own businesses first.

Six stories. For each: what the problem was, what we did, what happened and when, one thing we learned, and the service that does the same job for you. Every number has a date. Nothing here is a client result yet; these are ours.

The agency had the keys

Context

Our fish market’s website was WordPress, built and hosted by an agency. They held the hosting and DNS logins, the Google Business profile, and the structured data named them, not us. Google Analytics had recorded nothing since launch because the tag was never connected.

What we did

James archived the whole site first (527 MB, 1,040 images, every URL and its search profile), then rebuilt it as a static site: 46 pages, 19 recipe posts migrated, all 43 old URLs preserved or redirected, schema rewritten to name the shop. We wrote an ownership registry, moved every login to a company email with two-factor and a second admin, then removed the agency. Analytics was fixed with consent handled properly.

What happened

Live 2026-10-14, five weeks after the first commit. Zero 404s on the old sitemap, checked at launch. Hosting went from an agency retainer to $0 a month. Every login is ours.

What we learned

Archive before you touch anything, and ask who owns each login first.

For your business

A 46-page migration is bigger than the Basic Website. The same work for you is the Basic Website plus the Migration add-on; larger sites are quoted by page. Or the $67 Website Takeover Kit to do it yourself. See it on the price list →

02WebsitesLeads and CRM7seas.ca ↗

Six forms, one function, nothing lost

Context

The wholesale company’s site was a brochure. Inquiries went to a shared inbox. In an audit of eight wholesale inquiries, five were real and one had been lost entirely.

What we did

James rebuilt the corporate site, 47 pages with product, careers, food-safety and private-label sections, then wrote one serverless function that routes six forms. A wholesale lead becomes a HubSpot contact, company and deal, assigned to the right rep by region, with a call task, a sheet row and an instant auto-reply. If the task sits untouched for 24 hours, a scheduled job escalates it. A four-email follow-up runs for ten days and stops itself when the deal moves.

What happened

Live 2026-09-01. The lost lead was found and re-entered. Every inbound lead now has an owner and a clock. Eighty form-sourced contacts across seven forms in the CRM this year, as of 2026-10-30.

What we learned

The failure is usually the follow-up, not the form, so build the escalation rule first.

For your business

CRM-wired forms ($500 / $200), lead routing with escalation ($900 / $350) and the follow-up series ($700 / $300). Bought together as the Wholesale Front Door bundle with the Basic Website and two extra pages: $4,000 done for you. See it on the price list →

03Retail marketingWebsites7seasfishmarket.com/classes ↗

Two sold-out classes

Context

The fish market wanted to run filleting classes. There was no ticketing, no waiver, no way to take deposits or sell add-ons, and no list to tell.

What we did

James built the ticketing on Tableside, the platform he founded: tiers, add-ons, promo codes, reminders, a door list, refund rules, Stripe payouts, and a server-timestamped e-waiver. The buying journey: an Instagram story or a text from the shop’s list, to the class page, to a $195 ticket with an optional oyster or caviar add-on, to a reminder text the day before. Leah shot and posted the stories.

What happened

Classes on 2026-10-14 and 2026-10-21 sold out, eight seats each at $195. The oyster add-on was taken by one or two guests a night, the caviar add-on by none, which told us where to stop.

What we learned

Promotion, page, payment and reminder are one system; a booking link on its own does not fill a room.

For your business

Self-booking calendar ($400 / $150) for the page, Content day with Leah ($1,500) for the stories, Text list ($900 / $350) for the audience. The calendar alone does not reproduce this; the three together are what we ran. See it on the price list →

04Leads and CRMTraining7seas.ca ↗

Seventy sales calls, turned into the words that sell

Context

The wholesale site’s copy was written by us about us. The sales team’s objection handling lived in people’s heads.

What we did

James pulled 70 recorded sales calls, transcribed them on his own machine (no customer audio uploaded anywhere), split the speakers, anonymised them and sorted every customer line by motive. Those lines became the Solutions pages, an objection bank with the buyer’s exact words and the rep’s best answer, and an eight-step cold-call sheet inside the staff hub.

What happened

Done 2026-09-06. Forty real customer conversations feed the copy and the call sheet. Conversion change is not measured yet; that is the honest status.

What we learned

The customer has usually already written your copy; the job is finding the recording.

For your business

Copy from interview ($600 / $250) for a site. Sales training for food and wholesale teams, $3,500 a day. See it on the price list →

05Retail marketing7seasfishmarket.com ↗

A brand you can print, pin and post

Context

The shop had a 60-year-old crest and nothing else: no templates, no highlight covers, a sandwich board from another decade, two Instagram accounts posting without a system.

What we did

James redrew the crest with the HQ oval as the bow-tie knot and produced the print pack: till cards, bag insert, window poster, sandwich board and a five-panel wall menu, each with its own QR code so we know which piece gets scanned. Leah and James built the Instagram highlight architecture (six permanent, one seasonal), 13 covers, 32 story frames and weekly “what’s fresh” templates. One rule: nothing pinned carries a price or a date.

What happened

Print pieces are in the window and on the street as of October 2026. Highlights map one to one to the site’s pages. The two accounts hold 8,313 and 4,255 followers (2026-10-30), audiences built over years; the system is about what those followers see, not a growth claim.

What we learned

A brand is a set of rules more than a logo, and the rules are what save staff time.

For your business

Brand refresh and Canva kit ($500 / $200), Instagram highlight system ($500 / $200), Print pack ($700 / $300). See it on the price list →

A text list in five weeks, run by counter staff

Context

The shop had an email list that had not been sent to since March, a loyalty program with a few hundred members, no marketing person, and customer counts falling.

What we did

James built the list on GoHighLevel: text START to a local number, a disclosure, YES to confirm, a free crab cake as the welcome. A cap of six texts in any 30 days, two-way unsubscribe sync with the till, and a send form so staff compose while a workflow checks the segment. Leah runs it: the Thursday “weekend picks” email and the texts, from four SOPs with flowcharts and her own Claude Project.

What happened

Live 2026-10-19 after roughly 8 to 12 hours of build. The existing email contacts were consolidated into one list; new text subscribers are counted separately and are a few weeks old, so no growth number yet. Weekly running cost: 45 minutes for the email, under two minutes per text.

What we learned

A phone number given for points is not consent for texts; keep the two consents separate and say so.

For your business

Text list setup ($900 / $350) and the Thursday email system ($600 / $250). Or the $47 Text List Playbook. See it on the price list →

7 Seas Fish Market holds 4.5 stars from 154 Google reviews (2026-10-30). Those are the shop’s reviews, earned at the counter, not testimonials for this service. We have none of those yet; the sites are the proof.

Start with the scorecard.

Two minutes. It tells you which of these you actually need.