Case studyWeb Development
Arina Alakoch
A public site for Arina Alakoch's psychology practice, with a private cabinet for managing retreats, photographs and publishing. Public screens show the English Figma design; cabinet screens were captured locally with Firebase emulators. The live website is in Russian.
- Year
- 2026
- Client
- Arina Alakoch
- Services
- UX/UI Design · Website Development
- Status
- Live

01Brief
What we were asked
A public website and retreat-management cabinet for psychologist Arina Alakoch, covering therapy formats, retreat programmes, photographs and publishing.
02Challenge
Why it was hard
The public site brings together a personal introduction, therapy formats, group participation details and retreats. Visitors need practical information without losing the warmth of the practice.
Retreat dates, programmes and photographs change between seasons. The operational challenge was to make that content manageable through a private cabinet while keeping publication to the public website an explicit, separate step.
03The Build
Scroll through the product
01First impression
A practice, not a template
Arina's portrait and a direct consultation action give visitors a clear place to begin. Cream backgrounds, editorial type and restrained botanical details carry the practice's identity through the page.

02The method
Twenty years, made legible
The introduction names Arina's therapeutic approaches and presents the practice's stated experience, client and training figures together. A certificate link gives that introduction a clear next step.

03Formats
Three ways to begin
Individual therapy, couples therapy and therapeutic groups appear together, with practical details beside each option. Visitors can compare the formats before starting a conversation.

04Retreats
A place for retreats
The retreat directory gives each journey its own place alongside the practice's services. Visitors can distinguish upcoming retreats from past trips and explore their details before getting in touch.

05The cabinet
Retreats in one place
The private cabinet separates retreats with open and closed enrolment. Each entry brings its cover, dates and location together with editing, enrolment and deletion actions. This local emulator capture shows the management interface.

06Creating a retreat
A retreat, field by field
A dedicated editor brings retreat details into one workflow, from the title and page address to dates and programme content. Structured retreat data supplies the public pages, with Zod validation in the site build.

07Photographs
Photographs with context
Gallery photographs sit beside required descriptions and controls for changing their order. The upload workflow prepares images in the browser before sending them to Cloud Storage. Saving content and publishing the public site remain separate steps.

04Notes
How it runs
The public website is built with Astro. A React island at /admin/ provides the retreat-management cabinet. Public retreat pages use content materialized during the build rather than fetching retreat documents from Firestore in visitors' browsers.
Firebase Authentication provides email-and-password sign-in. Firestore stores retreat documents under retreats/{slug} and publication metadata under meta/publish. The cabinet checks an administrator claim, and Firestore and Storage rules restrict client access. Zod defines retreat content used by the site build.
Cover and gallery photographs are uploaded to Cloud Storage. The browser prepares images before upload, limits the longest edge to 2560 pixels and encodes JPEG at quality 0.88. The uploader reports progress, while Storage rules restrict administrator uploads by declared image type and file size.
Publishing starts with the publishSite callable function. It checks administrator access, applies a cooldown and dispatches a GitHub Actions workflow. The workflow reads retreat content, runs checks and tests, builds the site, deploys Firebase Hosting and records publication metadata. Saving a retreat does not itself update the public website.
Stack
05Outcome
Where it landed
- Status
- Live
- Public website in Russian.
- Management
- Cabinet
- Retreat content managed through a private interface.
- Images
- Uploads
- Cover and gallery photographs with descriptions.
- Publishing
- On demand
- Saved changes reach the public site through a build and deployment.
06Craft
The work behind the work
The first three images show the cabinet's sign-in, cover uploader and programme editor. The remaining images show group participation, written reviews and frequently asked questions from the English Figma design. Cabinet screens were captured locally using Firebase emulators and seeded retreat content; they are not production-session screenshots. The live public website is in Russian.
Have a product like this in mind?
We plan, design, and ship - the whole story, start to finish.