Portfolios · React
Wedding photographer
Romantic portfolio for a wedding and portrait photographer, with galleries, collections and an enquiry form.

What you get
An editorial one-pager for a wedding and portrait photographer: recent weddings, a gallery of portrait sessions, collections with prices, how booking works, couples' notes and a date enquiry form. All content lives in src/site.ts.
Files
Exactly what is copied into a new project: 13 files, nothing generated.
Explorer 13
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = { "brand": "Clara Hollis Photography", "nav": [ { "label": "Weddings", "href": "#weddings" }, { "label": "Portraits", "href": "#portraits" }, { "label": "Collections", "href": "#collections" }, { "label": "FAQ", "href": "#faq" } ], "navCta": { "label": "Check your date", "href": "#contact" }, "sections": [ { "kind": "hero", "variant": "editorial", "eyebrow": "Wedding & portrait photographer · Asheville, NC", "title": "Quiet, honest pictures of the people you love.", "text": "I photograph around 22 weddings a year across the Blue Ridge and beyond, plus family and portrait sessions in between. Mostly natural light, very little posing, and a full gallery within five weeks.", "primary": { "label": "See recent weddings", "href": "#weddings" }, "secondary": { "label": "Check your date", "href": "#contact" }, "visual": { "type": "tiles", "tones": [ "#9f6b5e", "#e8d6cf", "#c9a99c", "#5b3a33" ], "caption": "Grace & Owen, Linville Gorge, October" } }, { "kind": "projects", "id": "weddings", "eyebrow": "Recent weddings", "title": "A few days I keep thinking about", "items": [ { "title": "Grace & Owen", "tag": "Elopement at Linville Gorge", "year": "2026", "tone": "#7a4a3f" }, { "title": "Hannah & Luis", "tag": "Barn wedding, 140 guests, Hendersonville", "year": "2026", "tone": "#8a6a4f" }, { "title": "Maya & Jordan", "tag": "Courthouse ceremony and dinner downtown", "year": "2025", "tone": "#5f4b45" }, { "title": "Ellie & Sam", "tag": "Two-day mountain wedding, Blowing Rock", "year": "2025", "tone": "#9b5c55" } ] }, { "kind": "gallery", "id": "portraits", "eyebrow": "Portraits", "title": "Families, couples and the occasional dog", "text": "Sessions run 60–90 minutes at a place that means something to you: a back porch, a river, the diner where you had your first date.", "items": [ { "title": "The Alvarez family", "caption": "Golden hour, French Broad River", "tone": "#8c5a4c" }, { "title": "Nora at 92", "caption": "At home, in her garden", "tone": "#6e5a4e" }, { "title": "Ben & Theo", "caption": "Engagement session, Craggy Gardens", "tone": "#7d4f49" }, { "title": "First week", "caption": "Newborn session at home", "tone": "#a0786a" }, { "title": "Walter", "caption": "A very good boy, aged 11", "tone": "#5d4037" } ] }, { "kind": "pricing", "id": "collections", "eyebrow": "Collections", "title": "Wedding collections", "text": "Every collection includes an online gallery, print rights and a planning call. Travel within 100 miles of Asheville is included.", "plans": [ { "name": "Elopement", "price": "$2,400", "text": "For ceremonies of up to 20 people.", "features": [ "Up to 4 hours of coverage", "Location scouting help", "250+ edited images", "Gallery in 3 weeks" ], "cta": { "label": "Ask about elopements", "href": "#contact" } }, { "name": "Full day", "price": "$4,800", "text": "From getting ready to the last dance.", "features": [ "Up to 9 hours of coverage", "Second photographer", "600+ edited images", "Engagement session included" ], "featured": true, "cta": { "label": "Check your date", "href": "#contact" } }, { "name": "Weekend", "price": "$6,900", "text": "Rehearsal dinner, wedding day and a send-off brunch.", "features": [ "Coverage across 2–3 days", "Second photographer", "900+ edited images", "Printed 10×10 album" ], "cta": { "label": "Plan a weekend", "href": "#contact" } } ] }, { "kind": "steps", "eyebrow": "How it works", "title": "From first email to your gallery", "items": [ { "title": "Say hello", "text": "Send your date and a little about your plans. I reply within two working days with availability." }, { "title": "Hold the date", "text": "A short video call, then a contract and a 30% retainer to secure your day." }, { "title": "Get your gallery", "text": "A preview of 40 images within a week, and the full gallery within five weeks." } ] }, { "kind": "quotes", "eyebrow": "Kind words", "title": "From couples", "items": [ { "quote": "We barely noticed Clara was there, and then the photos arrived and she had caught everything.", "name": "Hannah P.", "role": "Married May 2026" }, { "quote": "My grandmother is in forty of our pictures. That alone was worth every penny.", "name": "Luis M.", "role": "Married May 2026" }, { "quote": "She handled the rain, a late bus and a nervous groom without breaking a sweat.", "name": "Ellie R.", "role": "Married September 2025" } ] }, { "kind": "faq", "id": "faq", "eyebrow": "Questions", "title": "Things couples usually ask", "items": [ { "q": "How far ahead should we book?", "a": "Most Saturdays from May to October book 9–14 months out. Weekdays and winter dates are usually easier." }, { "q": "Do you travel?", "a": "Yes. Travel inside 100 miles is included; beyond that I charge cost for travel and one night's stay." }, { "q": "Can we get the RAW files?", "a": "I don't deliver RAW files, but every image in your gallery is a full-resolution edit you can print anywhere." }, { "q": "Do you shoot film?", "a": "I bring a medium-format film camera to every wedding and add 2–3 rolls at no extra cost." } ] }, { "kind": "contact", "eyebrow": "Enquiries", "title": "Check your date", "text": "Tell me your date, the venue if you have one, and roughly how many guests. I'll reply within two working days.", "fields": [ "name", "email", "date", "guests", "message" ], "button": "Send enquiry" } ], "footer": { "text": "Wedding and portrait photography in Asheville and the Blue Ridge.", "columns": [ { "title": "Work", "links": [ "Weddings", "Portraits", "Elopements" ] }, { "title": "Contact", "links": [ "hello@clarahollis.photo", "(828) 555-0173" ] } ], "legal": "© Clara Hollis Photography. Sample content: replace it in src/site.ts." }};Remix
Remix this template
Describe what to change and the agent starts from Wedding photographer's files. The box is already started for you: finish “Start from Wedding photographer and …”
Dependencies
Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.
- react^19.1.0
- react-dom^19.1.0
- vite^6.3.0
- @vitejs/plugin-react^4.4.0
- tailwindcss^4.1.0
- @tailwindcss/vite^4.1.0
- typescript^5.8.0
How it runs
- Framework
- Vite + React + TypeScript
- Dev command
- npm run dev
- Build command
- npm run build
- Output directory
- dist
- Port
- 5173
- Entry route
- /
Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.
Keep browsing
All templates
Brand design studio
Bold dark site for an independent brand and identity studio, with case work, services and team.

Product designer
Case-study portfolio for a product designer, with process, experience timeline and references.

3D & motion designer
High-contrast dark portfolio for a 3D and motion designer, with reels, projects, rates and process.
Build on Wedding photographer
Create a free account, start from this template, and ask the AI agent to turn it into your app.