
Velvet
A clinic site as calm as a candle-lit treatment room.
A candle-lit hero over a silk horizon, treatment pages with downtime and from prices, practitioners with credentials, results with before and after sliders and consent notes, memberships, consultations with a deposit, gift cards, a skin journal and a visit page with a map. Lighthouse 100 out of the box.
- Lighthouse 100
- Astro 7 · Tailwind v4
- Dark + light
- v1.0.1 · updated 24 October 2026
12 pages, all designed.
Not just a homepage: every page a aesthetics clinic site needs. Open any of them in the demo.
Home in the live demo (opens in a new tab)/
Treatments in the live demo (opens in a new tab)/treatments
Treatment page in the live demo (opens in a new tab)/treatments/[slug]
Results in the live demo (opens in a new tab)/results
Results page in the live demo (opens in a new tab)/results/[slug]
Practitioners in the live demo (opens in a new tab)/practitioners
Practitioners page in the live demo (opens in a new tab)/practitioners/[slug]
Prices in the live demo (opens in a new tab)/prices
Journal in the live demo (opens in a new tab)/journal
Journal post in the live demo (opens in a new tab)/journal/[slug]
Visit in the live demo (opens in a new tab)/visit
404 with a game in the live demo (opens in a new tab)/404
Even the 404 is fun.
Lost visitors get a game instead of a dead end. This is the real one from Velvet's 404 page: give it a go.
Tab to a pearl · arrows to move it (Shift for small steps)
Built right, down to the details.
Lighthouse 100, all four
Measured on every page of the demo, on phones and desktops, before each release.
Dark + light
Opens in the dark theme, with a toggle for light. Every color passes WCAG AA in both.
Wired for your stack
Each one switches on with a key in .env. Until then the site works and says how to turn it on.
- AI chat
- ClaudeOpenAI
- analytics
- PlausibleUmamiGoogle AnalyticsPostHog
- booking
- Cal.com
- media
- Cloudinary
- CMS
- KeystaticSanityEmDash
- Resend
- payments
- Lemon SqueezyStripe
- search
- Algolia
- sign-ups
- SupabaseMailchimp
Your AI agent knows Velvet
AGENTS.md, CLAUDE.md and Cursor rules explain how the site is built. The WPTom MCP server goes further: Cursor, Claude Code, VS Code, PhpStorm and the other JetBrains IDEs, Codex or OpenCode look up what they need instead of guessing, so their edits fit the first time.
- Every componentprops and docs of all 40, from your project
- Your versionwhich template, version and variant, and when an update is out
- The docssearches docs.wptom.com while it works
$ npx -y wptom mcpContent where you want it
Journal, legal pages, practitioners, results and treatments and every text are typed content, edited in Keystatic, Sanity or EmDash. Pick EmDash with --cms emdash.
Updates keep your edits
npx wptom update merges each new version around your changes, line by line, and marks the rare conflict.
Ready for more languages
Ships in English. Add a language in one file and translate the content: Velvet adds the language switcher, hreflang links and a sitemap per language, and Keystatic, Sanity and EmDash follow.
Search built in
Press ⌘K and search every page, journal, practitioners, results and treatments included, with no service to set up. Switch to Algolia when you outgrow it.
Make it yours in minutes.
One file holds your brand: three colors, fonts, corners. Every shade for both themes comes from it, and the build stops if a color would be hard to read.
Try accents in the preview above, or live in the demo (opens in a new tab).
$ npx wptom new my-site -t velvet ◇ Where should the content live? Files, Sanity or EmDash ✓ Created my-site from velvet@1.0.1 # src/content/singletons/brand.json "accent": "#d4b483" $ npm run dev
Under the hood
- Framework
- Astro 7, zero JS by default
- Styling
- Tailwind CSS v4, design tokens
- Language
- TypeScript, strict mode
- Pages
- 12 pages, 40 components
- Content
- Markdown and JSON, edited in Keystatic, Sanity or EmDash
- Hosting
- Vercel, Cloudflare (EmDash)
- Accessibility
- WCAG AA in both themes
- AI
- AGENTS.md, CLAUDE.md, Cursor rules, llms.txt
- Updates
- npx wptom update, keeps your edits
- License
- Commercial, unlimited projects incl. clients
Actively maintained
Full changelog →Velvet
Update your site with npx wptom update- 1.0.124 October 2026
- EmDash: the site's name and tagline are in Settings; the navigation, footer links and social profiles in Menus; search titles and descriptions in each page's SEO panel.
- EmDash: Live View and preview links open the right page, and signed-in editors get an Edit button on the site.
- EmDash: pages are cached at Cloudflare's edge and refresh within seconds of publishing; EmDash 1.3.1.
- 1.0.021 October 2026
- Initial release.
WPTom CLI
Always the latest with npx wptom- 0.3.214 October 2026
wptom mcp: an MCP server for AI assistants (Cursor, VS Code, Claude Code, JetBrains IDEs, Codex, OpenCode) with the docs, your template and version, and every component with its propswptom listcounts templates correctly ("1 template")- The WPTom wordmark in the terminal
- 0.2.014 October 2026
wptom new --cmspicks where the content lives (files, Sanity or EmDash), andwptom updatekeeps that choice
- 0.1.113 October 2026
- The package is checked for internal content before every release
Get Velvet
An original site in this spirit, built and looked after by me.
A site like Velvet, made for you
$8.25 / month
Billed yearly ($99). An original for your business, with Velvet as the starting point. You see it before you pay.
Get a site like this- An original design, made for your business and nobody else
- Your texts, photos, opening hours and prices put in for you
- Hosting on a fast global network, HTTPS included
- A domain registered for you, first year included (or connect yours, or a free yourname.wptom.page address)
- Your own editor (EmDash) to change texts, photos, prices and posts yourself
- A new look or new features whenever you need them, built by me and included
- Updates, backups and security, handled
- A contact form, a map and search engine basics

Website questions
What does it cost?
$99 a year, which comes to $8.25 a month. That covers the design, setup, hosting, the first year of a new domain, your own editor, and design changes and new features built by me. Tomáš Šrámek is not a VAT payer, so there is no tax on top.
When do I pay?
Once you have seen your site and it is right for you. You pay for the year by card, it renews yearly, and you get an invoice by email for every payment.
How do changes work?
Texts, photos, prices, opening hours and posts you can change yourself in your editor, any time, or email them to me. A new look, new pages or new features, such as booking, a shop or a newsletter, I build for you as part of the service: we agree what and when, and there is no extra bill.
Do I need a domain?
No need to buy one yourself. I register a domain for you through Cloudflare, with you as its owner, and the first year is included for common endings such as .com, .net or .org. From the second year it renews at cost, with no markup, together with your yearly payment. Already have a domain? Keep it and I connect it. Or start on a free yourname.wptom.page address.
Do I own my content?
Yes: your texts, photos and domain are yours. If you leave, you get your content back, and a domain I registered for you moves to you at no charge.
What if I want to stop?
Email me any time before your yearly renewal. Your site stays online until the end of the year you paid for, and you are not charged again. You get your texts and photos on request.
Will my site look like one of your designs?
No. Every site is an original, designed and built for your business. My designs and the sites you send me are only a starting point for the look you want.
Can I edit the site myself?
Yes. Every site comes with its own editor, EmDash, in your browser: change texts, photos, prices and posts and publish them in a click. You sign in with your fingerprint or face, no password. Prefer not to? Email me and I do it.










































































