Skip to content

Before you launch

Every template ships with a complete fictional business, so you can see every page working. Before your site goes live, everything that belongs to that business should be yours. Handy’s demo is Sorted Handyman Services, a fictional business.

Go through the content editor from top to bottom. In Handy:

Where What to replace
Site settings Name, tagline, description, chat assistant name, email, phone, address, insurance and memberships, navigation, header button, profiles, footer note, footer links, the picture for social previews
Home page Every section’s texts, the to-do list, the numbers, the closing photo
Services, Jobs, Tips Delete the demo entries and add your own
Prices page Hourly rate and small print, packages, steps, booking texts, deposits and vouchers
Contact page Areas covered, map texts and radius, working hours, details, photo, questions
Interface texts The emails’ signatures, the chat’s greeting and suggested questions
Legal Privacy, terms, guarantee (see below)

Search engines and social previews use the SEO title and description of each page, so fill those in too.

To delete demo entries in the files instead of the editor, remove them from src/content/services/en/, src/content/jobs/en/ and src/content/journal/en/, and their photos from src/assets/photos/. Home page sections that list entries (services, jobs, tips) show whatever is published, so they follow.

In the EmDash variant, the demo content and photos are in EmDash (seeded when the site was set up): replace them in the admin at /_emdash/admin.

A few demo values live in code or settings rather than in the content. In Handy:

  • The sender of your emails: EMAIL_FROM defaults to the demo business (Sorted Handyman Services <hello@sorted.example>). Set it to your own name and an address on your domain, in .env and on your host.
  • The currency search engines see: the prices page and the service pages describe prices as pounds (priceCurrency: 'GBP' in src/views/Prices.astro and src/views/Service.astro). Charge in another currency? Change it there.
  • The map: the demo map shows the area around the fictional business. Put your base’s coordinates in map.config.json and run npm run map -- fetch (details on the Handy page). Keep the OpenStreetMap credit.

Other templates have similar spots; their pages in these docs list them.

The demo photos are AI-generated for the template. LICENSES.md in your project lists each one and says what you may do: use, change and publish them in any project built with the template. The people and the business in them are fictional.

So you may keep them, but replace any photo that would make a visitor believe something untrue about your business. In Handy that means the jobs: their before and after photos should be your own work, taken from the same spot. Services and tips can keep demo photos until you have your own.

To replace a photo, pick a new file in the photo’s field in the editor (Choose file), at least 2000 px wide, and write its description (alt text). Delete photos you no longer use from src/assets/photos/. Fonts and map data have their own licenses, also listed in LICENSES.md.

Your production address is set in one line near the top of astro.config.mjs. It starts as the template’s demo address:

// Your production URL: used for canonical links, the sitemap and social images.
const site = 'https://handy.demo.wptom.com';

Change it to yours, for example const site = 'https://example.com';. Until you do, canonical links, /sitemap.xml, /robots.txt, /llms.txt and social previews point at the demo address, and search engines would treat your pages as copies of the demo.

In the EmDash variant you can also set SITE_URL in the environment when the address the site is served from differs from site (EmDash resizes photos for it). Otherwise leave it empty.

See also Put your site online.

The template’s live demo shows an Accent switcher in the bottom left corner. It’s built in src/components/DemoAccents.astro, offers the colors in src/data/demo-accents.json (the first one is always your own accent from brand.json) and derives every color in the browser with the same code as the build, so what you see is what brand.json would give.

It only appears when the PUBLIC_DEMO environment variable is true. It’s off by default, and your site should keep it off: don’t set PUBLIC_DEMO on your host. To try colors on your own computer:

Terminal window
PUBLIC_DEMO=true npm run dev

Pick a color you like and put its hex value in brand.json as the accent. You can leave DemoAccents.astro and demo-accents.json in your project: without PUBLIC_DEMO they add nothing to your pages.

The demo’s privacy policy, terms and guarantee (Pages → Legal, files in src/content/legal/en/) are placeholders and say so in their first line: “This policy is demo content for the fictional Sorted Handyman Services”. Replace each with text that describes what your business and site really do: which forms you have, which services you’ve switched on (email, analytics, payments, booking, the AI chat), and your contact details. Update the Last updated date, and remove any page you don’t need along with its link in Site settings → Footer links.

The cookie banner appears only when Google Analytics is on (PUBLIC_GA_MEASUREMENT_ID), and links to /legal/privacy, so keep a privacy page at that address.

Every template’s 404 page has a small game. Handy’s is “Screw it”: drive the screws flush. It’s part of the “page not found” page only and keeps the best score in the visitor’s browser.

  • Keep it: its texts are in Interface texts → 404 game, the page’s heading and button in Pages → 404 page. Translate them along with the rest.
  • Change the words only: edit those texts.
  • Remove it: in src/pages/404.astro, delete the line with <ScrewGame /> and its import, and change the two-column grid around it to a single column. Then you can delete src/components/ScrewGame.astro and src/lib/screw.ts. The game’s texts stay in the content model and do no harm.
  • The demo business is gone: Site settings, every page, every collection, Interface texts. Search the project for its name (in Handy, “Sorted”) to find leftovers.
  • Photos are yours where it matters, every photo has alt text, unused photos are deleted.
  • Colors, fonts and corners in brand.json are yours, checked in both themes.
  • const site in astro.config.mjs is your address.
  • Legal pages describe your business; the footer links point at the ones you kept.
  • Environment variables on your host for every feature you use (.env.example lists them), including EMAIL_FROM. PUBLIC_DEMO is not set.
  • Forms, booking and payments tried once on the live site (Stripe in test mode first).
  • The picture for social previews (Site settings) is yours.
  • npm run build finishes without errors.
  • Lighthouse on the live site, phone and desktop (see Working in the code).
  • Your work is committed, so wptom update can merge future versions.