Back to projects

Site + Client CMS

Kundalini Activation

A conversion site for a Kundalini activation practitioner, with a panel she uses herself: gallery, video testimonials, sessions and venues all change without a developer, and photos taken on an iPhone are converted on upload.

Next.jsReactTypeScriptTailwind CSSGSAPFramer Motionreact-photo-albumVercel BlobMuxdnd-kitJWT (jose)Zod

Some details omitted under NDA

Kundalini Activation

The problem it solved

Elaine runs in-person Kundalini activation sessions in Florida. The dates, the venues and the testimonials change almost every week, and every one of those changes meant paying someone and waiting.

With no new photos, no current dates and no recent testimonials, a page ages fast and stops converting, however good it looks.

What the site delivers

A panel she uses herself

She signs in and updates five parts of the site: gallery, video testimonials, written testimonials, sessions and venues.

Photos straight from the phone

The image is shrunk in the browser before it uploads, and iPhone HEIC photos are converted automatically.

Video that does not break halfway

The upload picks up where it left off if the connection drops, the site waits for processing to finish and shows how many times each video has been watched.

Reorder the gallery by dragging

Photo order is set by dragging, and every image requires alternative text, which helps both accessibility and search.

Sessions and venues

Dates, times, prices and venues with map links, all editable by her.

Frequently asked questions

An accordion section that answers the question before it becomes a message.

A page built to convert

Benefits, problem and solution, testimonials and calls to action spread through the page.

Kundalini Activation by Elaine Vieira
01

Kundalini Activation by Elaine Vieira

We built a complete site for Elaine Vieira, a specialist in Kundalini activation and energy harmonisation.

The site carries an inspiring photo gallery, video and written testimonials, and a full FAQ section, with session and venue details for Fort Lauderdale and Orlando and calls to action spread through the page.

The standout is the bespoke admin panel: she signs in and updates the gallery, the videos, the testimonials, the sessions and the venues on her own, with photos shrunk and HEIC converted in the browser and video hosted on Mux.

The fixed page copy, such as the opening and the FAQ answers, stays in the code.

  • High-resolution photo gallery
  • Video and written testimonials
  • Frequently asked questions
  • Session and venue details
  • Responsive design
  • A panel she uses to update the gallery, videos, testimonials, sessions and venues

How it turned out

  • She changes a session date whenever she wants, without asking anyone and without waiting.
  • Content is validated before it is saved, so a bad edit cannot take the page down.
  • A photo taken on an iPhone just works: the site converts and compresses it rather than refusing the file.
  • Every image has alternative text because the system insists on it, so accessibility does not depend on anyone remembering.
  • The limit, said plainly: the five parts above are hers. The fixed page copy, such as the opening and the FAQ answers, lives in the code, and changing that is a development task.

In numbers

5

parts of the site she edits herself

5

tabs in the panel

0

times she has to call a developer to change a date

For technical visitors

The rest of this page is written for whoever decides the purchase. This block is for whoever has to maintain the site.

  • A bespoke CMS: the content is a single JSON file on Vercel Blob, zod-validated, cached with unstable_cache and invalidated by tag on every save.
  • The panel sits at /admin/login with a constant-time credential comparison and an HS256 JWT session (jose) lasting 7 days, enforced in middleware for /admin and /api/admin.
  • Image upload with browser-image-compression plus heic2any loaded on demand to turn HEIC into JPEG, a blur placeholder generated, then a server-side write to Blob.
  • Video on Mux with resumable upload via upchunk from the browser, a direct-upload URL minted by the backend, a status poll instead of a webhook, delete and per-video metrics, with a 10-video cap.
  • Sortable gallery with dnd-kit, keyboard navigation included, and alternative text required by the schema.
  • 12 test files with 74 cases over authentication, routes and content validation. GSAP with ScrollTrigger in 6 files.

Ready to build your project?

Let's turn your idea into a tailored digital solution.

Get in touch