One source of truth for how MediaTown looks, sounds and argues. If another document disagrees with this one, this one wins.
Read Positioning and Voice once. Keep Words, Logo, Color and Type open while you work.
Before anything ships, run the checklist at the end. It catches the mistakes we actually make.
Nothing here is a suggestion. To change a locked item, change it here first, then everywhere else.
We had the brand written down in four places and they disagreed. Three color systems, two corner radii, and a banned word sitting inside our own voice guide. That ends here.
| Document | Status | What carried over |
|---|---|---|
mediatown-brand-voice-manifesto.md | Retired | The writing mechanics and the locked process block. Pricing, "squad" and the agency-bashing tone did not. |
MediaTown_Website_Strategy-Voice-Tone-2026.html | Retired | Nothing. Superseded by the live build. |
Design.md | Code only | Shadows and the spacing scale. Its colors, radius and extra fonts are overruled by the live site. |
| mediatown.co/styleguide | Developer reference | Color tokens, type scale and components. It stays the technical source for build; this document is the source for meaning. |
Three palettes existed. The live system wins, with a new order of priority: pink, then purple, then blue as decoration only.
Pill. 999px on buttons and badges, 14px on cards. The square 0rem radius in Design.md is retired.
Two. Inter Tight and Instrument Sans. Questrial and JetBrains Mono are not brand fonts.
A commerce agency for identity-driven brands. Not a generalist shop with a commerce page. Everything below follows from that one sentence.
MediaTown is changing how identity-driven brands build, market and grow, for shoppers today and AI buyers tomorrow.
Opens the homepage "Who it's for" block and the About page. Do not paraphrase.
You Make It. We Move It.
Lives on hats and email signatures, not as a page headline. The pain it points at is wasted time: ramp-up, hires who leave, work that restarts.
Real revenue, bigger and longer-term clients, its own page and a Services menu slot. It is not what we are. Commerce is.
Woo, Shopify, Shopify Plus, Medusa JS. We lost clients pushing Woo at people who wanted Shopify. That is over. Foundry is our base theme on all three, built differently on each.
Neutral does not mean migration-shy. Legacy WooCommerce migration is a real service line and it runs in every direction: onto a faster modern Woo build, onto Shopify Plus, or onto Medusa JS. We recommend the destination the business needs. Sometimes that destination is Woo.
One brand per sub-category is live as an option and we will absolutely do it, but it is decided case by case, not published as a blanket policy. Offer it when it strengthens the deal. Never imply it is automatic.
Every credit answers to a transaction outcome. Not a vanity metric, not a deliverable count.
Keep these three ideas separate. Never show the scoreboard and the method as two parallel lists.
More Customers × Bigger Orders × Purchase Frequency = Growth
Locked wording. May end in "= Compounding Revenue" where the design has room; "= Growth" where it needs a shorter line. C is Customers, and CRO is how we move it.
Plan. Build.
Learn. Loop.
"Loop" everywhere, never "Repeat." A nod to HubSpot's Loop Marketing and to the fact that the work never stops at launch.
The subscription
GDC is the monthly subscription, nothing else. Builds are a separate on-ramp that flows into it. Admin and tech fixes belong to the build, not to GDC. Say "subscription" on the site.
Plan. We start with an audit. We look at the business, the customers, the website, the marketing and the numbers. Then we bring more than 20 years of experience to the table, organize what we've learned and make a plan. We decide where the work can make the biggest difference: more customers, bigger orders or more people coming back.
Build. Next, we get to work. It might be a better checkout, new product photography, an email campaign, fresh content, new packaging, a loyalty program or something nobody was talking about three months ago. We build what the plan calls for. Not whatever happens to be fashionable this week.
Learn. This might be the most important part. We don't launch something and wander off. We watch, measure and see what changed. What worked stays. What didn't gets fixed. What we learn shapes the next plan. No guessing. No long meetings about everyone's feelings. Cold, hard facts.
Then we go around again. Like Groundhog Day, but with better numbers.
Body copy is frozen. The heading above it reads Plan. Build. Learn. Loop.
"If we're a bad fit, we'll be the first to tell you."
Say it on sales pages, on calls, in proposals. It is the risk reversal and it is also true, which is what makes it work.
Strategy and a 12-month calendar inside 14 days.
Nothing hidden. On-site fixes usually start in the first couple of weeks. The differentiator is mapping before moving, not throwing ads up fast.
Five people buy from us and they do not read the same way. Pick one before you write a word. Writing for all five at once lands with none of them.
Cares about: legacy, being early in public, enterprise value, getting out of the operator trap.
Lead with: vision and relief. Status comes from being the one who saw it first. The lift is the receipt, the story is the status.
Cares about: vindication, visible competence, getting out of firefighting. Can't sign, can absolutely kill.
Lead with: the diagnosis they already made and couldn't get funded. They trade a bigger lift for a lower blast radius every time.
Cares about: the non-obvious lever, brand integrity under margin pressure, a defensible story.
Lead with: CAC and margin math. Never trade brand for conversion; for an identity brand the brand is the conversion mechanism.
Cares about: not being the only person who knows how the site works. Ten-person company, one marketing manager doing everything.
Lead with: relief and leverage. No CAC language, there is no CMO to hear it. This is the Commerce Club buyer.
Cares about: enrolment, trust, not looking reckless with budget.
Lead with: plain, warm, concrete. Drop the swagger a notch. Captured work, not marketed work.
$500K+ revenue. DTC-dominant. Off-road and overland, paddlesports, sportfishing, car culture. The customer wears it, mounts it, or argues about it online. The buyer is a founder or a manager with a limited budget.
Old Spice swagger. dbrand bluntness. The authority of someone who has actually run a store.
We sound like senior operators who are exceptionally good at this and completely unpretentious. Not consultants. Not a press release.
One real joke per section, landing on the bluntest line. More than that and we're a comedy act.
Four tones running at once. If a sentence has none of them, it probably isn't ours.
Unapologetic, witty, vivid. Deadpan hyperbole beats a dry explanation. "A relentless machine of continuous marketing victory" is the register.
Point out obvious absurdities. Never complain, never whine, never generalize about how bad everyone else is. Confidence, not bitterness.
Revenue, margins, conversion rates, P&L math. Commerce is a system under continuous improvement, never a "website project."
Short muscular sentences. Immediate value. No high-pressure scripts, no corporate filler, no warm-up paragraph.
Paul wrote this himself for Clutch. When a draft doesn't sound right, compare it against this paragraph, not against a rule.
Most agencies are like your sister's boyfriend: they show up once, make huge promises, and then leave everyone dissatisfied and confused. MediaTown, however, is a relentless machine of continuous marketing victory. Based in Toronto, we politely build full-stack commerce systems for off-road, outdoor, & lifestyle brands. Our Growth-Driven Commerce subscription combines advanced web/app coding, email /SMS flows, CRO, & AI visibility (AEO) into a monthly engine of success that smells like winning.
What's working: an absurd archetype simile, deadpan hyperbole ("relentless machine", "politely", "smells like winning"), short sentences, and a joke aimed at a generic archetype rather than a real competitor.
This is the one we get wrong most often, so read it twice.
A neutral, physical, near-universal fact. dbrand's "every clear case yellows" is chemistry, not an accusation. Or a joke at a generic archetype: "your sister's boyfriend."
A character or integrity accusation about competitors. "Most agencies abandon you after the invoice clears" reads as bitter complaining, not confident specificity.
When there's no clean neutral-fact insult available, skip the insult. Lead with a positive, absolute claim instead. Glorify the buyer, don't diminish the alternative. That principle outranks the mechanic.
| Where | How it changes |
|---|---|
| Website | Full voice. Keep the edgy lines. "Sister's boyfriend," "savage sprint," "smash your goals" stay. This is how our customers talk and they like it. Do not tone them down. |
| LinkedIn, as Paul | Bluntness and operator math, hard. No bolding, the channel doesn't support it. Digs only if they're witty and point at an absurdity. Never complaining. |
| LinkedIn, as MediaTown | Same substance, less edge. The company account is not a person. |
| Client-facing | Professional, concise, clear next actions. Credit the effort before declining anything. Don't over-explain technical detail to non-technical people. |
| Education clients | Warm and plain. The swagger comes down a notch. Parents are the end reader. |
The rules that make a draft sound like us instead of like a language model with a thesaurus.
Ever. Use a period, a colon, a comma or parentheses. They are the single clearest tell of machine-written copy.
Delete every word that isn't carrying weight. "AI agents are already buying" loses "already." But a draft cut too hard stops telling a story, and that's worse than one word too many.
Never a feature list. "We build Klaviyo templates so that you bypass the promo tab, so that your cohort buy-rate compounds on ad clicks."
Not "hundreds of outdoor brands." Say the real, unrounded number. Name the actual subculture. Source every stat from SEMA, ASA, NMMA or OIA and verify it before it ships.
Salaries, benchmarks, costs. Easier, and our market is mostly American. External listings say "Based in Toronto."
Revenue outcomes, blunt truths, key metrics. Nothing else. Skip it entirely where the channel can't render it.
End a section on short fragments that get colder. Then stop. Don't explain the joke and don't add a summarizing sentence.
When editing his drafts, trim minimally. Polished copywriter rhythm reads as AI to him. His concrete phrasing survives; your smoothing does not.
Not in copy, not in proposals, not in a subject line.
It came from the old voice manifesto and it's live on our booking page right now. We are not trying to sound cool when we talk about our expertise. Use team. Crew is fine when there's a reason, and can be a playful "band of misfits."
Use "my thoughts," "my opinion," "the opinion nobody asked for," or "my opinion, for what it's worth." A little self-deprecation.
Left column is what the draft says. Right column is what ships.
| Fluff | What we actually say |
|---|---|
| "We'll provide actionable recommendations." | "We'll hand you 3 exact fixes to steal." |
| "We take time to understand your unique business goals." | "We find where your store is leaking revenue." |
| "An audit will be conducted by our strategic team." | "We audit your store. If you suck, we tell you." |
| "Our automated onboarding maximizes time-to-value." | "You pick a plan. Stripe clears. We spin up your channel and board, and ship the first task." |
| "All third-party platform costs are integrated within scope." | "We bring the brains and the hands. You bring the capital. Apps and ad spend go on your card. We don't subsidize your software bills." |
| "We deliver holistic, scalable growth solutions." | "More customers. Bigger orders. More repeat buyers. That's the whole scoreboard." |
Approved and in rotation. Use them, or write to this standard.
"Growth-Driven Commerce is not your sister's boyfriend. We don't just show up once, miss the target, and call it a day."
"In 30 minutes, we'll inspect your store, point out where you're leaking revenue, and hand you 3 exact fixes."
"Like Groundhog Day, but with better numbers."
"If you hate us, we part ways like civilized adults."
"AI is a force multiplier in expert hands and a slop machine in everyone else's."
"We're one of the few shops that will tell you to stay on Woo, because we actually build for it."
"Anyone can generate marketing now. Almost no one can tell if it's any good. That's the entire job."
"Helping companies and businesses like you win since 2004."
Four approved assets. Two marks, each in a light-background and a dark-background version. There are no other versions, and nobody makes one.
Nothing enters the box. Not text, not an image edge, not another logo, not a button.
Dashed line shows the minimum clear space. It is a guide, never a visible border.
Below these the skyline detail and the hand-drawn lettering break down.
| Asset | Screen | |
|---|---|---|
| Circular lockup | 120px wide | 32mm / 1.25in |
| Wordmark | 140px wide | 38mm / 1.5in |
Crop the circular lockup to the circle and drop the curved wordmark. The skyline alone reads at 32px; the full lockup does not.
SVG everywhere it is possible. PNG with transparency only where SVG is not supported. Never JPG, the edges fringe.
Recolor it. The lockup has a fixed internal palette. There is no pink version, no purple version, no single-color version beyond the four files above.
Stretch, skew, rotate, outline, add a drop shadow, or add a glow. The hand-drawn lettering already carries the texture.
Separate the skyline from the circle, or rebuild the lockup by pairing the icon with the flat wordmark. Those are different constructions.
Set "MediaTown" in Inter Tight and call it the wordmark. The logo typeface is not a brand font and the brand fonts are not the logo.
Place either mark on a busy photo without a solid or heavily darkened panel behind it.
Reproduce the lightning bolt on its own as an icon. It belongs to the wordmark lockup.
The skyline windows are lime #CCFF00. It lives in the mark and nowhere else: not in copy, not in a button, not in a chart, not as a background. It is not the #95BF47 we retired and it does not re-open that conversation.
If a layout feels like it needs the lime, the layout is wrong. Use pink.
Hand-drawn lettering, a hard-edged skyline, a lightning bolt and a hit of lime. That is moto and off-road styling, and it is the right register for brands whose customers put stickers on a tailgate.
It is deliberately not a tidy wordmark in a geometric sans. Every agency has one of those. Keep the contrast between the warm mark and the sharp type: that tension is the brand, not a bug in it.
Near-black does almost all of the work. White and grey do the rest. Accents are signals, used rarely and on purpose, which is exactly why they land when they appear.
The primary accent. Active states, the one emphasis that matters in a section, key highlights on dark. If a view has a single accent, it is this one.
Second accent where one is genuinely needed: a second category, a secondary state, a chart series. Not a decoration by default.
Graphic elements only. Never a button, never a link, never body text, never a label. It is the quietest of the three and it stays that way.
Eyebrows, section labels, captions and metadata in grey. Headlines and body in near-black or white. Accent reserved for the one thing in the view that has to be noticed.
Color every label, eyebrow and icon just because the palette has three accents. Accent on everything is accent on nothing, and it makes the page look like a template.
Module CSS uses these, never --foreground or --background. Accent roles now resolve to pink first.
| Role | Token | Light | Dark |
|---|---|---|---|
| Background | --client-theme-background | #FFFFFF | #161A16 |
| Surface | --client-theme-surface | #FFFFFF | rgb(30,35,30) |
| Alternate surface | --client-theme-surface-alt | #f3f3f3 | 6% white |
| Text | --client-theme-text | #161A16 | #FFFFFF |
| Muted text | --client-theme-muted | 48% primary | 70% white |
| Border | --client-theme-border | 18% primary | 30% white |
| Link | --client-theme-link | #161A16 | #FFFFFF |
| Link hover | --client-theme-link-hover | #E33DC0 | #E33DC0 |
| Accent | --client-theme-accent | #E33DC0 | #E33DC0 |
| Text on accent | --client-theme-accent-text | #FFFFFF | #161A16 |
| Primary button | --client-theme-button-background | #161A16 | #E33DC0 |
| Button text | --client-theme-button-text | #FFFFFF | #161A16 |
Module root: <section class="client-mediatown client-theme-light">. Light is the default. Keep all client rules beneath .client-mediatown so embedded modules can't leak.
The live style guide currently sets the light-mode accent and link hover to blue #3D6DE3 and #1A1A1A, and the secondary grey to #F2F2F2. Both need updating: accent and link hover become pink #E33DC0 in both modes, and every grey surface becomes #f3f3f3.
Two fonts. Inter Tight sets headings and anything that needs to feel engineered. Instrument Sans carries everything else. There is no third font and no serif. The logo's hand-drawn lettering is part of the logo, not a typeface anyone sets copy in.
Headings, display, numbers, labels, buttons. Weights 600 and 700. Tight tracking: -.02em to -.045em as size goes up.
Body, paragraphs, captions, form fields. Weights 400 and 500. Normal tracking, 1.55 line height.
Our one real display device. Each word in a large header sits in its own solid block. We like it, so the temptation is to use it everywhere, which is exactly how it stops working.
One framed header per page, in the hero or on the single section that carries the argument. A second one halves the value of the first.
Black frames, white text. A single word may take a pink frame when that word is the point of the sentence. Never more than one pink word, and never a purple or blue frame.
Up to about six words. Past that the blocks stack into a wall and the line stops reading as a sentence. If it doesn't fit in six words, it isn't a framed header.
Use it on display sizes, Inter Tight 700, with the blocks tight enough that the line still reads as one thought. Let it wrap naturally.
Frame body copy, subheads, buttons, eyebrows or a nav item. Don't frame every word in a two-line paragraph. Don't mix frame colors within one header beyond the single pink accent word.
Below 48rem the mobile sizes override HubSpot's device-invariant inline font sizes. Don't fight this with inline styles.
Body copy caps around 68 characters. Past that it stops being scannable, which is the whole point of the voice.
Questrial and JetBrains Mono appear in Design.md. They are not brand fonts and should come out of the Tailwind config.
Pill corners on anything you click. Soft corners on anything that holds content. Nothing square.
0 · Full-bleed sections only
.375rem · Inputs, small surfaces
.875rem · Cards, panels, media
999px · Default for buttons and badges
Use these values. A one-off 37px gap is how a design system dies.
One primary per view. Ghost for the secondary path. Button labels are specific: "Book a Strategy Call," never "Learn More."
The theme loads one shared system. Modules opt in to progressive text or upward entrances. Staggered entrances number the steps: 01 Plan, 02 Build, 03 Learn, 04 Loop.
Four steps, not three. The live demo still shows three.
Real work and real conditions. Rigs with dirt on them, boats under load, product on a bench. Natural light, candid framing, people mid-action.
No stock handshakes, no laptop-on-a-clean-desk, no abstract tech gradients. If it could illustrate any agency's homepage, it can't be on ours.
The launch nav is Solutions, Industries, How It Works, Plans, The Post, About, plus a persistent Book a Quick Chat. Build order and the voice brief for each.
| Page | Job | Voice brief |
|---|---|---|
| 1. Plans | Price without a scoping saga | Blunt and transparent. Focus $3,500 / Grow $5,500 (Most Popular) / Full Send $7,500. Show credits and hours, keep the per-credit price in the contract. Ad spend disclosed as separate everywhere price appears. Starter sits in an "after your first project" block, not as a fourth card. |
| 2. How It Works | Make the subscription legible | The locked Plan/Build/Learn block, unaltered. Call names: Quick Chat (15), Strategy Call (30), Kickoff (30), Monthly Review (60). Say plainly that this is not a task factory: we manage strategy and fill the gaps, so the work looks different per client. |
| 3. Solutions hub | Name the problem they'd type | Problems, not services. Each entry diagnoses before it offers. Lever pages come after launch. |
| 4. Industries hub | Prove we live in their world | Off-road and overland, paddlesports, sportfishing, car culture. Use their vocabulary precisely: airing down, beadlocks, hull tracking, hooksets. One wrong term costs the whole page. |
| 5. The Post | Show the thinking | 3 to 5 posts at launch. Opinion with a mechanism behind it. This is where "the opinion nobody asked for" lives. |
| 6. About | Who's actually doing the work | Short. Opens with the locked mission line. Team, not squad. |
| 7. Home | Review, already built | Vibes paragraph, one-line GDC definition, three lever cards (C, AOV, F), then Plan/Build/Learn/Loop linking to How It Works. Six capabilities in imperative verb form. |
The side-by-side module: raw prompt output next to what we ship. Same input, two results. It teaches the buyer to see the difference, and then they can't unsee it on a competitor's site.
Off-road: Rockstar Performance Garage, Great American Crawl, Combat Off-Road, Patriot Liner, Jeep Beef, Fishbone Offroad. Paddlesports: RAILBLAZA Worldwide, RAILBLAZA Canada, YakGear, T-H Marine.
Our own off-road brand and our testing ground. Usable as proof, because proof is proof, as long as the page says plainly that it's ours. Never let it sit in a logo row implying it's a third-party client. Always written 7Nation, never "Se7en Nation."
Found while pulling the current style guide. All of it is public right now and all of it contradicts something in this document.
Live in the booking page FAQ. The word is banned as of this document. Change to "team."
On the booking page. Our own rule bans "actionable recommendations" and the replacement already exists: "3 exact fixes to steal."
That's Focus. Grow at $5,500 carries the Most Popular tag now.
The audience cards still read eCommerce, Automotive & OEM, Homebuilders & Real Estate, Education, Healthcare. That's the old positioning and it fights the commerce-only front door.
01 Plan, 02 Build, 03 Learn. Missing Loop.
Light-mode accent is still blue and the secondary grey is still #F2F2F2. Pink becomes the accent in both modes; every grey surface becomes #f3f3f3.
Version draft-20260815. Promote it to released once these land. It stays public and noindexed: it holds no client data, and a password would only slow down whoever needs it.
It's a scratch page, which is fine, but it carries placeholder copy naming Casper, Yeti Cycles, Gatorade and a Warhol work plus third-party statistics. Set noindex, nofollow and confirm it took.
Zero em dashes.
No banned word anywhere, including "squad."
Written for one named persona, not all five.
At least one specific, unrounded, sourced number.
Every capability tied to an outcome with "so that."
Any dig points at a neutral fact or a generic archetype, never at a competitor's character.
One joke per section, landing on the bluntest line.
Accent used once, on the thing that matters. Eyebrows and labels are grey.
Logo has its clear space and is above minimum size.
C, AOV and F shown as the scoreboard. Plan/Build/Learn/Loop shown as the method. Never two parallel lists.
"Loop," never "Repeat." "Subscription," never "retainer," on the site. "7Nation," never "Se7en Nation."
If 7Nation appears as proof, the page says it's our brand.
Ad spend disclosed as separate wherever pricing appears.
Read it out loud. If it sounds like a press release, it isn't finished.
Exclusivity stays case by case. That is a position, not a gap. The vertical list in the Claude project description still reads fashion, apparel and wellness, which is the one line in there that fights the current positioning. Legacy WooCommerce migration is not a contradiction and stays.