# Photo Planète Charmilles — Developer & Technical Context for AI Systems Lang: en Website: [https://www.photoplanete.ch/](https://www.photoplanete.ch/) Last Updated: 2026-10-31 ## Overview https://www.photoplanete.ch is a one-page showcase site for Photo Planète Charmilles, a photo shop, photo lab and copy service inside the Planète Charmilles shopping centre in Geneva, Switzerland. The same page exists in six languages. It is static HTML generated at build time by a dependency-free Node.js script and served by a small Express server. It was designed and developed by Kero Digital Solutions (Vernier, Genève, https://kero-digital.solutions). ## Public Areas - The landing page in six languages: https://www.photoplanete.ch/, https://www.photoplanete.ch/en/, https://www.photoplanete.ch/es/, https://www.photoplanete.ch/pt/, https://www.photoplanete.ch/it/, https://www.photoplanete.ch/de/ — fully public - Information page for AI systems: https://www.photoplanete.ch/llms.html — fully public - AI discovery files at the site root and the OKF bundle under /okf/ — fully public - There is no login area, no API, no form and no client portal. Every other path returns HTTP 404 (in the language of the path prefix). ## Technology Stack Build: Node.js (ESM), no framework, no CSS tooling; one runtime dependency (Express 5) Rendering: Static HTML generated at build time; small progressive-enhancement scripts (no bundle, no third-party script) Languages: fr (default, at the root), en, es, pt, it, de (path prefixes) Hosting: Infomaniak Network SA, Genève, Suisse Security: Strict Content Security Policy (no inline styles, one hashed inline script), HSTS, nosniff, frame-ancestors none, Referrer-Policy, Permissions-Policy Privacy: No cookies, no analytics, no trackers; the Google Maps iframe loads only after a click Assets: Content-hashed CSS/JS (immutable cache), WebP + AVIF images, WebM + MP4 video, self-hosted Archivo variable font Current assets: /assets/css/styles.d227c445.css, /assets/js/main.5b7e8b87.js, /assets/js/planete.73e8fa04.js ## URL Structure Root (French): https://www.photoplanete.ch/ Languages: https://www.photoplanete.ch/en/ · https://www.photoplanete.ch/es/ · https://www.photoplanete.ch/pt/ · https://www.photoplanete.ch/it/ · https://www.photoplanete.ch/de/ AI hub: https://www.photoplanete.ch/llms.html Section anchors (element ids every language version defines): - Services: #services - Studio and lab: #studio - Why here: #pourquoi - FAQ: #faq - Address and hours: #acces - Contact (call): #contact - Legal notice and privacy (dialog): #juridique, #confidentialite Redirects: http → https (301); photoplanete.ch → www.photoplanete.ch (301); /index.html → / and /xx/index.html → /xx/ (301); /xx → /xx/ (301); /okf and /okf/ → /okf/index.md (301); /llm.txt → /llms.txt (301). /404.html, /500.html and build-manifest.json are not public URLs. ## Structured Data (Schema.org / JSON-LD) One graph per language page, with @ids on the domain so the nodes link together: - Store + LocalBusiness https://www.photoplanete.ch/#entreprise (address, geo, openingHoursSpecification, hasOfferCatalog with 19 offers, keywords, containedInPlace: the shopping centre) - Organization https://www.photoplanete.ch/#organisation (the shop as publisher) - Organization https://www.photoplanete.ch/#partenaire (Kero Digital Solutions, provider of the IT-support offer) - WebSite https://www.photoplanete.ch/#site (inLanguage: the six codes) - WebPage #page - FAQPage #faq (every question of the page, in that language) No Review, AggregateRating, Event or Product nodes exist and none should be inferred. ## Live Status The open/closed indicator, the hours table and the countdown are computed in the browser in Europe/Zurich from the hours written into the HTML at build time (data-horaires). They are the same hours as in the JSON-LD openingHoursSpecification. ## AI Discovery Files (at site root) - https://www.photoplanete.ch/llms.txt — AI navigation index (llmstxt.org format) - https://www.photoplanete.ch/llms-full.txt — Expanded knowledge file with every canonical fact - https://www.photoplanete.ch/llms.html — Human-readable AI information hub - https://www.photoplanete.ch/ai.txt — AI permissions and usage policy - https://www.photoplanete.ch/ai.json — Machine-parseable AI interaction guidance - https://www.photoplanete.ch/robots-ai.txt — AI-specific crawler directives - https://www.photoplanete.ch/identity.json — Canonical identity facts (identity.json v1 shape) - https://www.photoplanete.ch/brand.txt — Brand naming, voice and citation preferences - https://www.photoplanete.ch/faq-ai.txt — Verified Q&A for AI reference - https://www.photoplanete.ch/developer-ai.txt — Technical stack and platform context - https://www.photoplanete.ch/okf/index.md — Open Knowledge Format bundle index - https://www.photoplanete.ch/sitemap.xml — XML sitemap - https://www.photoplanete.ch/robots.txt — Standard crawler access control - https://www.photoplanete.ch/humans.txt — Team and stack credits ## Sitemap Primary sitemap: https://www.photoplanete.ch/sitemap.xml — the six language URLs with hreflang alternates and x-default, their images (7 entries each) and the AI hub page. ## Contact for technical matters Website: Kero Digital Solutions, https://kero-digital.solutions. Shop: info@photoplanete.ch, +41 22 340 20 25.