Osservatorio Monte Lume: an observatory website that tells you if the stars will be out tonight

Demo website for a fictional observatory in the Tuscan-Emilian Apennines, under a real sky. It opens with «Stasera si vede?» (can we see the stars tonight?): a 0–100 score worked out hour by hour from forecast cloud, the Moon and darkness. Then a sky map computed in the browser, a sky calendar that calculates itself, evenings with phone alerts and an admin panel anyone can try.

Osservatorio Monte Lume **doesn’t exist**: it’s a fictional public observatory, run by an equally fictional amateur astronomy club on a 1,440-metre mountain in the Tuscan-Emilian Apennines. It’s a demo website, built the way I build sites for real businesses: a public site, an admin panel for the people who run it, deployment on my own server. A strip at the top of every page says so. The sky, though, is real: stars, Moon and forecasts are genuinely computed or downloaded, for an actual point on the ridge.

**«Stasera si vede?»** (can we see the stars tonight?) A score from 0 to 100 and a sentence such as «Stasera si vede benissimo dalle 22 alle 6» (excellent viewing from 10 pm to 6 am). For every hour of true darkness it combines low, mid and high cloud from the MET Norway forecast, seeing from 7Timer!, the Moon and light pollution; an evening scores the average of its best three consecutive hours. Forecasts are fetched by the server: the visitor’s browser talks to nobody else.

Around the score:

- **the sky map**: 1,663 stars, all 88 constellations, the planets and the Moon in its real phase, computed in the browser with Astronomy Engine. The time slider stays smooth even on a simulated low-end phone, because every star turns with a single matrix; and a red-light mode doesn’t dazzle eyes adapted to the dark; - **what’s up tonight**: the Moon and the planets, from where they rise to where they stand highest, with the time; - **the sky calendar**: 117 events over the next twelve months, from lunar phases to meteor showers with their best moment, recalculated every night; - **evenings with limited places**: visitors book with just a name; if the forecast score drops below the threshold, the club knows 48 hours ahead and decides with a tap, and those who asked for alerts get a notification on their phone.

**The admin panel** is built for the phone: evenings at risk at the top, then evenings, calendar, site texts and photos, and cookie-free visit statistics. **Anyone can try it from the site, without an account**: the server’s logic also runs in the browser, on a copy of the data, and changes stay there. An automated test compares 356 responses from the two versions.

Vue 3 and TypeScript, Fastify and MongoDB. Every change goes through 270 automated tests and reaches the server through a GitHub Action; another one checks the live site every three hours. There, Lighthouse scores 94 for performance on a simulated phone, and 100 for accessibility and best practices.

Photos of the observatory and its members are generated on my own GPU with an open model; the sky, by contrast, is drawn by code, so that no made-up image passes for real astrophotography.

Design, full-stack development and deployment · 2026

Vue.js, Fastify, MongoDB, Astronomy Engine, Zod

View the site

Andrea Coppetta