Skip to content
codexa

Websites · React

Family dental clinic

Calm dental clinic site with treatments, a clear private price list, the clinical team and appointment requests.

Family dental clinic starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

A one-page site for a dental practice: treatments, a private price list, the dentists and hygienists, common questions, opening hours and an appointment request form. All content lives in src/site.ts.

Files

Exactly what is copied into a new project: 13 files, nothing generated.

Raw data: GET /api/v1/templates/site-dental-clinic

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Brightwater Dental",  "nav": [    {      "label": "Treatments",      "href": "#treatments"    },    {      "label": "Prices",      "href": "#prices"    },    {      "label": "Team",      "href": "#team"    },    {      "label": "FAQ",      "href": "#faq"    }  ],  "navCta": {    "label": "Book an appointment",    "href": "#contact"  },  "sections": [    {      "kind": "hero",      "variant": "split",      "eyebrow": "Family dentistry · Chapel Allerton, Leeds",      "title": "Unhurried dental care for the whole family.",      "text": "Thirty-minute check-ups, dentists who explain before they treat, and a written estimate before any work begins.",      "primary": {        "label": "Book a check-up",        "href": "#contact"      },      "secondary": {        "label": "See our prices",        "href": "#prices"      },      "visual": {        "type": "mock",        "title": "Openings this week",        "rows": [          {            "label": "Tuesday · 8:30 am",            "value": "Check-up"          },          {            "label": "Wednesday · 1:15 pm",            "value": "Hygienist"          },          {            "label": "Thursday · 5:40 pm",            "value": "Check-up"          },          {            "label": "Friday · 9:00 am",            "value": "Emergency",            "tone": "#b45309"          }        ],        "footer": "Two emergency slots are kept free every weekday morning."      },      "note": "Accepting new adult and child patients. Step-free access and a ground-floor surgery."    },    {      "kind": "features",      "id": "treatments",      "eyebrow": "Treatments",      "title": "Everything most families need, under one roof",      "text": "If something needs a specialist, we refer you to someone we trust and send your notes ahead.",      "items": [        {          "title": "Check-ups & hygiene",          "text": "A full exam, gum health check and a scale and polish with our hygienists.",          "icon": "shield"        },        {          "title": "Children's dentistry",          "text": "Short, gentle visits from the first tooth. We let kids ride the chair first.",          "icon": "heart"        },        {          "title": "White fillings",          "text": "Tooth-coloured composite fillings, matched to your shade and done in one visit.",          "icon": "check"        },        {          "title": "Clear aligners",          "text": "Straighten mild crowding over 6 to 12 months with removable trays.",          "icon": "star"        },        {          "title": "Crowns & implants",          "text": "Planned with a 3D scan, made by a dental lab 10 minutes from the practice.",          "icon": "wrench"        },        {          "title": "Same-day emergencies",          "text": "Toothache or a broken tooth? Call before 10 am and we will see you today.",          "icon": "clock"        }      ]    },    {      "kind": "menu",      "id": "prices",      "eyebrow": "Private prices",      "title": "Prices, written down",      "text": "You will always get a written treatment plan with costs before we start.",      "groups": [        {          "name": "Routine care",          "items": [            {              "name": "New patient exam",              "text": "Includes X-rays if needed",              "price": "£75"            },            {              "name": "Check-up",              "text": "Existing patients",              "price": "£52"            },            {              "name": "Hygienist visit",              "text": "30 minutes",              "price": "£68"            },            {              "name": "Child check-up",              "text": "Under 16",              "price": "£30"            }          ]        },        {          "name": "Treatment",          "items": [            {              "name": "White filling",              "text": "Per tooth, from",              "price": "£120"            },            {              "name": "Root canal, front tooth",              "price": "£420"            },            {              "name": "Porcelain crown",              "price": "£680"            },            {              "name": "Single implant",              "text": "Including crown, from",              "price": "£2,450"            }          ]        }      ]    },    {      "kind": "team",      "id": "team",      "eyebrow": "Team",      "title": "The people you will see",      "items": [        {          "name": "Dr Helen Okafor",          "role": "Principal dentist",          "tone": "#0c4a6e"        },        {          "name": "Dr James Whitley",          "role": "Dentist, implants",          "tone": "#334155"        },        {          "name": "Aisha Rahman",          "role": "Dental hygienist",          "tone": "#155e75"        },        {          "name": "Lucy Pearson",          "role": "Practice manager",          "tone": "#57534e"        }      ]    },    {      "kind": "faq",      "id": "faq",      "eyebrow": "FAQ",      "title": "Before your first visit",      "items": [        {          "q": "Do you see nervous patients?",          "a": "Often. Tell us when you book and we will give you a longer first appointment, explain each step and agree a stop signal."        },        {          "q": "Can I spread the cost of treatment?",          "a": "Treatment over £500 can be paid in up to six monthly instalments with no interest. Ask at reception."        },        {          "q": "What if I need to cancel?",          "a": "Please give us 24 hours' notice so we can offer the slot to someone else. Late cancellations may be charged £25."        },        {          "q": "Is there parking?",          "a": "There are four patient spaces behind the practice and free two-hour street parking on Harrogate Road."        }      ]    },    {      "kind": "hours",      "id": "visit",      "eyebrow": "Visit",      "title": "Opening hours",      "text": "Late evenings on Tuesday and Thursday for school and work schedules.",      "rows": [        {          "day": "Monday, Wednesday, Friday",          "time": "8:00 – 17:00"        },        {          "day": "Tuesday, Thursday",          "time": "8:00 – 19:30"        },        {          "day": "Saturday",          "time": "9:00 – 13:00"        },        {          "day": "Sunday",          "time": "Closed"        }      ],      "address": "18 Stainbeck Lane, Leeds LS7 3PJ",      "phone": "0113 496 0712",      "email": "reception@brightwaterdental.co.uk"    },    {      "kind": "contact",      "eyebrow": "Appointments",      "title": "Request an appointment",      "text": "Tell us a preferred day and we will call you back within one working day to confirm a time.",      "fields": [        "name",        "phone",        "email",        "date",        "message"      ],      "button": "Request appointment"    }  ],  "footer": {    "text": "Family and private dentistry in Chapel Allerton.",    "columns": [      {        "title": "Practice",        "links": [          "18 Stainbeck Lane",          "0113 496 0712"        ]      },      {        "title": "Patients",        "links": [          "Price list",          "Payment plans",          "Emergency care"        ]      },      {        "title": "About",        "links": [          "Our team",          "Accessibility"        ]      }    ],    "legal": "© Brightwater Dental. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Family dental clinic's files. The box is already started for you: finish “Start from Family dental clinic and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates

Build on Family dental clinic

Create a free account, start from this template, and ask the AI agent to turn it into your app.