Case · Site · TypeScript

ceramics-vue: "Muffle", a ceramics studio site concept

A concept for a fictional ceramics studio on Vue 3 with every page prerendered to static HTML (vite-ssg): 7 pages, 5 dynamic course pages and a 404. A schedule with filters, a trial-class booking via mailto, a kiln calculator with an SVG curve. The studio, reviews and prices do not exist; formulas are marked "demo".

  • Vue 3
  • Vue Router
  • TypeScript
  • Vite
  • vite-ssg
  • SVG
  • CSP
  • axe
  • Cloudflare Pages
  • GitHub Actions

01 · How it looks

Screenshots

Screenshot of the project "ceramics-vue: "Muffle", a ceramics studio site concept" at 1280 pixels wide
Desktop, 1280 px
Screenshot of the project "ceramics-vue: "Muffle", a ceramics studio site concept" on a phone screen, 390 pixels wide
Phone, 390 px

02 · About

What it is and why

A concept for a fictional ceramics studio on Vue 3 with every page prerendered to static HTML (vite-ssg): 7 pages, 5 dynamic course pages and a 404. A schedule with filters, a trial-class booking via mailto, a kiln calculator with an SVG curve. The studio, reviews and prices do not exist; formulas are marked "demo".

Limitations

A concept: data and formulas are made up.

The form sends no data, it opens a letter in a mail client; there is no server.

What is inside

  • Vue 3 + vite-ssg: 7 pages and 5 course pages prerendered to HTML
  • A kiln calculator: volume, weight, drying, programme, duration and an SVG curve from demo formulas
  • CSP script-src 'self' with no inline scripts; check-security fails the build on inline code or style
  • Firefox at 390, 768, 1280, 1920: axe 0, CLS 0, clean console; CI: lint, typecheck, test, build, check:links, npm audit, gitleaks

03 · How to run

Run it locally

git clone <repository on request> ceramics-vue
cd ceramics-vue
npm ci
npm run dev

04 · Code

The repository is private

The source is in a private repository. Message me on Telegram and I will open access.

Request the code