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
arinapsychology.com
Arina Alakoch website

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.

arinapsychology.com
Arina Alakoch - A practice, not a template

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.

arinapsychology.com
Arina Alakoch - Twenty years, made legible

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.

arinapsychology.com
Arina Alakoch - Three ways to begin

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.

arinapsychology.com
Arina Alakoch - A place for retreats

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.

arinapsychology.com
Arina Alakoch - Retreats in one place

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.

arinapsychology.com
Arina Alakoch - A retreat, field by field

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.

arinapsychology.com
Arina Alakoch - Photographs with context

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

Framework
AstroReact
Authentication & data
Firebase AuthenticationCloud FirestoreCloud Storage
Publishing
Cloud Functions for FirebaseGitHub ActionsFirebase Hosting
Validation & testing
ZodFirebase Security RulesVitest

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.

Start a conversation