# rePiano > rePiano GmbH is a Swiss piano services company based in Bern, Switzerland. > This website (repiano.ch) is a multilingual static marketing site built with SvelteKit, presenting the company's piano tuning, repair, expertise, and concert services to private and professional clients. rePiano GmbH offers Swiss-precision piano craftsmanship to concert halls and private residences alike. The site is informational only — there is no online shop or contact form with direct data input. The company is owned and managed by Lorenzo Costini, Marius Aebi, and Thomas Graber (UID: CHE-457.241.721). The site is localised into four languages: Swiss German (de-ch), English (en), French (fr), and Italian (it), using Paraglide JS for i18n. Routing is file-based via SvelteKit with a shared layout and a language switcher component. ## Documentation - [README](README.md): Project overview and setup notes - [Impressum (DE)](IMPRESSUM.md): Legal notice with company details, representatives, and registration - [Datenschutz (DE)](DATENSCHUTZ.md): Privacy policy covering data handling, Swiss law compliance, and responsible party ## Configuration - [SvelteKit Config](svelte.config.js): SvelteKit adapter and Paraglide plugin configuration. `paths.relative` is set to `false` for robust static deployment on Apache. - [Vite Config](vite.config.ts): Vite build configuration with Tailwind CSS, SvelteKit, and image optimization (ViteImageOptimizer, enhancedImages). - [Apache Config](static/.htaccess): Robust rewrite rules for static deployment on Apache, handling localized routes and SPA fallback. ## Routes & Pages - [Home](src/routes/+page.svelte): Landing page with hero, services overview, philosophy, and reviews sections - [Layout](src/routes/+layout.svelte): Shared layout with Navigation and Footer components - [Services – Tuning](src/routes/services/tuning/+page.svelte): Piano tuning service detail page - [Services – Repair](src/routes/services/repair/+page.svelte): Piano repair and restoration service detail page - [Services – Expertise](src/routes/services/expertise/+page.svelte): Piano valuation and buying advice service detail page - [Services – Concert](src/routes/services/concert/+page.svelte): Concert preparation and piano technician service detail page - [Team](src/routes/team/+page.svelte): Team members and shared company vision - [Contact](src/routes/contact/+page.svelte): Contact information, opening hours, and location (Rütlistrasse 7, 3014 Bern) - [Shop](src/routes/shop/+page.svelte): Second-hand / occasion pianos listing page - [Werkstatt](src/routes/werkstatt/+page.svelte): Workshop page (apprenticeship / Lehrbetrieb context) - [Lehrbetrieb](src/routes/lehrbetrieb/+page.svelte): Apprenticeship / training company information - [Impressum](src/routes/impressum/+page.svelte): Legal notice page - [Privacy](src/routes/privacy/+page.svelte): Privacy policy page (Swiss DSG / DSGVO compliant) ## Components - [Navigation](src/lib/components/Navigation.svelte): Top navigation bar with language switcher and mobile menu - [Footer](src/lib/components/Footer.svelte): Site footer with links and copyright - [LanguageSwitcher](src/lib/components/LanguageSwitcher.svelte): Paraglide-based locale switcher component - [Partners](src/lib/components/Partners.svelte): Partner logos display (Menuhin, MSR Thun, MS Seeland, PTF, YPS, ZPK) - [DecorativeLines](src/lib/components/DecorativeLines.svelte): Decorative SVG accent lines used across pages ## Data & State - [Services Data](src/lib/data/services.ts): Structured data for the four core services (tuning, repair, expertise, concert) - [FAQ Data](src/lib/data/faq.ts): Frequently asked questions data (e.g., recommended tuning intervals) - [Theme Store](src/lib/stores/theme.svelte.ts): Svelte 5 rune-based light/dark theme state, persisted to localStorage - [Server Hooks](src/hooks.server.ts): SvelteKit server hooks, handles Paraglide i18n middleware and locale detection - [Client Hooks](src/hooks.ts): Client-side SvelteKit hooks ## Internationalisation - [German (CH) messages](messages/de-ch.json): Primary language — Swiss German content strings - [English messages](messages/en.json): English translations - [French messages](messages/fr.json): French translations - [Italian messages](messages/it.json): Italian translations ## Static Assets - [Sitemap](sitemap.xml): XML sitemap listing all public routes for all four locales - [Robots.txt](robots.txt): Crawler directives - [Web Manifest](site.webmanifest): PWA manifest with app name, icons, and theme colour ## Optional - [App HTML Shell](src/app.html): Root HTML document with meta charset, viewport, and Paraglide script injection - [Global Styles](src/app.css): Tailwind CSS v4 base styles, CSS custom properties for theming (light/dark), and typography utilities - [App Type Declarations](src/app.d.ts): SvelteKit ambient TypeScript declarations for `$lib`, locals, and page data