A calm, accessible, and privacy-conscious website for an independent therapist or small private practice. The current demo is configured for Stephanie Traver, LCSW and is designed to make the path from learning about the therapist to requesting a consultation clear and low-pressure.
This project is a static-first Next.js website with editorial typography, responsive layouts, a consultation inquiry flow, and visible placeholders for facts that must be approved before launch.
The site intentionally avoids collecting clinical details. It has no database, authentication, analytics, advertising trackers, or application-managed cookies.
/- introduction, audience, therapeutic approach, and primary call to action/approach- client-centered, strength-based, attachment-informed, trauma-focused, CBT, and solution-focused frameworks/services- service format, scheduling, fees, insurance, and accessibility placeholders/faq- accessible accordion covering the inquiry and consultation process/contact- thin inquiry form with a static consultation calendar prototype/privacy- privacy and cookie notice for the current static demo
- Responsive editorial design for desktop, tablet, and mobile
- Accessible navigation, forms, focus states, and FAQ accordion
- Static date and time preference picker inspired by a booking workflow
- Client-side Zod validation
- Email handoff through the visitor's own email application
- No backend or inquiry database
- No analytics, advertising pixels, or non-essential cookies
- Reduced-motion support
- Visible
[TO CONFIRM]markers for unverified practice information - Vercel-ready production build
The inquiry form asks only for:
- Name
- Email address
- Preferred contact method
- Preferred consultation date and time
It does not ask visitors to describe symptoms, diagnoses, treatment history, or reasons for seeking therapy. Selecting Continue in email prepares a draft in the visitor's email application; the website itself does not transmit or persist the entered information.
This is a design and workflow choice, not a substitute for legal, privacy, or clinical-compliance review.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- Zod
- Lucide icons
Requirements:
- Node.js 20.9 or newer
- npm
git clone https://github.com/ytsej/therapist-practice-website.git
cd therapist-practice-website
npm installCreate the local environment file:
Copy-Item .env.example .env.localOn macOS or Linux:
cp .env.example .env.localSet the approved public practice email:
NEXT_PUBLIC_CONTACT_EMAIL=hello@example.comStart the development server:
npm run devOpen http://localhost:3000.
npm run dev # Start the local development server
npm run build # Create a production build
npm run start # Run the production server
npm run lint # Run ESLint
npm run typecheck # Run TypeScript without emitting filesKey files:
src/lib/site.ts- site name, description, and navigationsrc/app/page.tsx- home-page contentsrc/app/approach/page.tsx- therapeutic approach contentsrc/app/services/page.tsx- services and logisticssrc/app/faq/page.tsx- FAQ contentsrc/app/contact/page.tsx- static sample availabilitysrc/app/privacy/page.tsx- privacy and cookie noticesrc/app/globals.css- design tokens, typography, layouts, and responsive stylespublic/quiet-leaves.png- decorative hero image
Before publishing a customized version, replace every [TO CONFIRM] item with information verified by the therapist. The full review list is in CONTENT-CHECKLIST.md.
Do not publish unverified claims about:
- Licensure or service states
- Credentials, education, or experience
- Client groups or specialties
- Rates or insurance participation
- Availability or session format
- Clinical outcomes or effectiveness
- Emergency or crisis instructions
Do not add fabricated testimonials. Avoid collecting clinical or health information through a general website form without an appropriate privacy and compliance workflow.
The project can be deployed directly to Vercel:
- Import the GitHub repository into Vercel.
- Add
NEXT_PUBLIC_CONTACT_EMAILin the project environment variables. - Run the default Next.js build.
- Review all
[TO CONFIRM]content before assigning the production domain.
The consultation calendar currently shows sample availability generated at build time. It is not connected to a live calendar and does not reserve appointments.
This repository is a static website demo and starting point. It is not a clinical record system, scheduling platform, patient portal, or emergency-support service.
No software license has been selected for this repository.
