// content-services.jsx — service detail content, keyed by slug. Order defines nav + overview + prev/next. const SERVICE_DETAILS = { squarespace: { n:'01', name:'Custom Squarespace', short:'Design & build on the platform I know best.', from:'$1,800', time:'1–6 weeks', cat:'Build', lede:'The platform I’ve built more sites on than any other — fluid, hand-set layouts that stop looking like a template the moment they load.', intro:[ 'Squarespace gets a bad rap as the "easy" platform, and that’s exactly why I love it: it hands the client a site they can actually run themselves, and it lets me spend my time on design instead of plumbing.', 'I push it well past the stock templates — custom CSS, code injection, real type systems — while keeping everything editable by a non-technical owner. You get a bespoke site; you don’t get a dependency on me.', ], includes:[ { t:'Fluid, custom layouts', d:'Designed section by section, not dropped into a template. Type, spacing, and rhythm tuned by hand.' }, { t:'Custom code where it counts', d:'CSS and small scripts for the details Squarespace won’t give you out of the box — used sparingly.' }, { t:'Commerce, scheduling, members', d:'Stores, appointments, and member areas configured and styled to match the rest of the site.' }, { t:'SEO & analytics, set up right', d:'Metadata, sitemaps, redirects, and analytics wired in before launch, not bolted on after.' }, ], steps:[ { t:'Map & content', d:'Sitemap, content plan, and a fixed-price proposal on one page.', icon:'notebook' }, { t:'Build in the open', d:'A live, clickable site from week one — no static comps to translate later.', icon:'screen' }, { t:'Hand over & support', d:'A walkthrough, a written manual, and 30 days of free post-launch fixes.', icon:'key' }, ], faqs:[ { q:'Will I be able to edit it myself?', a:'Yes — that’s the whole point of building on Squarespace. You’ll get a walkthrough and a short manual, and most edits are genuinely a two-minute job.' }, { q:'Can you add features later?', a:'Of course. Squarespace grows with you, and a retainer or one-off engagement covers anything bigger down the line.' }, ], }, shopify: { n:'02', name:'Custom Shopify', short:'Themes that don’t look like themes.', from:'$5,400', time:'5–8 weeks', cat:'Build', lede:'Storefronts built to convert and to feel like your brand — not a theme everyone else is also running.', intro:[ 'Most Shopify stores are a paid theme with the colors swapped. That’s fine until your brand deserves better, which is usually right about when you call me.', 'I customize themes properly — product pages that tell a story, a checkout left untouched because it already works, and migrations tight enough that nobody notices but your analytics.', ], includes:[ { t:'Brand-true theme work', d:'Real customization of structure, type, and motion — not just a new accent color.' }, { t:'Product pages that convert', d:'Ingredients-first or story-first PDPs designed around how people actually decide to buy.' }, { t:'Careful migrations', d:'From Squarespace, WordPress, or an older Shopify theme — with redirects and zero data loss.' }, { t:'Apps, subscriptions, B2B', d:'Subscriptions, wholesale, and the right apps configured and styled in, not pasted on.' }, ], steps:[ { t:'Audit & plan', d:'A look at your current store’s analytics, then a clear scope and proposal.', icon:'magnify' }, { t:'Build & migrate', d:'Theme work staged behind a password, rehearsed, then flipped cleanly.', icon:'arrows' }, { t:'Launch & watch', d:'Two weeks of close monitoring post-launch — 404s, rankings, conversion.', icon:'eye' }, ], faqs:[ { q:'Will my checkout change?', a:'Almost never. If your conversion already works, I leave the checkout alone and put the effort where it moves the needle — usually the homepage and product pages.' }, { q:'Can you migrate without losing SEO?', a:'Yes. One-to-one 301 redirects for every old URL are non-negotiable on my migrations. That’s the difference between invisible and disaster.' }, ], }, wordpress: { n:'03', name:'Custom WordPress', short:'Block-theme builds and Elementor sites.', from:'$5,400', time:'6–10 weeks', cat:'Build', lede:'When you need real ownership and flexibility — a CMS your team can extend without fighting it.', intro:[ 'WordPress is the right answer when you want to own everything outright and bend the CMS to a complex content model. It’s also the easiest platform to build badly, which is where I come in.', 'I build clean block themes and well-structured Elementor sites that your team can actually maintain — no mystery plugins, no spaghetti, no calling me to change a heading.', ], includes:[ { t:'Block themes done right', d:'Native, maintainable themes — or Elementor when the team prefers it — structured for the long haul.' }, { t:'A CMS you won’t fight', d:'Custom post types and fields shaped around your content, not the other way around.' }, { t:'Headless, if you’re brave', d:'A decoupled front-end when performance or flexibility genuinely calls for it.' }, { t:'Maintenance plans', d:'Plugin and core updates handled on a retainer so security never drifts.' }, ], steps:[ { t:'Model the content', d:'We design the content structure before a single template — it saves months later.', icon:'diagram' }, { t:'Build & document', d:'A clean theme plus a short manual so the team is never stuck.', icon:'screen' }, { t:'Hand over ownership', d:'You own the hosting, the code, and the keys. Everything.', icon:'key' }, ], faqs:[ { q:'Block theme or Elementor?', a:'Depends on your team. If editors are comfortable, native blocks are leaner and faster. If they want drag-and-drop, Elementor done carefully is perfectly fine.' }, { q:'Do you handle hosting?', a:'I’ll recommend and set up hosting, but you own the account. I’m a builder, not a landlord.' }, ], }, apps: { n:'04', name:'Apps, mobile & native', short:'Yes — native iOS, Android, and cross-platform.', from:'$12,000', time:'8–16 weeks', cat:'Build', isNew:true, lede:'Yes, I build apps. Native iOS and Android, cross-platform React Native, and installable web apps — designed and shipped with the same calm and care as the websites.', intro:[ 'For a long time my answer to "do you do apps?" was a polite no. It isn’t anymore. Mobile is where a growing share of my clients’ customers actually live, and handing that work to a stranger never sat right — so I learned to do it properly.', 'I take the same approach I take on the web: design in the open, build something real early, and ship something your users find obvious. Whether that’s a true native app, a cross-platform build, or a fast progressive web app depends entirely on what you’re trying to do — and I’ll tell you honestly which one you actually need.', ], includes:[ { t:'Native iOS & Android', d:'Swift and Kotlin builds when you need platform-true performance, gestures, and feel.' }, { t:'Cross-platform with React Native', d:'One codebase, both stores — the pragmatic choice for most product teams on a budget.' }, { t:'Progressive web apps', d:'Installable, offline-capable web apps when an app-store presence isn’t worth the overhead.' }, { t:'App Store & Play submission', d:'I handle the screenshots, metadata, review process, and the inevitable rejection-and-resubmit dance.' }, ], steps:[ { t:'Decide the shape', d:'Native, cross-platform, or PWA — chosen for your users and budget, not my comfort zone.', icon:'diagram' }, { t:'Prototype on-device', d:'A clickable build on a real phone in your hand within the first few weeks.', icon:'phone' }, { t:'Ship & support', d:'Store submission, launch, and a support window for the bugs that only appear in the wild.', icon:'rocket' }, ], faqs:[ { q:'Native or cross-platform — which do I need?', a:'Most teams are best served by React Native: one codebase, both platforms, far less cost. I reach for fully native only when performance, hardware, or platform feel genuinely demand it — and I’ll say so plainly.' }, { q:'Can the app share a backend with my site?', a:'Usually yes, and it should. If you already have a site or store, I’ll build the app against the same data so you’re maintaining one source of truth, not two.' }, { q:'Do you handle the App Store submission?', a:'Yes — screenshots, listings, review notes, and resubmissions included. You won’t have to learn App Store Connect at midnight.' }, ], }, brand: { n:'05', name:'Brand & visual identity', short:'Logo, type, color, the small details.', from:'$3,200', time:'3–5 weeks', cat:'Design', lede:'The identity work that makes a brand actually feel like one — and pairs beautifully with a site build.', intro:[ 'A logo is the start, not the brand. The brand is the type, the color, the spacing, the tone — the hundred small decisions that make everything you make look like it came from the same place.', 'I build identity systems compact enough to be useful and complete enough to last, with guidelines you’ll actually open more than once.', ], includes:[ { t:'Logo system', d:'A primary mark plus the variations and lockups you’ll really need in the wild.' }, { t:'Type & color', d:'A typographic system and palette designed to work across every surface you touch.' }, { t:'Motion & details', d:'The small touches — hover states, transitions, signature moments — that make it feel alive.' }, { t:'Guidelines you’ll open', d:'A short, usable brand document, not a 90-page PDF nobody reads.' }, ], steps:[ { t:'Discover', d:'A short, focused conversation about who this is for and how it should feel.', icon:'speech' }, { t:'Design the system', d:'Mark, type, color, and motion developed together, not in isolation.', icon:'palette' }, { t:'Deliver & apply', d:'Files, guidelines, and — ideally — a website to wear it all.', icon:'sparkle' }, ], faqs:[ { q:'Can I get just a logo?', a:'I prefer to do at least a small system — a lone logo with no type or color rules tends to fall apart the first time you use it. But we can keep the scope tight.' }, { q:'Does this include the website?', a:'Not by default, but it’s the natural pairing. Brand-and-site together is one of my three core packages for exactly this reason.' }, ], }, redesign: { n:'06', name:'Redesigns & refreshes', short:'Keep what’s working, fix what isn’t.', from:'$3,400', time:'4–6 weeks', cat:'Build', lede:'Often the highest-leverage thing a small business can do — a selective rebuild, not a teardown.', intro:[ 'You rarely need to start over. Most sites have good bones and a few specific things dragging them down — a tired homepage, a broken mobile layout, a structure that’s grown crooked over the years.', 'I audit first, then rebuild selectively. Keeping what works is faster, cheaper, and usually smarter than burning it all down for the thrill of a blank canvas.', ], includes:[ { t:'Audit & recommendations', d:'An honest read of what’s working, what isn’t, and what’s worth the effort.' }, { t:'Selective rebuild', d:'Targeted fixes to the highest-impact pages instead of a full from-scratch project.' }, { t:'Mobile & performance', d:'The two things most aging sites fail — brought back up to standard.' }, { t:'No lost SEO', d:'Structure and redirects handled so a refresh never costs you ranking.' }, ], steps:[ { t:'Audit', d:'I spend time in your analytics and your pages before recommending anything.', icon:'checklist' }, { t:'Prioritise', d:'We fix the highest-leverage things first — not everything at once.', icon:'funnel' }, { t:'Rebuild & relaunch', d:'Selective, careful, and usually live within 4–6 weeks.', icon:'hammer' }, ], faqs:[ { q:'How do I know if I need a redesign or a rebuild?', a:'That’s exactly what the audit answers. Often the honest recommendation is "fix these three things," which saves you a lot of money I’d rather you not spend.' }, { q:'Will my URLs change?', a:'Only where they should, and always with redirects. A refresh should never cost you the SEO you’ve built.' }, ], }, seo: { n:'07', name:'SEO setup & optimization', short:'The boring metadata work that compounds.', from:'$1,200', time:'2 weeks', cat:'Grow', lede:'Real-world technical SEO and content structure — the quiet, unglamorous work that pays off for years.', intro:[ 'SEO has a marketing problem: it’s sold as a mystery so it can be sold expensively. Most of what actually moves the needle is technical hygiene and good structure — boring, knowable, and durable.', 'I do the real version: a technical audit, clean structure, proper metadata and schema, and the redirects nobody enjoys. No keyword-stuffing, no snake oil.', ], includes:[ { t:'Technical audit', d:'Crawlability, speed, structure, and the issues quietly capping your visibility.' }, { t:'Content structure', d:'Headings, internal links, and an information architecture search engines can read.' }, { t:'Schema & metadata', d:'Structured data, titles, and descriptions done properly across the site.' }, { t:'Redirects & sitemaps', d:'The plumbing that preserves and compounds the authority you’ve already earned.' }, ], steps:[ { t:'Audit', d:'A full technical and structural review of where you stand today.', icon:'magnify' }, { t:'Fix', d:'The high-impact issues handled, in priority order.', icon:'wrench' }, { t:'Check in', d:'A 30-day follow-up to confirm the changes are landing.', icon:'calendar' }, ], faqs:[ { q:'Do you guarantee rankings?', a:'No one honest does. What I guarantee is that the technical foundation is sound — which is the part most sites get wrong and the part that compounds.' }, { q:'Is this ongoing?', a:'It can be a one-off setup or part of a retainer. Most small sites do well with a solid setup and an occasional check-in.' }, ], }, migrations: { n:'08', name:'Platform migrations', short:'Anything → anything, with redirects.', from:'$2,800', time:'3–5 weeks', cat:'Build', lede:'Wix to Squarespace, Squarespace to Shopify, anything to WordPress — moved with no traffic lost.', intro:[ 'A migration done right is invisible: traffic holds, orders flow, and nobody notices but the analytics. Done wrong, it takes six months of ranking down with it. The difference is almost entirely in the unglamorous parts.', 'I treat a migration as a trust exercise with a search engine — a complete URL map, one-to-one redirects, hand-checked content, and two weeks of watching afterward.', ], includes:[ { t:'Complete URL map', d:'Every page, product, and post inventoried before anything moves.' }, { t:'One-to-one 301s', d:'Every old URL redirected to its closest new home — never dumped on the homepage.' }, { t:'Hand-checked content', d:'Because automated importers mangle formatting, alt text, and metadata.' }, { t:'Visual parity or better', d:'You come out looking the same or improved — never worse.' }, ], steps:[ { t:'Map the old site', d:'A full crawl and inventory — the contract for what must survive.', icon:'notebook' }, { t:'Stage & rehearse', d:'The new build assembled behind a password and the cutover practiced.', icon:'screen' }, { t:'Flip & monitor', d:'DNS and redirects together, then two weeks of close watch.', icon:'switchon' }, ], faqs:[ { q:'Will my site go down?', a:'Barely. I stage everything behind a password and rehearse the cutover; the longest "downtime" I’ve had is about twelve minutes of DNS catching up.' }, { q:'Will I lose my Google ranking?', a:'Not if it’s done properly. One-to-one redirects are the whole game, and they’re standard on every migration I run.' }, ], }, support: { n:'09', name:'Ongoing support', short:'A monthly retainer for tweaks and updates.', from:'$400/mo', time:'monthly', cat:'Grow', lede:'For the steady drip of small changes — and that one thing you keep meaning to fix.', intro:[ 'Sites are never really "done." There’s always a new page, a price to change, a plugin to update, a seasonal banner to swap. A retainer means you have someone who already knows your site on call for all of it.', 'It’s low-commitment by design: a set number of hours a month, priority on bigger requests, and the freedom to cancel whenever you like.', ], includes:[ { t:'Monthly tweak hours', d:'A set block of time each month for the small changes that pile up.' }, { t:'Priority on big asks', d:'Larger requests jump the queue because you’re already a client.' }, { t:'Updates handled', d:'Plugin, platform, and security updates kept current so nothing drifts.' }, { t:'Cancel anytime', d:'No lock-in. The retainer earns its keep month to month or not at all.' }, ], steps:[ { t:'Start', d:'We pick an hours tier that fits how often you actually need changes.', icon:'calendar' }, { t:'Request', d:'Email me what you need; small things get done, big things get scoped.', icon:'chat' }, { t:'Adjust', d:'Scale the tier up or down, or pause it, whenever your needs change.', icon:'sliders' }, ], faqs:[ { q:'Do unused hours roll over?', a:'A little — one month’s worth. The retainer is meant to be used, not hoarded, but I won’t penalise a quiet month.' }, { q:'Do I need a retainer after launch?', a:'No. Every build comes with 30 days of free fixes, and plenty of clients are fine on their own after that. The retainer is there if you’d rather not think about it.' }, ], }, }; const SERVICE_ORDER = ['squarespace','shopify','wordpress','apps','brand','redesign','seo','migrations','support']; Object.assign(window, { SERVICE_DETAILS, SERVICE_ORDER });