next js.md

Cosmetic dentistry: company website using Next.js

Summary

A company website blueprint for cosmetic dentistry built with Next.js on Ample. Domain schema: treatments (code, name, description, session_count, price_from): whitening, veneers, bonding and aligner offerings; before_after_galleries (treatment_id, title, consent_reference, published): consented, de-identified case galleries; locations (name, address, phone, opening_hours): practice locations; financing_options (name, provider, terms_summary): payment plans presented publicly; asset_versions (version, cdn_key, published_at): versioned assets served from the CDN bucket. Public information: treatment catalog with session counts, consented case galleries, financing options, locations and hours. Kept out of scope until handling is reviewed: patient photographs without documented consent, clinical records, payment details. Case photographs are patient data; publish only with documented consent and de-identification. No health-data compliance is claimed. Technical basis verified on Next.js: a versioned, immutable-cached asset uploaded to a published bucket and served from the CDN URL alongside the app's own public HTTPS URL.

Infrastructure requirements

Prerequisites

Steps

  1. Model the cosmetic dentistry domain. Create the tables treatments, before_after_galleries, locations, financing_options, asset_versions. Whitening, veneers, bonding and aligner offerings lives in treatments; keep the sensitive classes (patient photographs without documented consent, clinical records, payment details) out of this schema.
  2. Workflow step 1. Model the public catalog as tables and render pages from them
  3. Workflow step 2. Build the site and publish versioned static assets to the CDN bucket
  4. Workflow step 3. Keep every sensitive data class out of the site; link to separate, authorized systems instead
  5. Workflow step 4. Deploy and verify the public URL and the CDN asset URL
  6. Deploy. Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
   ample deploy . --name <app-name> --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=... --env CDN_PUBLIC_URL=...
  1. Verify. Run the pattern self-test(s) from the example (/p/versioned-static-assets) and your own acceptance checks for the cosmetic dentistry workflow.
   ample logs <deployment_id> --kind build

Tested examples

Success checks

Limitations

Cost estimate

Estimated 5.00 USD per month (size prices from pricing.toml at build revision a1b8c38919e59cd035ebabaced73cf84ece24371).

Always-on monthly price of the tested sizes; apps and databases auto-pause when idle. Buckets are allocation-priced per quota and not included.

Verification evidence

Last verified: 2026-09-21T02:34:39Z