Frontend Development
Pixel-perfect implementations with Astro, React, and Tailwind. Performance budgets, accessibility, and responsive design baked in.
Docs
Icon grid of services or capabilities
Live preview
End-to-end web development — from first wireframe to production deploy. I partner with designers, agencies, and founders who value quality over shortcuts.
Pixel-perfect implementations with Astro, React, and Tailwind. Performance budgets, accessibility, and responsive design baked in.
High-converting landing pages and multi-page marketing sites. SEO-ready, CMS-connected, and easy for your team to update.
Sanity, Contentful, or Markdown — structured content models, preview workflows, and editor-friendly Studio setups.
Core Web Vitals optimization, semantic markup, structured data, and sitemaps. Sites that rank and load fast.
File: src/blocks/services/Services01.astro
Icon grid of services or capabilities (sm:grid-cols-2).
blocks.ts → services)services: {
heading: "What I do",
subheading: "End-to-end web development…",
items: [
{
icon: "code",
title: "Frontend Development",
description: "Astro, React, and Tailwind…",
},
{
icon: "layout",
title: "Marketing Sites",
description: "High-converting landing pages…",
},
],
},
Icon names match Icon.astro — code, layout, stack, bolt, etc.
---
import Services01 from "@/blocks/services/Services01.astro";
---
<Services01 />
Inline:
<Services01
heading="What we offer"
items={[
{ icon: "bolt", title: "Fast delivery", description: "Ship in weeks, not months." },
]}
/>
| Prop | Config key | Notes |
|---|---|---|
sectionId |
— | Default "services" |
heading |
services.heading |
|
subheading |
services.subheading |
|
items |
services.items |
{ icon?, title?, description? }[] |