
Attackletics doubled sales with a neon storefront that opens like a plain one.
A smart batting tee and a finished coaching app, sold from a stock theme. Rebuilt in neon and scanlines, without making the phone pay for it.
RobotX Workshops teach hands-on drone and autonomous-driving courses in Berlin, on real hardware and in eight languages. The site now sells the dates and confirms the places by itself.

RobotX Workshops teach drone flight and autonomous driving in Berlin, on hardware students actually put their hands on. Courses run in eight languages, in small groups, on fixed dates, with instructors who fly and drive themselves. The teaching was never the weak part. What the business had built was a timetable, and a timetable is a product.
Selling a timetable is harder than selling a product. A drone course has a hard seat limit, set by how many machines are in the room. An overbooked session is not a database conflict. It is somebody standing in a doorway who has already paid and already travelled to be there.
Add eight languages and every date, description and confirmation exists eight times over. Places were taken by hand, which works until two enquiries arrive for the last seat within an hour of each other. A booking plugin handles one of those problems and quietly breaks the other.
A student picking a workshop is not choosing a subject first. They are checking which weekend they are free, then seeing what runs on it. So the browse page was planned as a list of dates with the seats remaining on each, and the course description was put behind it. Sorting by course is the version that loses bookings.
Eight languages is a content problem rather than a translation problem. The decision was to enter a session once — date, seats, hardware, instructor — and let the language layer sit over it. Translators would touch the words and never the schedule, so a course could not exist in one language and go missing from another.
Capacity that exists in the physical world had to be held at the start of checkout, not checked at the end. Two people opening the last place on a Tuesday session is normal traffic, not an edge case. Anything looser turns a confirmed booking into an apology somebody on the team has to write by hand.
The browse page leads with the calendar, because the date is the question a student is actually asking. Each row carries the day, the language, the hardware and the number of places left. The writing about the school sits below that, where somebody who has already found a workable weekend can read it if they want to.
On a phone the list has to be readable at arm length, so a row is a date first and everything else second. Places remaining are stated plainly rather than drawn as a bar, because a number is something a student can act on. The booking form asks for what a place needs and nothing that can be asked later.
assets/img/cases/robotx-workshops-booking-site-design.jpgStudents shop by the weekend they are free, so the list is ordered by date and the course description sits one tap behind it.
A place is held the moment somebody starts paying, and released if the payment does not complete. A hesitant student never locks a seat nobody else can have.
A session is entered once and translated over the top, so no date can appear in one language and be missing from another.
The places left are shown on the row itself, because a student choosing between two weekends needs to know which one is nearly gone.
The site runs on WordPress with sessions modelled as their own content type in ACF Pro. Date, language, hardware, instructor and seat limit are structured fields rather than typed copy, so the team adds a session without touching a template. WPML sits over that model, which is why a translator never sees a date.
Seats are counted in one place and held the moment someone starts paying, not when they finish. The hold is released if the payment does not complete. That single rule is what stops two students buying the same last place while both are still filling in their details on a busy evening.
The seat limits were not written down anywhere. They lived with the instructors, who knew that a session runs with as many students as there are working machines that week. Getting those numbers onto paper took longer than building the booking flow, and it was the part that had to be right first.
assets/img/cases/robotx-workshops-booking-site-build.jpgThe parts of the build a visitor would point at.
Upcoming sessions are listed by the day they run, so a student checking which weekend is free finds the course rather than the reverse.
A place is reserved when payment starts and released if it fails, so the last seat cannot be sold twice on a busy evening.
Dates and seat limits are entered once and translated over, so no session appears in one language and goes missing in another.
Date, hardware, instructor and capacity are fields the team fills in, so a new workshop goes live without a developer being called.
A student picks a date, pays and holds a confirmed place immediately, which is why bookings now arrive while the team is asleep.
The number on the page is the number the instructors work to, so what a student sees matches the machines available that week.
What the work changed, in the numbers the client reports.
Week one brought 100s of bookings, and not one of them needed a reply. That is the difference between a site that describes a course and a site that sells one. Sessions that used to fill through an inbox now fill overnight, while the team is asleep.
No session has been oversold since launch, which matters more than the volume did. The seat count on the page is the same number the instructors work to, so what a student sees is what the room can hold. Nobody has had to write the email that takes a place back.
The eight languages went live together rather than one at a time. A student reading in German and a student reading in any of the others see the same schedule, with the same places left, on the same day. That was the part most likely to break, and it is now the part nobody checks.
Live, and running the business it was built for.

The RobotX Workshops site is live and running the schedule itself. Upcoming sessions are listed by date, in eight languages, with the places remaining on each. A student picks a weekend, pays and holds a confirmed seat, and the instructors work to the same number the page shows.
Visit the live siteThe first week was busier than we planned for. Nobody had to answer a booking email, which is the part we still notice.
— Founder, RobotX Workshops
What it is built on, and what it talks to.
Other projects where we named the number before we started.

A smart batting tee and a finished coaching app, sold from a stock theme. Rebuilt in neon and scanlines, without making the phone pay for it.

Vision and swing trainers that make no sense in a photograph. Moved out of a coaching site and onto a storefront built around the demonstration.

An established Amazon seller with no channel of its own. Catalogue ported across, two markets configured, and a storefront designed to convert rather than list.
Send the metric that is stuck and we will tell you honestly whether we agree.