Contrada Bosco: the website for aerial silks classes, with timetables that are always right and a panel run from a phone

Website and admin panel for A.S.D. Contrada Bosco, an amateur sports club running aerial silks and postural Pilates classes at the Palabosco in Campodarsego, near Padua. On a phone, visitors find the classes, this week's timetable and a WhatsApp button straight away; Nicla, who teaches, keeps everything up to date and makes the yearly flyers from 20 templates.

**Contrada Bosco** is an amateur sports club (an *A.S.D.* under Italian law) that runs aerial silks classes for children, teenagers and adults, plus postural Pilates, at the Palabosco in Campodarsego, near Padua. The site is built for people who arrive from a WhatsApp link, often parents, and want to know three things: which classes there are, when, and how to book a trial lesson.

**What it does**

- **This week's timetable**, with today already open: cancellations, moves and closures show on the lesson itself, and the standard week can be printed. - **The calendar on your phone**: save one lesson or the whole course to Google Calendar, or follow a calendar that picks up cancellations and changes by itself. - **Trial lessons on WhatsApp**: every lesson has its own button, with the message already written (class, day and time). The site takes no bookings: it hands them to the teacher. - **Class pages** with photos, ages, times and a "Share" button, made for parents' WhatsApp groups. - **No cookie banner**: the site tracks nobody, and the Google map only loads if you open it.

**The admin panel**

Nicla updates everything from a phone: classes, recurring times, notices, photos, texts and colours, and cancels a lesson with one tap. There is a bin, "Undo last change" and sign-in with a passkey. Inside there is also a **flyer generator**: an editor with 20 templates, texts linked to the site's timetable and contacts, photos, shapes, freehand drawing and a QR code, exported as a JPG for Facebook or an A4 PDF for print. The following year the flyers start again from the previous year's, with the new season's times.

**The hard part**

Lessons are not stored one by one: they are worked out from the recurring times and the exceptions, in Rome's time zone, and the same calculation feeds the pages, the calendar to follow and the Google Calendar links. The flyer editor (Fabric.js and 16 fonts) stays in the panel: the public site never downloads it, and on first load the home page weighs about 300 KB, fonts and photos included.

Vue 3 and TypeScript, Fastify and MongoDB; the server writes the class pages, with structured data for Google. Every change goes through 66 automated tests and reaches the server through a GitHub Action.

Design, full-stack development and deployment · Nicla · 2026

Vue.js, Fastify, MongoDB, Fabric.js, Tailwind CSS

View the site

Andrea Coppetta