A browser-based observation log for Charles Messier's catalog of 110 deep-sky objects — designed for the field, built around the Astronomical League Messier Club certificate, and distributed as open-source software.
Live site: mmol.thgnetworks.com
The log presents all 110 Messier objects in marathon search order (the Don Machholz sequence — west to east, objects that set first after dusk through objects that rise last before dawn). It serves two kinds of observers:
- Casual checklist — tick objects as you observe them, add brief eyepiece notes, watch the progress bar. Export as CSV at any time.
- AL Messier Club certificate — full per-object forms capturing every field required for the Astronomical League Messier Observing Program submission. Generate a formatted multi-page PDF report directly in the browser.
Both use cases share the same interface.
- Night vision mode — deep black background, red-spectrum text. All emoji icons automatically swap to short ASCII labels in night mode so no bright or coloured symbols appear at the eyepiece. Object photos in the lightbox are automatically red-filtered.
- 110 objects in marathon order — with a clickable toggle to numeric (M-number) order for cross-reference
- Angular size column — apparent dimensions in arcminutes for every object
- Monospace type symbols — each object type has a distinct ASCII symbol that reads clearly in red-only night mode (see features.md for the full symbol map)
- Image lightbox — click any M-number for the object photo, full catalog data, finder chart link, and Stellarium Web link; images are red-filtered in night mode
- Session Setup — set location (with optional GPS), sky conditions, and equipment once per night; values auto-fill every record opened during the session
- Full AL observation records — date, time, site, seeing (Antoniadi scale), transparency, limiting magnitude, scope, eyepiece, description, and sketch notes
- AL Report PDF — multi-page submission document (cover, index, one page per record) generated entirely in the browser — no internet required
- Themed confirmation dialogs — all destructive actions use a custom modal that follows the current night/day theme, so no browser-native white dialog ever appears at the telescope
- CSV and JSON export / import — back up and restore all data; move between devices; merge records without overwriting
- Works offline — after first load, every core feature works without internet
- Best on laptop or tablet — the table has 10+ columns and is designed for larger screens
We recommend a minimum of 6–8 inch (152–203 mm) aperture for a comfortable marathon experience.
- Clone or download the repository and open
index.htmlin a browser — no build step, no server, no installation required. - Add media files to
images/andcharts/for the lightbox (optional but recommended — see below). - Place font TTF files in
fonts/(optional — the site falls back to system fonts). - At the telescope, switch to Night Mode using the toggle in the top-right corner.
- Use ☰ Log → Session Setup to set your location and equipment once for the night.
- Check off objects as you observe them. Click the ✎ button for a full AL record.
- Export your data from ☰ Log → Export AL Records (JSON) after every session.
mmol/
├── index.html Main observation log
├── CNAME mmol.thgnetworks.com
├── css/
│ └── mm-shared.css Shared design tokens and layout
├── fonts/ Self-hosted TTF files (not in repo — see below)
├── images/ Object photos (not in repo — download separately)
├── charts/ Finder charts (not in repo — generate with script)
└── docs/
├── faq.html
├── resources.html
├── about.html
└── user-guide.html
Place JPEG images in an images/ folder named M1.jpg through M110.jpg. The SEDS Messier Catalog at messier.seds.org is the recommended source. The scripts/download_images.sh script automates the batch download.
In night mode, all lightbox photos are automatically red-filtered via CSS — no separate night-mode image set is needed.
Place PNG charts in a charts/ folder named M1.png through M110.png. The scripts/generate_charts.py script produces red-on-black night-vision charts for all 110 objects using matplotlib and astropy.
Place the following seven TTF files in a fonts/ folder. All are available from Google Fonts.
| File | Font | Weight |
|---|---|---|
Cinzel-Regular.ttf |
Cinzel | 400 |
Cinzel-SemiBold.ttf |
Cinzel | 600 |
Cinzel-Bold.ttf |
Cinzel | 700 |
ShareTechMono-Regular.ttf |
Share Tech Mono | 400 |
CrimsonPro-Light.ttf |
Crimson Pro | 300 |
CrimsonPro-Regular.ttf |
Crimson Pro | 400 |
CrimsonPro-LightItalic.ttf |
Crimson Pro | 300 italic |
All observation data is stored in your browser's localStorage — a private, local database on your own device. Nothing is ever sent to any server.
| localStorage key | Contents |
|---|---|
mm_checks |
Observed status per object |
mm_notes |
Inline field notes per object |
mm_times |
Observation timestamps (ISO string) |
mm_fullnotes |
Full AL record data (JSON) |
mm_session |
Session defaults and GPS coordinates |
mm_theme |
Night or day mode preference |
mm_visited |
Quick Start "don't show again" flag |
Important: localStorage is tied to one browser on one device and is cleared by browser data resets or private/incognito mode. Use ☰ Log → Export AL Records (JSON) after every observing session. Use Import AL Records to restore on a new device or browser.
See Github_Subdomain_Configuration.md for the full guide. Summary:
- Push the repo to
github.com/thg4web/mmol(must be public) - Settings → Pages → Branch:
main/(root)→ Custom domain:mmol.thgnetworks.com - DNS: add a CNAME record
mmol→thg4web.github.ioat your registrar - Enforce HTTPS once DNS propagates (~15 minutes to a few hours)
The CNAME file must be present on every push, or the custom domain will need to be re-entered.
| File | Purpose |
|---|---|
README.md |
This file — setup and overview |
features.md |
Complete feature reference |
project-design-summary.md |
Architecture and technical design notes |
docs/user-guide.html |
End-user documentation |
docs/faq.html |
Common questions |
docs/resources.html |
Curated external links |
docs/about.html |
Project information and credits |
- Marathon sequence: Don Machholz, Messier Marathon Observer's Guide
- Object data: SEDS Messier Database (Hartmut Frommert & Christine Kronberg)
- Sky atlas references: Roger Sinnott, Pocket Sky Atlas (Sky & Telescope)
- AL program: Astronomical League Messier Observing Program
GPLv3 — free to use, share, and modify.
Questions, feedback, or bug reports: mmol [at] thgnetworks [dot] com