Files
lisilou-portfolio/config/site.json
T
jhodgkin 9dcc73ecfe
Deploy to Dev / Deploy & Smoke Test (push) Successful in 21s
Design pass: fix dead site config, add hero image support, polish cards
- Fix applyConfig self-recursion (const _origApply captured the hoisted
  wrapper itself): site.json config — theme, portfolio, socials, bio —
  was never applied; site silently fell back to hardcoded brown defaults
- Strengthen theme test to assert the configured primary color exactly
- Portfolio covers: styled placeholder on missing image (like locations),
  restore img when Immich carousel kicks in; overlay always visible on touch
- Optional hero photo via site.heroImage with soft scrim (activates only
  when the image loads); site.json points at /images/hero.jpg
- Option cards: equal height, centered content
- /#book deep link also works via hashchange

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:39:36 -06:00

130 lines
4.2 KiB
JSON

{
"site": {
"title": "Lisi Lou Photography",
"tagline": "Capturing life's beautiful moments",
"description": "Senior portraits, engagement sessions, and milestone photography",
"logo": "/images/logo.png",
"favicon": "/images/favicon.ico",
"heroImage": "/images/hero.jpg"
},
"photographer": {
"name": "Elysse Hodgkin",
"bio": "Passionate about capturing authentic moments and creating timeless memories.",
"profileImage": "/images/profile.jpg"
},
"contact": {
"email": "hello@lisilou.com",
"phone": "",
"bookingUrl": ""
},
"social": {
"instagram": "lisilou.photography",
"facebook": "elysse.hodgkin",
"pinterest": "",
"tiktok": ""
},
"immich": {
"baseUrl": "https://immich.jerodrigged.com",
"publicAlbumPrefix": "/s/"
},
"portfolio": {
"categories": [
{
"id": "seniors",
"name": "Senior Portraits",
"description": "Celebrate your milestone",
"coverImage": "/images/portfolio/seniors-cover.jpg",
"immichAlbumId": "all-seniors"
},
{
"id": "engagements",
"name": "Couples",
"description": "Love stories captured",
"coverImage": "/images/portfolio/engagements-cover.jpg",
"immichAlbumId": "all-couples"
},
{
"id": "families",
"name": "Family or Friends",
"description": "Moments that matter",
"coverImage": "/images/portfolio/families-cover.jpg",
"immichAlbumId": "families-or-friends"
}
]
},
"clientAccess": {
"enabled": true,
"title": "Client Gallery Access",
"description": "Enter your gallery code to view and download your photos",
"placeholder": "Enter your gallery code"
},
"locations": [
{
"id": "river-bottoms",
"name": "River Bottoms",
"description": "A stunning riverside setting with golden light filtering through the trees — perfect for that warm, natural feel.",
"tags": ["Outdoor", "Golden hour", "Nature"],
"heroImage": "/images/locations/river-bottoms/hero.jpg",
"galleryImages": [
"/images/locations/river-bottoms/1.jpg",
"/images/locations/river-bottoms/2.jpg"
]
},
{
"id": "city-park",
"name": "City Park",
"description": "Lush green spaces with open fields, mature trees, and beautiful walking paths — great for families and couples.",
"tags": ["Outdoor", "Green space", "Versatile"],
"heroImage": "/images/locations/city-park/hero.jpg",
"galleryImages": [
"/images/locations/city-park/1.jpg",
"/images/locations/city-park/2.jpg"
]
},
{
"id": "downtown",
"name": "Downtown",
"description": "Urban backdrops with brick walls, murals, and architectural details — ideal for seniors and creative portraits.",
"tags": ["Urban", "Architecture", "Creative"],
"heroImage": "/images/locations/downtown/hero.jpg",
"galleryImages": [
"/images/locations/downtown/1.jpg",
"/images/locations/downtown/2.jpg"
]
},
{
"id": "studio",
"name": "Studio",
"description": "A clean, controlled environment with professional lighting — great for newborns, headshots, and consistent results.",
"tags": ["Indoor", "Controlled lighting", "Year-round"],
"heroImage": "/images/locations/studio/hero.jpg",
"galleryImages": [
"/images/locations/studio/1.jpg",
"/images/locations/studio/2.jpg"
]
}
],
"booking": {
"venmoUsername": "LisiLouPhoto",
"sessionTypes": [
{ "id": "senior", "label": "Senior Portrait", "description": "Celebrate your milestone" },
{ "id": "couple", "label": "Couple", "description": "Engagement & couples" },
{ "id": "family", "label": "Family", "description": "Family portraits" },
{ "id": "individual", "label": "Individual", "description": "Personal portrait session" },
{ "id": "newborn", "label": "Newborn", "description": "Newborn & maternity" }
],
"pricing": {
"mini": 75,
"full": 150
}
},
"theme": {
"primaryColor": "#B06A7A",
"accentColor": "#E8C4CC",
"textColor": "#2C2C2C",
"backgroundColor": "#FEF9FA",
"fontDisplay": "Cormorant Garamond",
"fontBody": "Nunito Sans"
}
}