Astro v6 static site for dryliningmaidstone.co.uk — a professional drylining, partition wall, and suspended ceiling contractor serving Maidstone and surrounding areas.
- Astro v6.x with static output (
output: 'static') - Inline CSS pattern via
<style>blocks and inlinestyleattributes (no external CSS framework) - Vercel deployment ready
src/
├── layouts/Layout.astro # Shared layout with nav, footer, CSS variables
├── pages/
│ ├── index.astro # Home (hero, services, areas, trust, why choose, CTA, FAQ)
│ ├── services/ # 8 service pages + index
│ ├── areas/ # 8 area pages + index
│ ├── get-quote.astro # Lead capture form (Google Sheets webhook)
│ ├── about.astro
│ ├── faq.astro
│ └── contact.astro
├── components/
│ ├── FlipCard.astro
│ ├── TrustBar.astro
│ ├── AreasGrid.astro
│ └── FAQItem.astro
└── content/blog/ # 3 seed articles
npm install
npm run dev # Start dev server
npm run build # Static build to dist/
npm run preview # Preview build locally- Connect the GitHub repo to Vercel
- Framework preset: Astro
- Build command:
npm run build - Output directory:
dist
Or deploy via CLI:
vercel --prodThe quote form on /get-quote/ and the hero form POST to:
https://script.google.com/macros/s/SCRIPT_ID/exec
Update the action attribute in:
src/pages/get-quote.astrosrc/pages/index.astro
Replace SCRIPT_ID with your actual Google Apps Script deployment ID.
Every page includes:
- Unique meta title (50–60 chars) and description (120–160 chars)
- Canonical URL
- JSON-LD schema markup (LocalBusiness, Service, FAQPage, BreadcrumbList, Organization)
- Proper H1 + TL;DR content structure
- Internal linking throughout
- Colours: Primary
#C41E3A, Secondary#111111 - Phone: 0117 XXX XXXX (placeholder — update in Layout and pages)
- Email: info@dryliningmaidstone.co.uk
Private — for dryliningmaidstone.co.uk