Mark Storchovyi · Full-stack developer · Wrocław · Remote

I build web products people actually use.

Full-stack developer working in React and TypeScript. I take features from an empty file to production: typed front ends, clear data models, tests, and releases that don't break what already works.

The iBraid Studio website and booking flow on a laptop and a phoneThe iBraid Studio website and booking flow on a laptop and a phone
Recent work, liveibraid-studio.com: website, booking and studio panel, built by me from scratch
  1. 01 / 05

    The website

    Every style with its real price and its real time in the chair, before the first scroll.

    The websiteThe website
  2. 02 / 05

    Style and size

    The customer picks a size and extras, and the total and the time update as they go.

    Style and sizeStyle and size
  3. 03 / 05

    A time that fits

    Only the start times that leave room for the whole appointment are offered.

    A time that fitsA time that fits
  4. 04 / 05

    After booking

    Every booking gets a private page to add it to a calendar, move it or cancel it.

    After bookingAfter booking
  5. 05 / 05

    The studio panel

    Requests, the week as a calendar coloured by stylist, payments and analytics, on a laptop or a phone.

    The studio panelThe studio panel

Selected workDec 2025 – Sep 2026

iBraid Studio

How I turned a braiding studio's price list and a notebook of appointments into one system that runs its bookings, deposits and reminders.

Visit ibraid-studio.com

The brief

Two stylists, 53 styles, appointments in the studio and at clients' homes across Toronto and Mississauga. Customers needed to see a real price and a real time and book in a minute. The studio needed one place to run the day.

My role: product design, front end, back end, payments and deployment. Solo.

What I built

  • WebsiteEvery style with its real price and time in the chair. Phone-first, in two colour themes, with a video portfolio.
  • Online bookingSeven short steps. A $30 deposit on Stripe goes straight to the stylist doing the appointment.
  • Studio panelRequests, the week as a calendar, payments, analytics, and prices the studio edits itself.
  • MessagesThe studio answers a request from a Telegram card in one tap. Customers get email and text reminders.

Front-end decisions

  • Seven steps, one question eachService, style, place, stylist, time, contact details, review: each screen asks one thing, and the stylist step appears only when there is a real choice. The step lives in the URL, so a booking survives a reload, can be shared and works with the back button.
  • Errors when they helpA field is checked when you leave it, not while you type, and Continue stays disabled until the step is valid. An unfinished booking is kept for the session, so a reload or a dropped connection does not lose it.
  • Phone first, keyboard tooDesigned on a phone screen first. Moving between steps puts focus on the new heading and announces it to screen readers, so the whole flow also works from a keyboard.
  • Two themes, no flashDark first, taken from the studio's amber-on-black look, and a light theme that is the same brand on warm paper. It follows the system until the visitor picks one, and is applied before the first paint.

Under the hood

50
roughly this many clients go through the system each month
702
automated tests
26
database tables, 42 migrations
3
message channels: Telegram, email, text

Projects

Other projects

All code on GitHub

Stack

What I work with

The tools behind the projects on this page. For a new task I pick what suits it, and learn what it needs.

Front end

  • React
  • TypeScript
  • JavaScript
  • Next.js
  • Vite
  • HTML/CSS
  • Tailwind CSS

Back end and data

  • Node.js
  • PostgreSQL
  • Supabase
  • SQLite/IndexedDB

Desktop, payments and tooling

  • Electron
  • Stripe
  • Vitest
  • Git
  • Vercel

Experience

Experience

Full Stack Engineer

iBraid Studio

December 2025 — September 2026Toronto, Canada · Remote

Designed and built the studio's whole system on my own: the public website, online booking with a Stripe deposit, the studio panel, and notifications through Telegram, email and SMS. It serves about 50 clients a month.

Key Responsibilities
  • Built the website and the seven-step booking flow in Next.js and TypeScript, with pricing and booking rules in a separate, fully tested domain layer.
  • Designed the PostgreSQL schema on Supabase: 26 tables, 42 migrations, row level security and a database constraint against double booking.
  • Integrated Stripe Connect so each deposit goes straight to the account of the stylist doing the appointment.
  • Built the studio panel: inbox, weekly calendar, history, payments, analytics and catalogue editing.
  • Built a Telegram bot for answering requests, and email and SMS delivery through an outbox with retries.
  • Covered the system with 702 automated tests and shipped it on Vercel behind a strict content security policy.
Technologies

Next.js · TypeScript · React · PostgreSQL · Supabase · Stripe · Telegram Bot API · Tailwind CSS

Portrait of Mark Storchovyi

About

Hi, I'm Mark.

I'm a full-stack web developer based in Wrocław. I like the whole job: talking to the people who will use the thing, deciding what it should do, then building it properly, from the database to the last button.

So far that has meant a booking system that runs a real studio in Toronto every day, WordPress features for a tech startup in Italy, and a language-learning app for the web and the desktop. Different problems, the same approach: understand it first, then build it to last. On the side I keep going deeper into Linux, servers and networking.

Contact

Hiring a front-end or full-stack developer?

I'd like to join a team where I can own features end to end, from the interface to the database, and keep learning from the people around me. Send me the role and a few words about the team.

Open to full-time roles. Also available for freelance projects.

© 2026 Built by Mark StorchovyiWrocław