CONCEPTConcept — not a commissioned project
HOURLINE: a concept booking platform with a client side and a studio back office
HOURLINE is an online booking platform VITON13 built as a concept, shown through a fictional network of three premium studios in Moscow, Dubai and London. One demo holds both sides: the page where a guest books a visit on a phone in seconds, and the back office where the studio runs its calendar, sees the risk of no-shows, fills empty time and reads its numbers. Everything runs in the browser on generated data.
Open the live project
- scripted phone booking, first tap to confirmation (median of 14 runs)
- 6 s
- offered times re-checked by an independent audit, 0 conflicts
- 658
- all JavaScript and CSS gzipped, fonts not included
- 95 KB
- Lighthouse performance, mobile / desktop, on the live address
- 94 / 100
Task
VITON13 builds concept products to show how it approaches software for a business, not only websites. HOURLINE is the booking platform in that series: online booking for premium studios and clinics, shown through Maison Hourline, a fictional house of three studios in Moscow, Dubai and London with nine specialists who do massage, facials, hair, nails and physio. The business, its people, its clients and its prices are invented, and the demo says so on every screen.
The brief we set ourselves had three parts. A guest should book on a phone in seconds, without calling. The times on offer had to be real, computed from the specialists’ hours, breaks, existing bookings and turnover time in each studio’s own time zone, not a decorative grid. And the studio had to see a booking the moment it was made and have tools to protect its day: a calendar it can rearrange by hand, a warning when a visit is likely to be missed and a way to fill empty time.
What we did
The guest side is two views, Book and My bookings, designed for a phone first. Booking runs from studio to service, specialist, a date strip with a time grid, name and phone, and a confirmation, with a stopwatch in the card. Each studio shows its local time and whether it is open now. Suggestion chips offer the earliest time, the guest’s usual time learned from past visits and a time with their usual specialist; “book with a friend” finds two specialists free at the same start. The confirmation is a wallet-style pass with a calendar file (.ics) generated in the browser. In My bookings a visit can be moved by dragging it along the specialist’s day, where it snaps to free starts, or cancelled under the studio’s policy, with its free window and late fee.
The studio side is five views. The calendar shows a day with a column per specialist, grouped by studio, each on its own local time with its own “now” line, and a week view. Visits can be dragged to another time or specialist, stretched by the lower edge or created with a click; every change goes through the same rules as the guest side, and a drop that breaks one shakes back with the reason, such as an overlap with another booking. The dashboard shows revenue, a utilisation heatmap by weekday and hour, new and returning clients, cancellations, no-shows and lead time; Clients holds tags, lifetime value, history and notes; Settings changes services, prices, hours, breaks, buffers and the cancellation and deposit policy, and the booking page follows at once.
The fifth view, Intelligence, is what we call demo AI and label as such on the page: rules plus statistics, computed in the browser. Each upcoming visit gets a no-show risk from a naive Bayes model trained on the demo’s own history (first visit, lead time, previous no-shows, time of day, weekday), adjusted by rules for a confirmed reminder or a paid deposit; every score lists its factors and suggests an action, such as asking for a deposit. “Fill the gaps” finds free time today and tomorrow and matches it with people on a simulated waitlist; an accepted offer books the slot.
How it works
The demo is plain JavaScript and CSS without a framework, bundled with esbuild into a static folder with relative URLs, so it runs from any path: on the portfolio it lives at /demos/hourline/. The guest side loads first and the studio side arrives as its own chunk. One store holds the data for both sides and saves it in localStorage, so a booking made on the guest side is in the studio calendar at once, and in any other open tab through the browser’s storage event. The data is generated for each visitor: a client base for every studio, eight weeks of history and four weeks ahead, built through the same availability rules as the product, so the calendar opens full and consistent.
One availability engine answers every question the product asks: can this specialist take this service at this minute on this day, given their weekly hours and break, live bookings, the buffer after each appointment, the minimum lead time and the booking horizon, in the studio’s time zone. The guest’s slots, the suggestions, the friend pairs, rescheduling, the studio’s drag and drop and the gap finder all ask it. The design is a cream-and-stone palette with an aubergine accent, Cormorant for display and Manrope for text, both self-hosted; springs and the intro turn into instant changes for visitors who ask for reduced motion. The whole interface is in English and Russian.
What exists now
What exists now is a working concept at tarasovvitalii.com/demos/hourline/ with seven views, two for the guest and five for the studio. On 28 September 2026 we measured it in headless Chrome on a MacBook, with the demo clock frozen at 1 October, 15:40: a scripted booking on a 390 px phone screen, pausing 0.9 seconds after every tap, took 6 seconds from the first tap to the confirmation on the demo’s own stopwatch (median of 14 runs, 6 to 16 seconds). A booking made in one tab appeared in a studio calendar open in another, and a price changed in Settings reached the booking page.
An independent brute-force check inside the page re-tested all 658 times the engine offered over ten days in three studios and nine services against hours, breaks, bookings with their buffers, lead time and the time-zone round trip: no wrong slot, no double booking and no buffer violation; the same check with the clock moved across London’s change to winter time on 25 October found nothing either. All the JavaScript and CSS weigh 95 KB gzipped. On the live address, Lighthouse 13.5 (five runs per device, medians, on a MacBook with a load average of 3–9) gave performance 94 on mobile and 100 on desktop, with accessibility and best practices at 100; the page transfers 0.2 MB on load.
What this does not prove
HOURLINE is a concept VITON13 built to show range, not a commissioned project. Maison Hourline, its studios, specialists, clients, prices and bookings are fictional and generated in the visitor’s browser: there is no client, no users, no real bookings, no traffic and no revenue, and nothing in the demo is for sale. Reminders, deposit requests, waitlist offers and their replies are simulated; no message, payment or personal data leaves the browser.
The demo AI is rules and statistics in the browser, not a language model, and it learns from invented history, so it proves nothing about predicting real no-shows. The 6 seconds come from a script tapping at a fixed pace, not from people, and no user testing was done. Every figure is a lab measurement in headless Chrome on one machine on one day, and Lighthouse ran on the live address with a simulated phone, not on real devices. A production version would still need a server with slot locking, payments, real reminders, accounts and data protection.




SEO review
Measured on the live address on 28 September 2026. Lighthouse (five runs per device, medians, on a MacBook with a load average of 3–9) gave performance 94 on mobile (LCP 2.3 s, 0.2 MB) and 100 on desktop (LCP 0.5 s), with accessibility and best practices at 100 on both. SEO is 63 because the demo is marked noindex, nofollow in the page and in the server header: it is a concept, and the page meant for search is its case on the portfolio.
Checked on 28 September 2026: 7 pages rendered in Chrome the way a search crawler sees them, plus Lighthouse 13 on the home page.
Lighthouse, home page
- Performance
- Mobile94Desktop100
- Accessibility
- Mobile100Desktop100
- Best practices
- Mobile100Desktop100
- SEO
- Mobile63Desktop63
On-page and technical checks
- Unique page titlesmissing1/7
- Title length 30–65 charactersin place7/7
- Meta descriptions 70–170 charactersmissing0/7
- One H1 per pagepartly6/7
- Page language declaredin placeen
- Mobile layout without sideways scrollin place390 px
- Images with alt textin place0 img
- Broken internal linksin place0
- Canonical URLmissing0/7
- Open Graph title and imagemissing0/7
- Structured data (JSON-LD)missing0/7
- sitemap.xml and robots.txtpartly1/2
Checked on the 7 views of the one address, rendered in headless Chrome at 390 px. In place: the language declared (en, and ru after the switch), no sideways scroll at 390 px, a title of 60 characters and 0 broken links among 8 targets; there is no <img> to describe, because the pictures are SVG and CSS. Partly: six views have one H1, the calendar has none. Missing: all 7 views share one title and one description of 274 characters, and there is no canonical URL, no Open Graph image (only a title and a description) and no JSON-LD. robots.txt sits at the domain root; the demo is kept out of sitemap.xml on purpose.
If HOURLINE were a real product with a public booking page: remove noindex from the guest side and keep the studio side behind a login; give each studio and service a real URL instead of a hash route, with its own title of 30–65 characters, a description of 70–170, a canonical URL and an Open Graph image; add JSON-LD (Organization, LocalBusiness for each studio with its opening hours, Service, BreadcrumbList); put an H1 on the calendar; and list the public pages in sitemap.xml. On the live address one mobile run in five still showed a layout shift of 0.07 as the web fonts swapped in under the intro title; preloading those fonts or matching their fallback metrics would remove it.
Services this case shows
Describe the task on the service page; a written scope, timeline and price come back within one working day.
Discuss a similar projectMore cases
All cases
CONCEPTConcept — not a commissioned project
SOLVENT
Concept product · Web app · English, Russian · 2026
SOLVENT is a cash-flow product VITON13 built as a concept, shown on the books of Kite & Co., a fictional 14-person design-and-print studio. It tells the owner how much cash there is, how many months it will last and what the next 18 months look like, and lets them try a decision before making it: eight levers redraw the forecast at once, and a waterfall shows what each one changes. Everything runs in the browser on generated data, and it is not financial advice.
Read the case →
CONCEPTConcept — not a commissioned project
Möbius School & Institute
Concept site · three.js · English, Russian · 2026
Möbius is a fictional school and institute for ages 5 to 25, and this is the site VITON13 built for it as a concept for schools, colleges and universities. On the home page 40 story cards ride a real Möbius band in three.js; behind it are a “Who we are” film, programmes, admissions tools, a campus map and My Möbius, a working demo of the personal account for students, parents and teachers.
Read the case →
CONCEPTConcept — not a commissioned project
VOXA — Bank of the Future
Concept site · three.js · voice · English, Russian · 2026
VOXA is a fictional bank of the future, and this is the site VITON13 built for it as a concept for banks and fintech products. A camera flies through one three.js world with ten features; each opens a working phone app where a visitor pays a friend by voice, saves for a shared dream, buys a flight that turns into a boarding pass or designs a card, and a closing scene with two Veo 3.1 films hands the microphone to the visitor.
Read the case →