/ Case study — Landing
Mave Beauty
A site that looks like the studio and that the studio actually runs — they edit the gallery and services themselves, and it goes live with no redeploy.


















Refining Beauty.
Defining You.
The intersection of precision artistry and medical-grade hygiene. Welcome to the new standard of anxiety-free aesthetic care.
Our Expertise
The MAVE Portfolio


Brows.
Sculpted Perfection.
Bespoke shaping and tinting that enhances your natural architecture.
Discover Brow Artistry →

Lips.
Irresistible Allure.
Soft, buildable colour that restores definition and balance.
Discover Lip Artistry →Portfolio · CRUD

Brows. Sculpted Perfection.
published

Lips. Irresistible Allure.
published

Lashes. Weightless Elegance.
draft
Hand-built CMS · OTP auth · Drizzle/SQLite.
The page is SSR — publish and it's live. No rebuild.
The actual site, rebuilt in code — publish in the CMS and the page changes. No rebuild.
mavebeauty.co.idFIG.00 — Overview- Astro SSR — fast + indexable, live content
- Hand-built admin CMS — OTP auth + portfolio CRUD
- Drizzle schema as the content model (own CMS)
/ What it does
A beautiful site the studio keeps current itself
An elegant brand site that loads instantly and guides visitors to booking — and the studio updates its own gallery and services from a simple admin, no developer required.
Land on the site
Fast, elegant, on-brand.
Always up to date
The studio adds new photos and services itself, instantly.
Loads instantly
A fast, polished site that works beautifully on any phone.
Turns visitors into bookings
Every page points clearly toward booking an appointment.
Problem
The studio needed a front door as considered as the service — but also one they could keep current themselves. New portfolio work and services shouldn’t mean emailing a developer every week.
Approach
An Astro site rendered server-side, backed by a small custom CMS built for exactly this studio. An authenticated admin manages the portfolio gallery, service categories, and studio profile; content lives in a Drizzle-backed database and renders on request.
- Astro SSR (Node adapter) for fast, indexable pages that reflect live content.
- A hand-rolled admin: login with OTP, password reset, and CRUD for portfolio and categories.
- A Drizzle schema as the content model — no third-party CMS to rent or outgrow.
The best CMS is the one shaped to a single business — nothing more, nothing to learn.
Architecture
Astro SSR (Node adapter)
├─ public: home · services · locations · clients ── read from DB
├─ admin: portfolio · categories · profile ── auth-gated
│ auth: OTP · password reset (API routes)
└─ data: Drizzle ORM → SQLite
Key decisions & trade-offs
- SSR over static for editable content. Server rendering keeps pages fast and indexable while letting the studio publish changes instantly.
- Custom CMS over a platform. A tiny purpose-built admin (portfolio + categories) is simpler to use — and to own — than bending a headless CMS to fit.
- Auth done properly. OTP login and password reset, not a shared password taped to the monitor.
Result
A brand-true marketing site the studio keeps current on its own — gallery, services, and profile all editable, on a backend they fully own.
Masalah
Studionya butuh pintu depan yang sematang layanannya — tapi juga yang bisa mereka jaga tetap terkini sendiri. Karya portofolio dan layanan baru semestinya tidak berarti harus meng-email developer tiap minggu.
Pendekatan
Sebuah situs Astro yang dirender di sisi server, didukung CMS custom kecil yang dibangun persis untuk studio ini. Sebuah admin terautentikasi mengelola galeri portofolio, kategori layanan, dan profil studio; konten hidup di basis data berbasis Drizzle dan dirender saat diminta.
- Astro SSR (adapter Node) untuk halaman yang cepat dan bisa diindeks yang mencerminkan konten langsung.
- Admin buatan tangan: login dengan OTP, reset password, dan CRUD untuk portofolio dan kategori.
- Skema Drizzle sebagai model konten — tanpa CMS pihak-ketiga yang harus disewa atau dilampaui.
CMS terbaik adalah yang dibentuk untuk satu bisnis — tak lebih, tak ada yang perlu dipelajari.
Arsitektur
Astro SSR (Node adapter)
├─ public: home · services · locations · clients ── read from DB
├─ admin: portfolio · categories · profile ── auth-gated
│ auth: OTP · password reset (API routes)
└─ data: Drizzle ORM → SQLite
Keputusan kunci & trade-off
- SSR ketimbang statis untuk konten yang bisa diedit. Perenderan server menjaga halaman tetap cepat dan bisa diindeks sambil membiarkan studionya menerbitkan perubahan seketika.
- CMS custom ketimbang platform. Admin mungil yang dibuat khusus (portofolio + kategori) lebih sederhana untuk dipakai — dan dimiliki — ketimbang memaksa headless CMS agar pas.
- Autentikasi yang dikerjakan dengan benar. Login OTP dan reset password, bukan password bersama yang ditempel di monitor.
Hasil
Sebuah situs marketing yang setia-brand yang studionya jaga tetap terkini sendiri — galeri, layanan, dan profil semuanya bisa diedit, di atas backend yang sepenuhnya mereka miliki.
/ How it’s done
The studio’s own CMS — live
Edit the category and caption; the public tile updates. A hand-built admin, not a rented CMS.
The best CMS is the one shaped to one studio. A hand-built admin — OTP auth, password reset, portfolio & category CRUD on a Drizzle schema — lets the studio keep its gallery current itself. Astro renders it server-side: fast, indexable, and always live.
SSR over static for editable content
Astro renders server-side, so pages stay fast and indexable while the studio publishes changes instantly.
Astro merender di sisi server, jadi halaman tetap cepat dan bisa diindeks sementara studionya menerbitkan perubahan seketika.
A CMS shaped to one studio
A tiny purpose-built admin — portfolio and category CRUD — is simpler to use and to own than bending a headless CMS to fit.
Admin mungil yang dibuat khusus — CRUD portofolio dan kategori — lebih sederhana untuk dipakai dan dimiliki ketimbang memaksa headless CMS agar pas.
Auth done properly
OTP login and password reset, not a shared password taped to the monitor.
Login OTP dan reset password, bukan password bersama yang ditempel di monitor.
Drizzle schema as the content model
The database schema is the content model — no third-party CMS to rent or outgrow.
Skema basis data adalah model kontennya — tanpa CMS pihak-ketiga yang harus disewa atau dilampaui.