Available for new projects · Working remotely worldwide

Websites & booking systems for small & local businesses.

I’m Ivan Litvin, a freelance web developer. I build clean, mobile-friendly websites that show what you do and what it costs — and full-stack web apps like online booking systems with an admin panel for your team. Fast turnaround, clean code and clear communication.

  • Mobile-first & fast
  • Booking systems & admin panels
  • Clear, fixed quotes
  • Multilingual sites

Services

What I can build for you

From focused websites that turn visitors into enquiries to web apps that run part of your business — like taking bookings around the clock.

📅

Booking systems & web apps with admin panels

Online booking for barbershops, salons, studios and other appointment-based businesses: customers pick a service, specialist and free time slot; your team manages the schedule, bookings, clients, services and staff in a private admin panel.

See the Brasswood case study →
⚡

Landing pages

A single, focused page for a product, offer or campaign — with a clear message, strong call to action and a contact or sign-up form.

🏪

Small-business websites

Multi-section sites for local businesses: services and price list, about, opening hours, map, contact or booking form, basic local SEO.

🎨

Redesigns

Have an outdated site that looks bad on phones? I’ll rebuild it with a modern design, faster loading and a clearer structure.

🤖

Telegram bots & simple automations

Small helpers that save time: forward form submissions to Telegram, booking bots and Telegram Mini Apps, FAQ bots, basic workflow automations.

See the Telegram Mini App demo →

Selected work

Case studies

From a full-stack booking system with an admin panel to a Telegram Mini App, a 3D product configurator, an instant quote calculator and websites for local businesses.

Personal projectDemoFull-stack web appBooking systemAdmin panel

Brasswood Barber Co. — online booking web app for a barbershop

An online booking web app for a (fictional) barbershop: clients book a service with their preferred barber in a few taps, and the team runs the day from an admin panel — schedule, bookings, clients, services and barbers.

brasswood-booking.pages.dev
Brasswood booking flow: picking a date in the calendar and a free time slot, with the appointment summary on the right

For clients

  • Step-by-step booking — service, barber, date and a free time slot, then contact details and a confirmation.
  • Manage a booking — clients can look up, cancel or reschedule their booking.
  • Salon time zone — slots always follow the shop’s time zone (America/New_York), whatever time zone the visitor’s browser is in.
  • Responsive design — works on phones, tablets and desktops.

For the team — admin panel

  • Schedule — day and week views of all bookings.
  • Bookings & clients — every booking and client in one place.
  • Services & barbers — editable by the team.

Modern front end

React, TypeScript, Vite and Tailwind CSS.

Server version

Cloudflare Pages Functions with a Cloudflare D1 database, server-side admin authentication and sessions.

No double bookings

Verified by a test: 10 parallel bookings of the same slot result in exactly 1 success.

Automated tests

Unit and end-to-end tests cover the booking logic and the main user flows.

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Cloudflare Pages Functions
  • Cloudflare D1

More demo projects

Booking, configurators, quotes and editable sites

Four more working demos, each built for a fictional business with sample prices — not client projects. Open the live demo or read the code on GitHub.

tg-booking-miniapp.pages.dev
Petalune Nail Studio Telegram Mini App on three phones: service list with sample prices, date strip with free time slots, and the booking confirmation screen
DemoTelegram Mini AppBooking

Petalune Nail Studio — Telegram Mini App booking

A booking app that opens right inside Telegram: pick a service, a specialist and a free slot in a few taps, then manage, reschedule or cancel bookings. It also works as a normal web page.

  • Native Telegram feel — theme colours, MainButton, BackButton and haptics via the Telegram WebApp SDK.
  • Secure backend — server-side initData signature check and database-level double-booking protection.
  • Bot notifications — the owner and the client get messages from the bot, plus a reminders worker.
  • React
  • TypeScript
  • Telegram WebApp SDK
  • Cloudflare Pages Functions
  • Cloudflare D1

Fictional studio, sample prices. The public demo runs in demo mode: bookings stay in your browser and nothing is sent to a server.

watch-configurator-demo.pages.dev
Vespryn V-40 Meridian 3D watch configurator: a steel watch with a midnight-blue dial and brown leather strap next to case and dial options and a sample total of $2,400
Demo3D configuratorE-commerce

Vespryn V-40 Meridian — 3D product configurator

An interactive 3D configurator for a watch brand: customers rotate the watch, change every part and see the price update live. The 3D model is built entirely in code — no model files.

  • Configure everything — case material, dial, bezel and strap, each change animated on the model.
  • Live itemised price — plus a case-back engraving preview.
  • Shareable builds — every configuration has its own link.
  • three.js
  • React Three Fiber
  • React
  • TypeScript

Fictional brand, sample prices — nothing is for sale.

quote-calculator-demo.pages.dev
Mintleaf Home Cleaning quote calculator at step 4 of 6, choosing extras, with a live estimate breakdown on the right (sample prices)
DemoQuote calculatorLead capture

Mintleaf Home Cleaning — instant quote calculator

A step-by-step price calculator for a cleaning company: visitors answer a few questions and see an itemised estimate update as they go, then send a request.

  • Six clear steps — service, home size, frequency, extras, date and contact.
  • Live estimate — itemised breakdown with frequency discounts.
  • One config file — all sample prices and rules live in a single file, easy to change.
  • React
  • TypeScript
  • Vite
  • Tailwind CSS

Fictional business, sample prices. The demo request form sends nothing.

editable-site-demo.pages.dev
Ember & Oat Café website, “Edit it yourself” page: three steps for the owner next to the visual editor changing menu prices
DemoBusiness websiteCMS

Ember & Oat Café — website the owner edits

A fast café website whose owner can change texts, menu prices and photos in a visual editor — no developer needed for everyday updates.

  • Visual editing — every text, price and photo is a labelled field with a live preview.
  • Fast and accessible — Lighthouse scores 96–100 and 0 axe violations.
  • Menu, hours, location and contact — everything a local café needs on one page.
  • Astro
  • TinaCMS
  • Tailwind CSS
  • TypeScript

Fictional café, sample prices. The public demo shows the editor in a walkthrough, and its contact form sends nothing.

Also built

Plzeň AutoCare — website for a car service

A concept website for a local car-service business — the kind of project I love to build.

Demo projectLocal businessCzech-language

A Czech-language website for a car service in Plzeň, Czech Republic. The goal: give drivers a clear picture of services and prices before they call, and make booking a visit effortless.

What I built

  • Responsive layout — dark, bold design that works on phones, tablets and desktops.
  • Service price list — six services (diagnostics, brakes, oil change, A/C, tyres, engine repair) with “from” prices in CZK.
  • Booking / contact form — name, phone, car make and a short description of the problem.
  • 4-step process — from booking to handover, so customers know what to expect.
  • Local SEO basics — page title and description, address, phone and opening hours in the contact section.

Concept/demo project built to showcase my approach; not a paid client project.

Process

Simple, transparent, fast

No jargon and no surprises — you always know what’s happening and what it costs.

  1. 01

    Project brief

    You tell me about your business, your customers and what the site needs to achieve. Everything happens in writing, by email or chat, so you can answer whenever it suits you.

  2. 02

    Plan & fixed quote

    You get a clear page structure, timeline and fixed price before any work starts.

  3. 03

    Design & build

    I build the site and share a live preview link, so you can review it on your own phone and request changes.

  4. 04

    Launch & handover

    I publish the site on your domain, connect the contact form and show you how everything works.

Contact

Have a project in mind?

Tell me a bit about your business and what you need. I’ll reply with questions or a quote. Everything happens in writing — by email or chat — starting with a short project brief. I work remotely with clients worldwide.