Internal Reference Document

Cutler & Co Architects — Website Specification

Generated: June 2026 · Version 1.0

1. Project Overview

Business NameCutler & Co Architects
Website TypeProfessional Architecture Practice — Marketing & Lead Generation
Primary AudienceHomeowners, Property Developers, Builders
PlatformBase44 (React + Tailwind CSS + Vite)
FrameworkReact 18, React Router DOM v7, Framer Motion, TanStack Query
Deployed AsPublic web application (no login required for visitors)
Admin AccessBase44 dashboard — authenticated users only
ContactAdmin@cutlerco.com.au | 07 5598 1655
Address1/7 Traders Way, Currumbin Waters QLD 4223
Instagramhttps://www.instagram.com/cutlerco_architects/
Facebookhttps://www.facebook.com/CutlerandCoArchitects/
Calendlyhttps://calendly.com/vicky-cutlerco/call
FounderVicky Cutler — Registered Architect, 20+ Years Experience

2. Website Structure — All Pages

Primary Navigation Pages (in nav)

Home/ (main landing page)
About/About
Portfolio/Portfolio
Services/Services
Testimonials/Testimonials
Contact/Contact
FAQ/FAQ

Secondary Pages (not in main nav)

Amandaria Project/amandaria and /portfolio/amandaria
Portfolio Case Study (template)/Portfolio/:projectId
Homeowner Journey (questionnaire)/HomeownerJourney
Homeowners/Homeowners
Developers/Developers
Builders/Builders
New Build / Full Architectural Package/NewBuildPackage
Concept Design Package/ConceptDesignPackage
Drawings Only redirect/DrawingsOnly
Consult Success (post-booking)/ConsultSuccess
Payment Confirmed (post-Stripe)/PaymentConfirmed

Routing Notes

  • App.jsx is the single source of truth for all routes.
  • All pages are wrapped in the shared Layout component (navbar + footer), except where explicitly excluded.
  • pages.config.js registers auto-discovered pages. Manual routes for Amandaria, Builders, FAQ, ConsultSuccess, PaymentConfirmed, ProjectCaseStudy are defined directly in App.jsx.
  • The pagesConfig loop in App.jsx only covers auto-registered pages. New pages must be added as explicit <Route> elements.
  • Main page is controlled by mainPage: 'Home' in pages.config.js.

4. Design System

Colour Palette

Primary Brown (dark)#3D2E22 — backgrounds, text, buttons
Secondary Brown#6B5547 — body text, hover states
Beige Light#F5F1E8 — primary page background
Beige Dark#EAE4D6 — card backgrounds, alternate sections
Beige Mid#D4C9B0 — borders, dividers
Accent Gold#B8A082 — labels, borders, icons, highlights
White/Off-white#FFFFFF / white — service cards, site plan bg
Dark overlay#0D0805, #1A0F0A — hero image overlays

Typography

Primary serif (headings)font-serif — system serif stack
Body textSystem sans-serif (default browser)
Heading sizestext-7xl / text-9xl (hero) → text-5xl/6xl (page h1) → text-4xl/5xl (section h2) → text-2xl/3xl (h3)
Label/eyebrow styletext-xs uppercase tracking-[0.4em] text-[#B8A082]
Nav linkstext-sm uppercase tracking-widest
Body text sizetext-sm to text-base, leading-relaxed / leading-[1.9]

Spacing & Layout

  • Max content width: max-w-7xl (main) / max-w-5xl (forms, services) / max-w-4xl (text-focused sections)
  • Horizontal padding: px-6 lg:px-12
  • Section padding: py-24 lg:py-32 (standard) / py-32 (hero/CTA sections)
  • Grid gaps: gap-8 lg:gap-12 (standard) / gap-16 lg:gap-24 (feature sections)

Button Styles

Primary CTA (dark)bg-[#3D2E22] text-[#F5F1E8], hover bg-[#6B5547], px-8-10 py-4-5, text-sm uppercase tracking-widest, no border radius (rounded-none)
Primary CTA (gold)bg-[#B8A082] text-[#3D2E22], hover bg-[#F5F1E8] or bg-[#B89858]
Outline buttonborder border-[#3D2E22] text-[#3D2E22], hover bg-[#3D2E22] text-[#F5F1E8]
Ghost/text linktext + ArrowRight icon, border-b border-[#B8A082] on hover
Filter buttons (Portfolio)bg-white/60 → bg-[#3D2E22] text-[#F5F1E8] when active
Nav CTAborder border-[#3D2E22], px-4 py-2, hover fills bg

Card & Section Styles

Service card (Services page)border border-[#EAE4D6] bg-white, accordion expand on click, icon in gold circle border
Audience card (Home)bg-[#EAE4D6] p-10, icon + serif heading + body + underline CTA link
Info card (Contact)bg-[#EAE4D6] p-6 text-center, gold icon
Value card (About)flex gap-6, gold-bordered icon box, serif heading
Testimonial cardbg-[#EAE4D6] p-8 lg:p-10, grid with video + details
Portfolio cardaspect-[4/5] image, hover gradient overlay + 'View Case Study', text below
Trust barbg-[#3D2E22], stat + label pairs in flex row
CTA sectionbg-[#3D2E22] or bg-[#F5F1E8], centred text, serif heading, body, gold CTA button

Animations

  • Framer Motion used throughout for scroll-triggered entrance animations
  • Standard pattern: initial={{ opacity: 0, y: 20/30 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true }}
  • Hero animations: animate (not whileInView), with staggered delays 0.1–0.4s
  • Image hover: scale-105 over 700ms
  • Hero image: subtle scale-in on load (1.04 → 1.0 over 1.6s)
  • Page transitions: Framer AnimatePresence on questionnaire steps and portfolio filter changes
  • Accordion: height 0 → auto with opacity fade

5. Page-by-Page Specification

Home Page (/)

  • Section 1 — Hero: Full-screen (min-h-screen), background photo of project, brown/70 overlay. Eyebrow 'Strategists', H1 'Architectural Strategists for Profitable Projects', subheadline, two CTA buttons (Book Discovery Call → /Contact, Explore Our Process → /Services). Scroll cue ChevronDown bounce animation.
  • Section 2 — Trust Bar: Dark brown bg. Stats: '20+ Years Experience', 'Registered Architects', 'End-to-End Project Delivery'.
  • Section 3 — Who We Work With: bg-[#EAE4D6], 3-column grid. Homeowners → /HomeownerJourney, Developers → /Developers, Builders → /Builders. Each card: icon, title, description, underline CTA link.
  • Section 4 — Featured Project (Amandaria): FeaturedProject component. Header row, full 80vh hero image block linking to /portfolio/amandaria, 2-column sub-image strip, stats bar (dark brown).
  • Section 5 — Brand Video: BrandVideoSection component. Heading + Google Drive embedded video.
  • Section 6 — The Method: StickyProcessTimeline component. 6-stage sticky scroll timeline (desktop) / accordion (mobile).
  • Section 7 — Why Cutler & Co: Dark brown bg. 3 differentiators: Risk Reduction, Investment Protection, Informed Decisions.
  • Section 8 — Final CTA: 'Ready to make better decisions about your project?' → Book a Discovery Call → /Contact.

About (/About)

  • Section 1 — Hero: 2-column grid. Left: eyebrow, H1 'Cutler & Co Architects', 4 body paragraphs, 'Book a Discovery Call' CTA. Right: firm photo.
  • Section 2 — Credentials Bar: Dark brown bg. 4 items: Founded, Experience, Specialisation, Location.
  • Section 3 — Founder: 2-column. Left: eyebrow 'Founder', H2 'Vicky Cutler', italic quote + 2 body paragraphs. Right: Vicky Cutler portrait photo.
  • Section 4 — Values (bg-[#EAE4D6]): 4 values in 2-column grid. Each: icon in gold-bordered box + title + description. Values: Strategy Before Design, Investment Thinking, Honest Advice, Local Knowledge.
  • Section 5 — CTA (dark brown): 'Let's talk about your project.' → Book a Discovery Call.

Portfolio (/Portfolio)

  • Section 1 — Hero: Centred. Eyebrow 'Our Work', H1 'Portfolio', tagline.
  • Section 2 — Category Filters: 4 buttons: All Projects (11), Completed (6), Under Construction (2), Upcoming (3).
  • Section 3 — Projects Grid: 3-column responsive grid. Each card: aspect-[4/5] image, hover overlay with 'View Case Study', status badge (top right), title, location, summary, up to 2 outcomes. Click → /Portfolio/:projectId.
  • Section 4 — CTA: 'Ready to Create Something Exceptional?' → Start Your Project → /Contact.
  • 11 projects total: Archer Street, Worongary, Main Ridge, Red Hill South, Elwood, Malvern (all Completed), Currumbin Waters, Palm Beach Estate (Under Construction), Byron Bay, Noosa Heads, Surfers Paradise Tower (Upcoming).

Services (/Services)

  • Section 1 — Hero: 'What We Offer', H1 'Our Services', description.
  • Section 2 — Project Journey bar: horizontal clickable stage navigator for first 6 services.
  • Section 3 — Services Accordion: 10 services, each expandable: What's Included, Key Deliverables, Typical Suitability, Client Benefits.
  • Services: Strategy & Feasibility, Pre-Design, Concept Design, Design Development, Development Approval (DA), Construction Documentation, Consultant Coordination, Construction Support, Interior Design, Project Advisory.
  • Section 4 — Why Choose Us (dark brown): 3 points: 20+ Years, Strategic Approach, Client-Centred.

Testimonials (/Testimonials)

  • Hero: H1 'Client Testimonials', subheadline.
  • Grid: alternating left/right video + details panels. Video placeholder shown when videoUrl empty.
  • Currently 1 populated testimonial: Clarissa and Silvan, Currumbin Waters, Internal House Renovation.
  • 9 placeholder slots ready for future video testimonials.
  • Each entry: client name, location, project, services provided.

Contact (/Contact)

  • Hero: H1 'Get In Touch', subheadline.
  • Info cards (3): Visit Us (by appointment), Call Us, Email Us.
  • Contact form: Name*, Email*, Phone, Project Type, Message*. On submit → sendEmail backend function → Admin@cutlerco.com.au. Success toast message shown for 5s.

FAQ (/FAQ)

  • Hero: Eyebrow 'Support', H1 'Frequently Asked Questions'.
  • 9 FAQ categories, accordion items per category.
  • Categories: Getting Started, Design & Drawings, Timeframes & Scheduling, Fees & Payments, Project Progress & Payments, Approvals & Consultants, Communication & Project Management, Construction, Project Changes & Pausing, Why Work With an Architect?, Final Questions.
  • ~35 total Q&A items. Each item: serif question, animated height expand, body answer (some with nested lists).

Homeowner Journey (/HomeownerJourney)

  • Full-screen questionnaire flow. Back button → /Home.
  • One step: 'What are you looking for?' with 2 cards:
  • A. 'I just need plans drawn up' → /DrawingsOnly
  • B. 'I want to maximise my home's potential' → /NewBuildPackage
  • AnimatePresence transitions between steps.

Drawings Only (/DrawingsOnly)

  • Explains the firm doesn't offer basic drafting-only services.
  • Presents Concept Design Package as alternative.
  • Features checklist of what Concept Design includes.
  • CTA: 'See the Concept Design Package' → /ConceptDesignPackage.
  • Closing: recommends a draftsperson if they strictly want drawings only.

New Build / Full Architectural Services (/NewBuildPackage)

  • Positioned as full-service architectural engagement.
  • Two-column grid: 'This is for you' / 'This is not for you' checklists.
  • 'How We Work' process list.
  • CTA: 'Enquire About Your Project' → opens LeadCaptureModal.
  • selectedPackage: { title: 'Full Architectural Services' }

Concept Design Package (/ConceptDesignPackage)

  • Package card: dark brown bg, features list (1hr meeting, up to 3 concept floor plan options, 1hr presentation, high-level cost guidance). Turnaround: 2–3 weeks.
  • Note: CAD files assumed available; site measure $1,000+GST if not.
  • CTA: 'Enquire Now' → LeadCaptureModal.
  • selectedPackage: { title: 'Concept Design Package' }

Homeowners (/Homeowners)

  • Dark brown hero with H1 'Services for Homeowners'.
  • 3 service cards: Custom Home Design, Renovations & Extensions, Interior Design.
  • Portfolio preview CTA → /Portfolio.
  • Service packages CTA → /Services.
  • Final CTA (dark brown) → /Contact.

Developers (/Developers)

  • Hero: 'For Developers', H1 'Services for Developers'.
  • 3 service cards: Commercial Design, Development Consulting, Feasibility Studies.
  • 2-column 'Your Development Partner' section with benefits list.
  • Portfolio CTA → /Portfolio.
  • Final CTA → /Contact.

Builders (/Builders)

  • Marketing page for construction professionals.
  • Value propositions, service workflow, lead-capture modal.
  • Email submission via base44.functions.invoke('sendEmail').

Consult Success (/ConsultSuccess)

  • Post-Calendly booking confirmation page.
  • Retrieves form data from sessionStorage.
  • Triggers Stripe checkout via createCheckout backend function.
  • Consultation fee: $350 + GST = $385 AUD total.
  • Redirects to Stripe checkout URL.

Payment Confirmed (/PaymentConfirmed)

  • Post-Stripe payment success page.
  • Animated checkmark, confirmation message.
  • CTA: Return to homepage.

6. Portfolio System

Portfolio Data Structure (pages/Portfolio.jsx)

  • Each project object: id, title, type, location, category (completed/under-construction/upcoming), image (primary), summary, outcomes (array), brief, challenge, solution, outcome, images (array).
  • 11 projects in static data array.
  • Categories: completed (6), under-construction (2), upcoming (3).

Project Case Study Template (/Portfolio/:projectId)

  • Reads :projectId from URL, looks up project from hardcoded data.
  • Sections: hero image, project overview table, brief/challenge/solution, outcomes, image gallery.
  • Back link to /Portfolio.

Featured Project (Home Page)

  • Component: components/FeaturedProject.jsx
  • Shows Amandaria as flagship case study.
  • 80vh hero image, subtitle, 'View Project' CTA button.
  • 2-column sub-image strip (pool terrace + restaurant images).
  • Stats strip (dark brown): Project Value $4.6M, On Budget, 26 Months, 820m², 4.2 Hectares.
  • All links → /portfolio/amandaria

7. Amandaria Showcase Page

Routes

Accessible at both /amandaria and /portfolio/amandaria. Both routes render the same component without double-wrapping the Layout.

Image Assets (21 photographs)

All images hosted at media.base44.com/images/public/69fa6cf3b8e8f638d3419eac/

  • hero1 — main hero (pool + pavilion structure)
  • hero2 — aerial/wide shot of retreat
  • poolSunset — infinity pool at golden hour
  • poolAerial — cascading pool levels
  • villa1, villa2 — guest villa exteriors
  • pavilion1, pavilion2 — bamboo pavilion and elevated walkway
  • restaurant1, restaurant2 — restaurant pavilion interior/exterior
  • bedroom — master suite
  • bathroom — outdoor bathroom
  • tower — sky tower
  • lounge — open lounge pavilion
  • poolDeck — private pool deck
  • interiorSuite — suite interior (sculptural ceiling)
  • lobby1, lobby2 — arrival lobby
  • spa1 — rain curtain chamber
  • spa2 — spa entry
  • sitePlan — architectural site plan 1:1500

Page Sections (in order)

1. HeroFull screen (h-screen). Background hero1. Gradient overlay. Back link to /Portfolio (top left). Large serif title 'Amandaria' (text-[11rem]). Subtitle italic. 4 metadata tags.
2. Intro Statementbg-[#3D2E22]. Centred italic serif quote.
3. Project Overview2-column: left = project data table (9 rows), right = image grid (hero2 + villa1 + villa2) + 2-paragraph description.
4. Full Bleed Image70-100vh. poolSunset image. Gradient overlay. Caption bottom-left.
5. Design Narrativebg-[#EAE4D6]. 2-col header (heading + text), 2-row image collage (pavilions + restaurant), 2-col body text.
6. Site Planning & Masterplanbg-[#F5F1E8]. NEW SECTION (SitePlanSection component). 2-col: sticky text left (heading + 3 paras + 4-row spec table), site plan image right (clickable lightbox).
7. Gallery Grid16-image interactive gallery in 5 rows. Clicking any image opens Lightbox with prev/next navigation and dot indicators.
8. Full Bleed Spa60-80vh. spa1 image. Left-side text overlay: 'Carved from the hillside.' paragraph.
9. Design Highlightsbg-[#F5F1E8]. 6 cards in 3-column grid (numbered 01–06): Architectural Design, Interior Experience, Material Selection, Site Response, Sustainability, Construction Outcomes.
10. Final Image Pair2-column: tower + spa2 at 50-65vh each.
11. CTAbg-[#3D2E22]. 'Every exceptional project begins with a conversation.' Two buttons: Book a Consultation → /Contact, View All Projects → /Portfolio.
LightboxFixed overlay. Prev/next arrows, X close, dot progress bar, caption.

Site Planning Section Component (components/amandaria/SitePlanSection.jsx)

  • Site plan URL: https://media.base44.com/images/public/69fa6cf3b8e8f638d3419eac/1b29fd73d_image.png
  • Left column (340px sticky): heading, 3 body paragraphs, 4-row spec table (Scale 1:1500, Site Area 4.2 Hectares, Key Structures 7 Pavilions, Circulation Raised Timber Walkways).
  • Right column: site plan image in white-bg card with shadow. Hover shows 'View Full Screen' overlay with ZoomIn icon.
  • Click opens SitePlanLightbox: black/95 fullscreen overlay, max-w-7xl image, close button, caption.

Gallery Configuration

  • galleryImages array: 16 images with captions.
  • Row 1: 3 equal squares (indices 0,1,2).
  • Row 2: 1 wide (col-span-2) + 1 normal, aspect-[16/7].
  • Row 3: 4 equal squares (indices 5–8).
  • Row 4: 3 x aspect-[4/3] (indices 9–11).
  • Row 5: 1 + 2 x aspect-[4/3] (indices 12–14).
  • Note: galleryImages[15] = spa2 (index 15) is in gallery; spa1 is used for the full-bleed spa section.

8. Key Components

Layout (Layout.jsx)

  • Shared wrapper for all pages.
  • Renders: sticky navbar, BookConsultModal, main content (pt-24), footer.
  • Manages: scroll state (scrolled), mobile menu open state, consult modal open state.
  • Social links in footer: Instagram + Facebook.

BookConsultModal (components/BookConsultModal.jsx)

  • Shadcn Dialog component.
  • Form fields: Full Name*, Email*, Phone, Project Location, Project Type (select), Budget Range (select), Brief Description.
  • On submit: saves form to sessionStorage as 'consultForm', redirects to Calendly with name+email prefilled.
  • Calendly URL: https://calendly.com/vicky-cutlerco/call
  • Consultation fee note: $350 + GST ($385 total).

StickyProcessTimeline (components/StickyProcessTimeline.jsx)

  • 6 process stages with metadata (Why it matters, Risk, Value, Outcome).
  • Desktop: full-screen sticky scroll, syncs active step with scroll progress.
  • Mobile: accordion-style expand/collapse.
  • Exported as wrapper component choosing desktop or mobile based on screen size.

BrandVideoSection (components/BrandVideoSection.jsx)

  • Branded section with firm name heading, decorative divider.
  • Embeds Google Drive video in responsive 16:9 container.
  • Scroll-triggered Framer Motion fade/slide animations.

FeaturedProject (components/FeaturedProject.jsx)

  • Section header with 'Featured Project' eyebrow and link to case study.
  • 80vh hero image (hero1) with gradient overlay and title overlay.
  • 2-column sub-image strip (secondary + tertiary Amandaria photos).
  • Stats strip: $4.6M, On Budget, 26 Months, 820m², 4.2 Hectares.

LeadCaptureModal (components/services/LeadCaptureModal.jsx)

  • Used on NewBuildPackage and ConceptDesignPackage pages.
  • Captures lead details: name, email, project type, budget, location, package_requested.
  • Saves to ServiceLead entity in database.
  • Sends email notification to Admin@cutlerco.com.au.

ProjectCaseStudy (pages/ProjectCaseStudy.jsx)

  • Template for /Portfolio/:projectId routes.
  • Reads projectId from URL, matches against hardcoded project array.
  • Renders: hero, overview, brief/challenge/solution/outcome, image gallery.

9. Backend & Technical Architecture

Platform

PlatformBase44 (BaaS — Backend as a Service)
FrontendReact 18 + Vite + Tailwind CSS
RoutingReact Router DOM v7
Data fetchingTanStack React Query v5
AnimationsFramer Motion v12
IconsLucide React v0.475

Backend Functions (functions/ directory)

sendEmailPOST handler. Params: { to, subject, body }. Uses Resend API (RESEND_API_KEY). From: 'Cutler & Co <onboarding@resend.dev>'. Used by: Contact form, Builders inquiry, LeadCaptureModal.
createCheckoutPOST handler. Params: { name, email, phone, location, project_type, budget, description, success_url, cancel_url }. Creates Stripe session. Product: 'Initial Design Consultation'. Amount: $385 AUD (38500 cents). Mode: payment. Metadata includes base44_app_id.
createAutomationUtility function for automation management.

Environment Variables / Secrets

STRIPE_SECRET_KEYStripe secret key for checkout session creation
STRIPE_PUBLISHABLE_KEYStripe publishable key (frontend, not currently used directly)
RESEND_API_KEYResend email API key for transactional emails
BASE44_APP_IDAuto-populated by Base44 platform

Database Entities

ServiceLeadStores enquiries from LeadCaptureModal. Fields: name* (string), email* (string), project_type* (enum: renovation/new_build/makeover/extension/interior_design/other), budget* (enum: under_50k/50k_100k/100k_250k/250k_500k/500k_plus), location* (string), package_requested* (string). Built-in: id, created_date, updated_date, created_by_id.
User (built-in)Base44 platform User entity. Fields: id, email, full_name, role (admin/user). Used for admin dashboard access.

Third-party Integrations

StripePayment processing. Currency: AUD. Product: Initial Design Consultation $385 inc. GST. Test mode (sandbox). Claim via Dashboard > Integrations.
ResendTransactional email delivery. From domain: resend.dev (default). Upgrade to custom domain recommended.
CalendlyExternal appointment scheduling. URL: https://calendly.com/vicky-cutlerco/call. Prefills name+email from form. No API integration — redirect only.
Google DriveBrand video embed. No API — direct iframe embed.

Automations

  • No active automations currently configured.
  • createAutomation backend function exists as infrastructure.
  • Potential future: ServiceLead entity automation to send email notification on new lead creation.

10. Forms & Lead Capture

Contact Form (pages/Contact.jsx)

FieldsFull Name (required), Email (required), Phone, Project Type (text input), Message (required)
SubmissionCalls sendEmail backend function
RecipientAdmin@cutlerco.com.au
SuccessGold banner message for 5 seconds
No database storageEmail only — not saved to entity

Book a Consult Modal (components/BookConsultModal.jsx)

FieldsFull Name (required), Email (required), Phone, Project Location, Project Type (select), Budget Range (select), Brief Description
SubmissionSaves to sessionStorage as 'consultForm', redirects to Calendly
Post-Calendly→ /ConsultSuccess → Stripe checkout → /PaymentConfirmed
Fee$350 + GST = $385 AUD total
No database storage at form stepData passed via Stripe metadata

Lead Capture Modal (components/services/LeadCaptureModal.jsx)

FieldsName, Email, Project Type, Budget, Location, Package Requested (pre-filled from page)
SubmissionCreates ServiceLead entity record + sends email to Admin@cutlerco.com.au
DatabaseServiceLead entity
Used on/NewBuildPackage and /ConceptDesignPackage

11. Brand & Visual Identity

Logo

  • Text-based logo — no image file.
  • Line 1: 'Cutler & Co' — font-serif, text-2xl md:text-3xl, tracking-tight.
  • Line 2: 'ARCHITECTS' — font-serif, text-sm md:text-base, uppercase, tracking-[0.3em], color #6B5547.
  • In footer: same treatment on dark background, 'ARCHITECTS' in #B8A082.
  • Navigation: #3D2E22 on light bg, white on dark backgrounds.

Brand Voice

  • Tone: Strategic, confident, expert, honest, premium.
  • Not: Salesy, generic, fluffy.
  • Key phrases: 'Architectural Strategists', 'Profitable Projects', 'Discovery Call', 'not just an architect — your strategic advisor'.
  • Target: Affluent homeowners, developers, builders seeking ROI-focused architecture.

Photography Style

  • High-resolution, editorial quality.
  • Warm, natural light.
  • Architectural/interior photography with human scale implied.
  • Amandaria: tropical hinterland, bamboo, timber, stone, water, mist.
  • Overlay treatment: brown gradients (#3D2E22/70 down to transparent) to maintain text legibility.

Social Media

  • Instagram: @cutlerco_architects — https://www.instagram.com/cutlerco_architects/
  • Facebook: CutlerandCoArchitects — https://www.facebook.com/CutlerandCoArchitects/

12. Rebuild Reference Guide

Critical Files

App.jsxAll routes. Must include explicit <Route> for every page. Outer LayoutWrapper wraps all — do NOT double-wrap.
Layout.jsxShared navbar + footer. Manages scroll, mobile menu, consult modal state.
pages.config.jsAuto-discovered page registry. Controls mainPage. Do not add manual routes here.
index.cssTailwind base + shadcn CSS variables. Do not remove.
tailwind.config.jsTailwind theme extension. Includes shadcn colour tokens.

Routing Rules

  • Outer LayoutWrapper at line ~58 of App.jsx wraps ALL routes with the shared Layout.
  • Do NOT add inner LayoutWrapper to individual routes — this creates double footer/header.
  • Exception: some routes intentionally render without the outer wrapper (check App.jsx for pattern).
  • New pages: add import at top of App.jsx, add <Route path='/path' element={<PageComponent />} /> inside the <Routes> block.
  • /amandaria and /portfolio/amandaria both render <Amandaria /> — no LayoutWrapper needed since outer wrapper handles it.

Backend Function Pattern

  • All functions: Deno.serve(async (req) => { ... })
  • Import SDK: import { createClientFromRequest } from 'npm:@base44/sdk@0.8.31'
  • Call from frontend: await base44.functions.invoke('functionName', params)
  • Response structure: { data: ..., status: ..., headers: ... } — actual return value is in response.data

Design Token Quick Reference

bg-[#F5F1E8]Primary page background (warm beige)
bg-[#EAE4D6]Secondary/card background (slightly darker beige)
bg-[#3D2E22]Dark sections, navbar filled, CTA sections, footer
text-[#3D2E22]Primary headings and dark body text
text-[#6B5547]Body text, secondary content
text-[#B8A082]Gold — labels, icons, accents, borders
border-[#B8A082]Gold borders on active states, decorative dividers
border-[#D4C9B0]Subtle table/section dividers

Page Creation Checklist

  • 1. Create file in pages/ directory (e.g. pages/MyPage.jsx)
  • 2. Export default function with same name as file
  • 3. Add import to App.jsx: import MyPage from './pages/MyPage'
  • 4. Add Route to App.jsx: <Route path='/my-page' element={<MyPage />} />
  • 5. If auto-discovered via pagesConfig, also update pages.config.js
  • 6. Add nav link in Layout.jsx navItems array if needed
  • 7. Test that Layout (navbar + footer) appears correctly — no double rendering

Cutler & Co Architects — Website Specification Document · Generated June 2026 · Confidential

This document is auto-generated from the live codebase and reflects the site as built at the time of generation.