How lianbeast/hamna-henna-site works
This is an Astro portfolio and booking site for a henna artist, with a separate Supabase-backed admin area. The visitor journey is to explore the portfolio and service information, then submit a booking inquiry; administrators sign in to review inquiries and edit business settings. The README documents 3D visuals, scroll animation, theme controls, and tanpura audio, but their implementations and page assembly were not sampled. The inquiry function shown validates and logs submissions; it does not show persistence.
Main entry points: themeStore.ts Theme state · supabase.ts Supabase client · BookingInquiry.tsx Inquiry form · login.tsx Admin login
Components 26
Public portfolio
- Portfolio page
site/src/pages/index.astro - Artist story
site/src/components/About.astro - Services
site/src/components/Services.astro - Pricing
site/src/components/Pricing.astro - Work gallery
site/src/components/Portfolio.astro - Portfolio content
site/src/data/portfolio.json - Process
site/src/components/Process.astro - Testimonials
site/src/components/Testimonials.astro - Testimonial content
site/src/data/testimonials.json - FAQ accordion
site/src/components/FAQAccordion.tsx - FAQ content
site/src/data/faq.json
Interactive experience
- 3D henna scene
site/src/components - Floating toolbar
site/src/components/FloatingToolbar.tsx - Theme toggle
site/src/components/ThemeToggle.tsx - Theme state
site/src/components/themeStore.ts - Scroll state
site/src/components/scrollStore.ts - Tanpura audio
site/src/components
Booking workflow
- Inquiry form
site/src/components/BookingInquiry.tsx - Inquiry endpoint
site/netlify/functions/inquiries.ts
Admin management
- Admin login
site/src/pages/admin/login.tsx - Admin dashboard
site/src/pages/admin/dashboard.tsx - Supabase client
site/src/lib/supabase.ts
Other components
- Visitor
- Booking customer
- Administrator
- Supabase service
Connections 13
- Visitor → Portfolio page: visits
- Work gallery → Portfolio content: reads
- Testimonials → Testimonial content: reads
- FAQ accordion → FAQ content: receives items
- Floating toolbar → Theme state: toggles theme
- Theme toggle → Theme state: subscribes
- Theme state → 3D henna scene: notifies theme
- Booking customer → Inquiry form: submits details
- Inquiry form → Inquiry endpoint: POSTs inquiry
- Administrator → Admin login: signs in
- Admin login → Supabase client: authenticates
- Admin dashboard → Supabase client: reads and updates
- Supabase client → Supabase service: queries