Skip to content
Sean Marroquin
Esc
  • HomePage
  • WorkPage
  • AboutPage
  • Start a projectPage
  • How this site is builtPage
  • BlogPage
  • DownloadsPage
  • Client PortalClients
  • TerraLoopCase study
  • ListoCase study
  • The Listening RoomCase study
  • PasslineCase study
  • AccuBetsCase study
  • How this site is builtPost
  • Why every client gets a portalPost
  • Switch between light and darkAction
  • Copy my email addressAction
  • PWNTT ArcadePlay
  • Play The Deploy TrailPlay
  • Play Merge ConflictPlay

Use the arrow keys to move and Enter to open.

All work

The Listening Room

A professional website for a therapist and speaker, built so she can change her own wording and publish her own posts without calling a developer.

  • The client edits every page and publishes posts herself, in an editor built into the site.
  • Posts can be scheduled, and an invalid post fails the build instead of breaking the page.
  • The contact form has no intake option and warns visitors not to send clinical details.
  • Brand colors implemented to the guide; licensed fonts held back until licensing is confirmed.

The brief

Dominique needed a professional home on the web for her therapy and speaking work. Two things shaped every decision. She had to be able to keep it current herself, without waiting on me for a wording change. And the site had to be clear about what it is: her professional presence, not a separate therapy practice.

What I built

A Next.js site with pages for her background, therapy, and speaking, a writing section, and a contact form, hosted on Vercel.

An editor she can actually use. Keystatic runs inside the site at /keystatic. Every editable field has a plain label and help text, so she changes page wording, site settings, menu labels, and contact details, and writes posts, without touching code. Saving commits to the site's repository, so every change is versioned and can be undone. A preview mode lets her see a draft before it goes live, and a scheduled workflow publishes posts on the date she picks. She has her own short editing guide.

Content that cannot break the site. Every page and post is validated: the unit tests check each content file, and a post with invalid frontmatter fails the production build, so a mistake is caught before deploy instead of showing up as a broken page.

Getting the boundaries right

The most important work on this site was deciding what it should not do. Therapy calls to action send people to the practice where she sees clients, not to a form on her site. The contact form offers no therapy or intake option, and it tells visitors plainly not to submit confidential or clinical information. Mail is sent through Resend with safeguards against abuse.

The brand guide specifies four colors and two typefaces. The colors are implemented. The typefaces are not bundled yet, because a webfont needs its own license, and shipping one without it is not a risk a client should carry.

Result

Dominique owns the words on her website. Page copy, settings, and new posts are hers to change, and the site keeps its guardrails while she does.