Space

An independent studio for websites, apps and film.

← All work

Mikyö Dorje

One system for the whole centre.

A public site in four languages and a complete management panel for a Tibetan Buddhist centre open since 1986: teachings, visits, paid bookings with QR tickets, donations, members, a till and the app staff use at the door.

What we did
Web · App
Client
Centro de Estudios y Meditación Budista Karmapa Mikyö Dorje
Sector
Buddhist centre
Year
2026 · Gulina, Navarra
Visit the website
The public home: the esplanade, the four languages and the way in
The public home: the esplanade, the four languages and the way in
The same home in dark mode
The same home in dark mode
Booking in four steps, no account
Booking in four steps, no account
The admin panel: today at a glance
The admin panel: today at a glance
Members, with roles and rights
Members, with roles and rights
Mobile first: the home on a phone
Mobile first: the home on a phone
How we worked

A centre run by volunteers, open since 1986, with a website that could not sell a ticket, take a donation or tell staff who was at the door. It needed one system any volunteer could run without training, and that visitors in four languages could trust.

What it had to do
  • Let anyone book, donate or request a prayer online without creating an account.
  • Give the centre one panel for calendar, check-in, members, money and content.
  • Make the door fast and certain, even when the network drops.
  • Feel like a temple, not like software: silence, space, warmth.

The centre supplied its knot symbol and name. We cleaned them into six vector files that every other asset derives from, and built a palette of ivory paper, deep navy and saffron: the colours of a shrine hall, with a dark mode as careful as the light one.

  • Contemplative
  • Plain
  • Warm
  • Trustworthy
Palette
  • Ivory #FBF7EE Ground

    Warm paper instead of screen white: quiet to read for long.

  • Ink #172944 Text and dark mode

    A deep navy that feels like night in the mountains, not like black.

  • Saffron #F1BF55 Brand accent

    The monk’s robe colour, kept to buttons, ticks and the logo ground.

  • Blue #356395 Actions and focus

    A calm blue for anything you can press, with tested contrast in both modes.

Typography
  • Fraunces Display and headings

    Open to everyone since 1986

  • Mulish Interface and body

    Book a visit, make a donation, send a prayer

We wrote the design down as four rules before drawing a screen, so a volunteer and a developer would make the same choice.

The rules we set
  1. 01

    Phone first

    Most visitors arrive on a phone, so every screen is designed there first.

  2. 02

    Understandable without training

    Plain words, known patterns, nothing that needs explaining to a new volunteer.

  3. 03

    Remove decoration, never signal

    Colour always comes with a word; icons never carry meaning alone.

  4. 04

    Restraint, even above persuasion

    No urgency, no countdowns, no “don’t miss it”. A centre of silence does not shout.

01

Web

Two surfaces on one base. The public site explains the centre, sells teachings and visits through a four-step booking, takes donations and prayer requests, and never asks anyone to register: your email and an expiring link are your key. Behind it, an admin panel with granular roles runs the day: today’s calendar, check-in, customers and members, finance, invoices, mail, content with versioned changes, and a touch-screen till for volunteers.

  • Authorisation is checked twice, in the code and in the database, so a slip in one never exposes data.
  • Stripe payments, coupons, member discounts, donation certificates and invoices with the centre’s own series.
  • Every content change is versioned, can be undone and can be scheduled for a given hour.
  • Light and dark mode, tested contrast, and a design language written down in plain words.
  • ES
  • EN
  • FR
  • EU
  • Built with
  • Astro
  • Tailwind CSS
  • TypeScript
  • Supabase
  • Stripe
  • Docker
  • Cloud Run
02

App

The app the door staff carry. It reads each entry QR, decides at once whether the person may come in, and says it with a big word, a colour, a vibration and a tone. When the network drops it keeps deciding offline, and every reading is written to disk before anyone is told “Vale”. It also runs the roll call in an evacuation and helps in the shop.

  • Offline engine: signed QR verified on the device, anti-passback, readings sent later in idempotent batches.
  • Two identities: the device, and the person who unlocks it with a PIN. The server decides what each may do.
  • Colours and rules come from the website’s own design tokens and contract, generated, never copied by hand.
  • Big touch targets, text never under 15 sp, colour always with a word: made for a busy door.
  • Android
  • Staff app for the centre’s scanners · private distribution
  • Built with
  • Kotlin
  • Jetpack Compose
  • Material 3 Expressive
  • CameraX
  • ML Kit
  • Tink
03Film & photoNot in this project
05

Result

What you can see, use and share, and what it does.

Visit the website ↗
  • 4languages on the public site
  • 76tables, each with its own security rules
  • 0accounts the public has to create
  • 46tests so web and app read every ticket the same way
Web
mikyodorje.com
The public home: the esplanade, the four languages and the way in
The public home: the esplanade, the four languages and the way in
The same home in dark mode
The same home in dark mode
Booking in four steps, no account
Booking in four steps, no account
The admin panel: today at a glance
The admin panel: today at a glance
Members, with roles and rights
Members, with roles and rights
Mobile first: the home on a phone
Mobile first: the home on a phone
App
Door Vale Meditation · 18:001 of 24 in
Door Already in Read at 17:52Let through anyway?
Roll call 3 missing 21 of 24 tickedWorks offline
A place for silence, the practice of the Dharma and reconnecting with yourself.

Your project could be next.

Tell us what you need: a website, an app or a film. We explore it together, and you pay phase by phase.

Let's talk