{ "demo": true, "settings": { "merge": { "companyName": "Gotham House", "tagline": "A members' club after dark." } }, "media": [ { "id": "a1b2c3d4-0000-4000-8000-000000000001", "file": "media/bar-scene.jpg", "alt": "Bartenders at work behind a dark backbar, low-lit and grainy", "folder": "Gotham" }, { "id": "a1b2c3d4-0000-4000-8000-000000000002", "file": "media/bar-shelf.jpg", "alt": "Warm brass-lit shelves of whisky bottles in a dim room", "folder": "Gotham" }, { "id": "a1b2c3d4-0000-4000-8000-000000000003", "file": "media/bar-interior.jpg", "alt": "Backlit rows of bottles in silhouette against a dark wall", "folder": "Gotham" }, { "id": "a1b2c3d4-0000-4000-8000-000000000004", "file": "media/dark-lounge.jpg", "alt": "A dark lounge under low hanging lamps casting pools of gold light", "folder": "Gotham" } ], "data_tables": [ { "key": "contact_submissions", "name": "Door Enquiries", "description": "Seeded contact-form submissions for the Gotham House demo. A submission becomes a row here and emails the site admins.", "columns": [ { "key": "name", "label": "Name", "type": "text", "required": true }, { "key": "email", "label": "Email", "type": "email", "required": true }, { "key": "party", "label": "Party size", "type": "text", "required": false }, { "key": "message", "label": "Message", "type": "text", "required": true } ] } ], "pages": [ { "slug": "/", "title": "Gotham House", "template_key": "landing", "blocks": [ { "block_key": "hero", "title": "Hero", "slot": "main", "sort_order": 1, "content": { "template": "centered", "minHeight": "75vh", "backgroundImage": "media:a1b2c3d4-0000-4000-8000-000000000001", "overlayColor": "dark", "overlayOpacity": 68, "eyebrow": "Members only", "headline": "Gotham House", "subheadline": "A members' club after dark.", "description": "Late rooms, a long bar and a short guest list. Doors from nine, Thursday to Sunday. Bring your card.", "ctaPrimary": { "text": "Request the guest list", "url": "/contact" }, "ctaSecondary": { "text": "See the programme", "url": "#programme" } } }, { "block_key": "gotham:events_marquee", "title": "Programme", "slot": "main", "sort_order": 2, "content": { "eyebrow": "The programme", "title": "Tonight and after", "events": [ { "date": "Thu", "name": "Late Set", "room": "Main Room", "note": "Resident selectors. Slow start, long finish.", "url": "/contact" }, { "date": "Fri", "name": "The Gilt Sessions", "room": "The Brass Room", "note": "House and disco on the good system.", "url": "/contact" }, { "date": "Sat", "name": "Members' Night", "room": "Whole House", "note": "Card on the door. No list, no entry.", "url": "/contact" }, { "date": "Sun", "name": "Last Pour", "room": "The Cellar Bar", "note": "Quiet room. Records and a nightcap.", "url": "/contact" } ] } }, { "block_key": "gotham:membership_tiers", "title": "Membership", "slot": "main", "sort_order": 3, "content": { "eyebrow": "Membership", "title": "Join the house", "intro": "Two ways in. Both start at the door.", "tiers": [ { "name": "House", "price": "$40", "cadence": "/ month", "description": "The standard card. Enough for most nights.", "featured": false, "applyLabel": "Apply", "applyUrl": "/contact", "features": [ { "label": "Priority on the guest list" }, { "label": "The main room and the cellar bar" }, { "label": "Two guests a night" } ] }, { "name": "Brass", "price": "$120", "cadence": "/ month", "description": "The full card. Every room, every night.", "featured": true, "applyLabel": "Apply", "applyUrl": "/contact", "features": [ { "label": "Everything in House" }, { "label": "The Brass Room and private booths" }, { "label": "First call on bottle service" }, { "label": "Four guests a night" } ] } ] } }, { "block_key": "gotham:bottle_menu", "title": "Bottle service", "slot": "main", "sort_order": 4, "content": { "eyebrow": "The cellar", "title": "Bottle service", "footnote": "Booths hold six. Ask the host for the full list.", "sections": [ { "title": "Champagne", "items": [ { "name": "House brut", "note": "By the glass or the bottle.", "price": "$95" }, { "name": "Vintage rose", "note": "A short shelf. Ask first.", "price": "$180" } ] }, { "title": "Spirits", "items": [ { "name": "Aged rye", "note": "Neat, one large cube.", "price": "$140" }, { "name": "Single malt", "note": "Islay. Bring water.", "price": "$160" } ] } ] } }, { "block_key": "cta", "title": "Closing CTA", "slot": "cta", "sort_order": 1, "content": { "background": "band", "heading": "The list closes at nine", "text": "Send your name and party. We reply the same day.", "primaryLabel": "Request the guest list", "primaryUrl": "/contact" } } ] }, { "slug": "/about", "title": "The House", "template_key": "default", "blocks": [ { "block_key": "heading", "title": "Heading", "slot": "main", "sort_order": 1, "content": { "text": "The House", "level": 1 } }, { "block_key": "rich-text", "title": "Story", "slot": "main", "sort_order": 2, "content": { "html": "

Gotham House keeps late hours behind an unmarked door. We run four nights a week and hold the rest of the week back.

The rooms are dark by design. The bar is long. The list is short. Members come first, and their guests come with them.

" } }, { "block_key": "image", "title": "The bar", "slot": "main", "sort_order": 3, "content": { "src": "media:a1b2c3d4-0000-4000-8000-000000000002", "alt": "Warm brass-lit shelves of whisky bottles in a dim room", "caption": "The long bar. Low light, and a shelf that remembers you.", "size": "lg", "aspectRatio": "wide" } }, { "block_key": "divider", "title": "Divider", "slot": "main", "sort_order": 4, "content": { "variant": "ornament", "icon": "lucide:diamond" } }, { "block_key": "quote", "title": "Quote", "slot": "main", "sort_order": 5, "content": { "style": "block", "align": "center", "quote": "Come late. Stay later.", "attribution": "The House" } } ] }, { "slug": "/blog", "title": "The Journal", "template_key": "blog-index", "blocks": [ { "block_key": "card", "title": "Post: The Door", "slot": "main", "sort_order": 1, "content": { "layout": "vertical", "media": "media:a1b2c3d4-0000-4000-8000-000000000003", "title": "How the door works", "text": "

The list, the card and the guests. What to send and when.

", "link": "/blog/how-the-door-works", "linkLabel": "Read on" } }, { "block_key": "card", "title": "Post: A Night", "slot": "main", "sort_order": 2, "content": { "layout": "vertical", "media": "media:a1b2c3d4-0000-4000-8000-000000000004", "title": "A night at the house", "text": "

From the first pour to the last record. How the evening runs.

", "link": "/blog/a-night-at-the-house", "linkLabel": "Read on" } }, { "block_key": "card", "title": "Post: The Cellar", "slot": "main", "sort_order": 3, "content": { "layout": "vertical", "media": "media:a1b2c3d4-0000-4000-8000-000000000002", "title": "Notes from the cellar", "text": "

What we pour after midnight and why the list stays short.

", "link": "/blog/notes-from-the-cellar", "linkLabel": "Read on" } } ] }, { "slug": "/blog/how-the-door-works", "title": "How the door works", "template_key": "article", "parent_slug": "/blog", "blocks": [ { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 1, "content": { "text": "How the door works", "level": 1 } }, { "block_key": "rich-text", "title": "Body", "slot": "main", "sort_order": 2, "content": { "html": "

Send your name and party by nine. We hold the list until then and reply the same day. No name, no note, no entry.

Members lead. A guest comes on a member's word, and the member is the one who answers for them. Bring your card. The door checks it, every night, without exception.

There is a cap. Some nights it is generous. Most nights it is not. When the room is full the list closes, and the closing is final. We do not reopen it for a better story told at the rail.

The door is not a negotiation. The people who work it have seen every version of the conversation you are about to start, and they were unmoved the first time. Arrive as though you belong, and more often than not you will.

Dress for a dark room. We do not print a code, because the room prints it for us. You will know within a step whether you have read it right. When in doubt, wear less colour and better shoes.

Photographs stay in your pocket. The house is a place people come to be unseen, and that only holds if everyone keeps the same agreement. Break it once and the card goes quiet.

If you are late, you are late to the list, not to us. The night runs on its own clock and will not wait, but it does not end early either. Come when you can. The door will still be there.

Lose the card and tell us before you tell anyone else. A card in the wrong hands is a name in the wrong mouth, and we would rather cancel it over a quiet word than read about it later.

That is the whole of it. Send the name, bring the card, keep the room's secrets, and the door becomes the easiest part of the evening.

" } } ] }, { "slug": "/blog/a-night-at-the-house", "title": "A night at the house", "template_key": "article", "parent_slug": "/blog", "blocks": [ { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 1, "content": { "text": "A night at the house", "level": 1 } }, { "block_key": "rich-text", "title": "Body", "slot": "main", "sort_order": 2, "content": { "html": "

Doors open at nine. The first set starts slow, on purpose. The room is meant to be walked into, not fallen into, and the early hour belongs to the people who like it quiet.

The main room fills after eleven. That is when the residents lean into the good part of the night, and the floor stops being a place to stand and becomes a place to stay. If you came to dance, come late.

The brass room runs colder and closer. Fewer people, a shorter bar, a door within the door. It is where the house keeps its better hours for the cards that have earned them.

The cellar bar stays quiet, and that is the point. Records, low light, a bench of rye and a host who remembers what you drank last time. Conversations that would not survive the main room live down here.

Somewhere past one, the night finds its level. The people who were going to leave have left. The people who were always going to stay have found their corner. The house exhales.

We do not announce last call. The last pour arrives when the room is ready for it, poured a little slower than the ones before, and nobody has to be told what it means.

The lights do not come up so much as lean in. First the far corners, then the rail, then the floor. The house dims the evening down the way it brought it up.

Then the door, which held the list all night, holds it open instead. You leave the way you came, by a member's word, into a street that has no idea what the room behind it was doing.

Come back on a Sunday if you want to understand the place. The crowd is smaller, the records are older, and the house is most itself when almost no one is watching.

" } } ] }, { "slug": "/blog/notes-from-the-cellar", "title": "Notes from the cellar", "template_key": "article", "parent_slug": "/blog", "blocks": [ { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 1, "content": { "text": "Notes from the cellar", "level": 1 } }, { "block_key": "rich-text", "title": "Body", "slot": "main", "sort_order": 2, "content": { "html": "

The list is short by choice. A long list is a way of hiding that you do not know what you are pouring. We keep ours brief so that every bottle on it has a reason to be there.

We pour champagne by the glass, because a good glass should not require a commitment. The house brut carries most nights. The vintage rosé sits on a short shelf for the members who ask, and it does not last.

There is a bench of rye the cellar is quietly proud of. Neat, one large cube, no ceremony. If you want it drowned we will do it, but the host will remember.

The single malt is Islay, and it is not for everyone, which is exactly why we keep it. Bring water. Let it open. The cellar is a slow room, and the whisky was made by people who understood that.

Bottle service is a booth and a decision, not a display. We do not run sparklers to the floor. What arrives is what you asked for, cold, on time, and without an audience.

Ask the host what is drinking well tonight. It is the most useful sentence in the room. The list on the table is the floor of the conversation, not the ceiling.

We hold a small reserve that never makes the printed page. It goes to the cards that have been patient, on nights that have earned it, and it is offered rather than requested.

Tell the host what you are drinking and the rest follows. The cellar is built on that one exchange: a name for a glass, a preference remembered, a night made a little better than the last.

" } } ] }, { "slug": "/contact", "title": "The Door", "template_key": "contact", "blocks": [ { "block_key": "contact-form", "title": "Guest List Enquiry", "slot": "main", "sort_order": 1, "content": { "heading": "Request the guest list", "description": "Send your name, the night and the party. We reply the same day.", "submitLabel": "Send to the door", "successMessage": "Thank you. Your name is with the door. We will reply by email.", "fields": [ { "name": "name", "label": "Your name", "type": "text", "required": true, "width": "half" }, { "name": "email", "label": "Email", "type": "email", "required": true, "width": "half" }, { "name": "party", "label": "Party size", "type": "text", "required": false, "width": "half" }, { "name": "message", "label": "Which night, and any notes", "type": "textarea", "required": true, "width": "full" } ], "formConfig": { "enabled": true, "captchaEnabled": false, "targetTable": "contact_submissions" } } }, { "block_key": "hours-location", "title": "Door & Hours", "slot": "aside", "sort_order": 1, "content": { "heading": "The Door", "hours": [ { "day": "Thursday", "hours": "9pm to late" }, { "day": "Friday to Saturday", "hours": "9pm to 4am" }, { "day": "Sunday", "hours": "9pm to 2am" }, { "day": "Monday to Wednesday", "closed": true } ], "specialHoursNote": "Members' Night runs Saturday. Card on the door.", "address": "1 Vane Court\nThe Old Quarter", "phone": "+1 555 0139" } } ] }, { "slug": "/login", "title": "Members", "template_key": "auth", "blocks": [ { "block_key": "auth-form", "title": "Sign in", "slot": "main", "sort_order": 1, "content": { "default_tab": "login", "show_social": false } }, { "block_key": "text", "title": "Foot", "slot": "footer", "sort_order": 1, "content": { "text": "

Members book priority nights and private booths.

" } } ] } ], "menu_items": [ { "menu": "main", "label": "Home", "page_slug": "/", "sort_order": 1 }, { "menu": "main", "label": "The House", "page_slug": "/about", "sort_order": 2 }, { "menu": "main", "label": "The Journal", "page_slug": "/blog", "sort_order": 3 }, { "menu": "main", "label": "The Door", "page_slug": "/contact", "sort_order": 4 } ] }