import { useState } from 'react' import type { FormEvent } from 'react' import './styles.css' type IconName = 'arrow' | 'menu' | 'close' | 'check' | 'bolt' | 'search' | 'phone' | 'shield' | 'spark' | 'message' function Icon({ name }: { name: IconName }) { const common = { width: 18, height: 18, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 1.8, strokeLinecap: 'round' as const, strokeLinejoin: 'round' as const } if (name === 'arrow') return if (name === 'menu') return if (name === 'close') return if (name === 'check') return if (name === 'bolt') return if (name === 'search') return if (name === 'phone') return if (name === 'shield') return if (name === 'spark') return return } const projects = [ { tag: 'CONCEPT / HOME SERVICES', name: 'Northline Roofing', title: 'Protect what\nmatters.', body: 'A lead-focused concept for a local contractor, built around trust, service areas and fast quote requests.', theme: 'roof' }, { tag: 'CONCEPT / LANDSCAPING', name: 'Green Edge', title: 'Your yard.\nYour pride.', body: 'A visual-first local service site that makes before-and-after work and estimate requests impossible to miss.', theme: 'green' }, { tag: 'CONCEPT / AUTOMOTIVE', name: 'Blackline Auto', title: 'Drive in.\nLeave better.', body: 'A premium workshop presence with services, social proof and booking placed where customers need them.', theme: 'auto' }, ] const faqs = [ ['How much does a website cost?', 'Starter projects begin with a defined scope and a written price. Larger sites and custom functionality are quoted before work begins, so there are no surprise hourly bills.'], ['How long does a site take?', 'A focused small-business website can move quickly. Typical projects take days to a few weeks depending on scope, content and how quickly feedback is returned.'], ['Do I need to write all the copy?', 'No. You know your business; we can turn that information into clear customer-facing copy and page structure.'], ['Will I own my website?', 'Yes. The goal is a website you can own, maintain and move. We do not build your business around a platform that holds it hostage.'], ['Can you redesign my existing website?', 'Absolutely. We can keep what works and improve the visual design, messaging, mobile experience, speed, SEO foundations and conversion paths.'], ] function scrollToId(id: string) { document.getElementById(id)?.scrollIntoView({ behavior: 'smooth', block: 'start' }) } function App() { const [mobileOpen, setMobileOpen] = useState(false) const [faqOpen, setFaqOpen] = useState(null) const [submitted, setSubmitted] = useState(false) function nav(id: string) { scrollToId(id) setMobileOpen(false) } function submit(e: FormEvent) { e.preventDefault() setSubmitted(true) } return (
NEW Websites built for Canadian small businesses.
INDEPENDENT DIGITAL STUDIO · CANADA

Websites that work
as hard as you do.

Modern websites for small businesses that want to look credible, get found and turn visitors into customers — without the agency runaround.

01 Strategy-first02 Mobile-first03 SEO-ready04 Built to convert
royallydigital.ca
YOUR BUSINESS / YOUR ADVANTAGE

Make a better
first impression.

Fast by designLean pages · clean code
DESIGNED FORCONTRACTORSLOCAL SERVICESPROFESSIONALSSHOPSSTARTUPS
01 / THE PROBLEM

Your website shouldn't
cost you customers.

People decide whether to trust a business before they ever call. If your site is slow, confusing or looks ten years old, you are making that decision harder.

01
Looks outdated

Your business has evolved. Your website hasn't.

02
Hard to find

Your website isn't doing enough for local search.

03
Doesn't convert

Visitors can't quickly see what you do or what to do next.

02 / WHAT WE DO

Everything you need.
Nothing you don't.

We build the digital foundation your business actually needs — then leave the jargon at the door.

{[['Website Design','A sharp, responsive website built around your customers, services and next business goal.','spark'],['Local SEO','Technical foundations and page structure designed to help local customers find and understand you.','search'],['Redesigns','Keep what works. Fix outdated design, weak messaging, mobile UX and conversion paths.','message'],['Performance','Lean implementation and optimized assets so the site feels fast everywhere.','bolt'],['Hosting & Care','Optional support, updates, backups and small changes without chasing a developer.','shield'],['AI & Automation','Connect the site to smarter lead handling, workflows and tools your business already uses.','spark']].map(([title,body,icon],i)=>

{title}

{body}

0{i+1}
)}
03 / SELECTED WORK

Good design gets attention.
Good strategy gets business.

These are original concept builds showing the standard we aim to deliver. No fake client claims — just practical examples of what a focused business website can do.

{projects.map((p,i)=>
{p.name.split(' ')[0]}Services   About   Contact
{p.tag}{p.title}
{p.tag}

{p.name}

{p.body}

)}
More real client work will appear here as Royally Digital launches.
04 / THE PROCESS

Simple from
start to launch.

No endless meetings. No mystery. You know what happens next.

{[['01','Tell us about your business','A short conversation about what you do, who you serve and what the site needs to accomplish.'],['02','We plan the experience','Structure, messaging and visual direction shaped around your customers.'],['03','We build it','Design, development, responsive behavior, SEO foundations and conversion paths.'],['04','You review it','You see the site, request changes within scope, and we refine it.'],['05','We launch','Domain, hosting, analytics and the final handoff. Then your site goes to work.']].map(s=>
{s[0]}

{s[1]}

{s[2]}

)}
05 / PRICING

Clear scope.
Clear expectations.

We'd rather tell you what something costs than make you sit through a sales call to find out.

{[ ['01 / PRESENCE','Launch','$799','A focused website for a business that needs a professional home online.',['Custom responsive design','Up to 5 core pages','Contact / quote form','SEO foundations','Mobile optimization']], ['02 / GROWTH','Business','$1,499','A stronger lead-generation site for an established small business.',['Everything in Launch','Up to 10 pages','Local SEO structure','Analytics setup','Advanced lead paths']], ['03 / CUSTOM','Beyond','Let’s talk','For ecommerce, booking systems, integrations, automation or custom applications.',['Custom functionality','Advanced integrations','Ecommerce / booking','Automation','Ongoing support options']] ].map((p,i)=>
{i===1&&MOST POPULAR}{p[0]}

{p[1]}

{i<2&&'from '}{p[2]}{i<2&& CAD}

{p[3]}

    {(p[4] as string[]).map(x=>
  • {x}
  • )}
)}
Final pricing depends on scope. Every project gets a written scope before work begins.
06 / FAQ

Questions,
answered.

{faqs.map((f,i)=>

{f[1]}

)}
07 / START A PROJECT

Let's make your
website work.

Tell us a little about your business. We'll come back with a practical next step — not a sales pitch.

hello@royallydigital.ca Canada · Serving small businesses
{submitted ?

Thanks — you're on the list.

For the live site, this form should be connected to the email or CRM Royally Digital will use for incoming leads.

: <>