Project ·Client website ·In production
Sunny Side Cycling
Celoten rezervacijski in trženjski splet za kolesarsko podjetje v Soški dolini s Stripe plačili, iCal virom, trijezikovnim SEO in oceno 100/100 po Ahrefs.
A full production deployment covering marketing, multi-language content, online bookings, and fiscal receipts — with SEO as the primary growth channel.
Multi-service Docker architecture
Three containers behind Nginx: a Flask/Gunicorn frontend that handles all public routes and proxies reservation calls, a FastAPI backend that owns bookings, tours, bikes, blog posts, and the iCal feed, and Nginx configured with aggressive Cache-Control headers — one year for images and fonts, seven days for CSS and JS — to maximise Core Web Vitals scores.
End-to-end booking flow
Visitors create a pending reservation through the FastAPI backend, then pay via a Stripe Checkout session. On webhook confirmation the reservation is finalised, a confirmation email is dispatched over SMTP, and staff receive an instant Telegram notification. Fiscal receipt generation for Slovenian e-fiscalisation is handled by a dedicated service layer.
Slovenian fiscal receipt integration
Every completed booking issues a legally required fiscal receipt through the Slovenian Tax Administration's e-fiscalisation system (FURS). A custom Python library wraps the FURS SOAP/REST API, handles certificate-based signing of each receipt, and submits it to the tax office in real time at the moment of payment confirmation. Receipts are generated, signed, and delivered to the customer by email — the entire flow runs without any manual staff intervention.
SEO-first — Ahrefs 100/100
Every route carries a dedicated title, meta description, Open Graph tags, and a JSON-LD schema block (TouristTrip or BlogPosting). Canonical URLs prevent duplicate-content dilution across three locale prefixes, hreflang tags signal the correct language variant per country, and a dynamic XML sitemap covers every tour and blog slug. The result: a perfect 100/100 Ahrefs health score and over 200 organic clicks per month in season, a significant share of which convert directly into bookings.
Trilingual with Flask-Babel
The entire site — routes, templates, and SEO metadata — is internationalised in English, Slovenian, and German via Flask-Babel .po/.mo files. Each language variant renders its own correctly translated title, description, and structured-data block, so all three locales rank independently in their respective markets.
Live iCal feed for staff calendars
All confirmed reservations are exported as a token-authenticated .ics feed. Staff subscribe once in Google Calendar, Apple Calendar, or Outlook and bookings appear automatically, with customer name, bike or tour info, and dates included in each event.