Landry Designs — Source & Editing Guide
Who this is for: the Landry Designs team (SEO / content) who need to pull up a page, see how it is structured, and edit the real source — content or code — and see how it renders. This page is internal (noindex, never shown in Google).
How the site is built (the short version)
The site is built with Astro. Every page is rendered to plain static HTML at build time. That means the headline, body copy, meta title, meta description, and structured data are all already present in the HTML before any JavaScript runs — which is exactly what Googlebot reads. There is no empty shell that JavaScript fills in later. (This directly confirms the SEO-rendering question: yes, it is the good "server-rendered HTML" setup.)
The source lives in one repository on the build machine:
/Users/moltbot-business/landrydesigns-astro. Everything you edit is under the
src/ folder. One file = one predictable place.
Where each part of the site lives
| Part of the site | File to edit | What it controls |
|---|---|---|
| Header / top nav | src/components/Header.astro | Logo, phone, and the nav menu. Edit the navLinks array (top of the file) to add/rename/reorder menu items and dropdowns. |
| Footer | src/components/Footer.astro | Footer columns, links, contact line, social links, copyright. |
| Page shell, <head>, SEO, schema | src/layouts/Layout.astro | Wraps every page. Controls meta title/description, canonical, Open Graph, robots, and the LocalBusiness / Breadcrumb structured data. |
| Main content pages | src/pages/*.astro | One file per URL. e.g. index.astro = home, how-we-work.astro = /how-we-work/, faq.astro = /faq/. Edit the text right in the file. |
| Blog (listing) | src/pages/blog.astro → src/components/BlogPage.jsx | The /blog/ index. Posts come from the live content API plus the local snapshot in src/data/blogPosts.js. |
| Blog posts, portfolio & service areas | src/pages/[slug].astro | One catch-all that server-renders every blog post, portfolio category, and city/area page at its root URL (e.g. /arlington/). Post bodies are rendered into the static HTML so they are crawler-visible. |
| Forms (contact & booking) | src/components/ContactPage.jsx | Mounted by src/pages/contact-us.astro and src/pages/book-online.astro. See "Where the forms submit" below. |
| Styles / look | src/styles/*.css | Global and per-section CSS (global.css, header.css, footer.css, etc.). |
| SEO per-page (title/desc/robots) | src/data/onPageSeo.json | Per-URL SEO overrides, keyed by path. Managed from the SEO Workspace tool; values here win over page defaults. |
| Structured data lists | src/data/serviceAreas.js, portfolioCategories.js, blogPosts.js | The data that drives auto-generated pages. Add a record here and a page is generated for it. |
Where the forms submit
Both the contact form and the booking form POST to a Cloudflare Worker:
https://unified-forms.dave-d42.workers.dev/ (as
application/x-www-form-urlencoded). The submitted fields are
names[first_name], names[last_name], email,
phone, and a combined message. That Worker forwards the
submission on to Landry Designs. To change where a form goes, edit the
fetch(...) URL in src/components/ContactPage.jsx.
How to view, add, and edit — then see it render
- Open the file under
src/that matches the part you want (use the table above). - Edit the content or code directly. Astro files read like HTML with a
small config block at the top between the
---fences. - Preview it live as you type: run
npm run devin the repo and openhttp://localhost:4321/. The page reloads on every save, so you see exactly how the edit renders. - Add a new page: create
src/pages/<name>.astroand wrap it in<Layout>— it becomes /<name>/ automatically. - Add a service area or portfolio category: add one record to the
matching file in
src/data/— the page generates itself. - Publish: run
deploy-react landrydesigns-astroto build and deploy. Preview build URL:https://landrydesigns-astro.pages.dev.
Getting editing access to the source
The repository currently lives on the build machine. Talk to Dave about the access method that fits best — the two common options are: (a) a Git remote (e.g. GitHub) you clone, edit locally with any editor, and push; or (b) a browser-based editor pointed at the repo so no local setup is needed. Either way, the map above is where you edit; this guide is the starting point.
Internal reference. The same content
is kept in SOURCE-EDITING-GUIDE.md at the root of the repository.