Skip to content

Case study

Change of Chart

A personal astrocartography map that calculates entirely in the browser — no backend, no signup. Enter your birth details and see where each planet was rising, setting, or at its highest point around the world, explained in plain language instead of ephemeris data.

Client
Cryptid Studio
Year
2026
Disciplines
2

5,972

Cities in database

40

Planetary lines

0

Backend servers

< 0.5°

Position accuracy vs. Swiss Ephemeris

Research

The research subject was existing astrocartography tools — and most of them read like ephemeris spreadsheets: technically accurate, but cold, usually gated behind an account or a paid API, and silent on what a line actually meant or why it mattered.

The gap wasn't the astronomy. It was the explanation.

UX decisions

Recommendations and their explanations live in one unified, expandable panel instead of two separate boxes — click a line, it opens in place.

Every nearby city gets a plain-language 'why,' not just a distance in kilometers.

The app opens to a blank welcome screen, never someone else's birth data, so a first-time visitor never mistakes a stranger's chart for a demo.

Iteration

Started as a static prototype with one hardcoded birth chart, then rebuilt into a full client-side engine so anyone could enter their own data.

The city database grew three times over — 169, then 256, then 5,972 — as real gaps kept surfacing.

An accessibility pass added keyboard navigation and proper ARIA roles across the map and forms after testing revealed none of it was reachable without a mouse.

Implementation

Vanilla JavaScript, no framework, no build step.

Planetary positions come from Keplerian orbital elements solved directly in the browser, validated against Swiss Ephemeris.

Timezone offsets resolve automatically and historically-accurately from birthplace using the browser's own Intl API — no timezone database had to be shipped by hand.

No backend, no signup, nothing leaves the visitor's browser.

Lessons learned

The Moon's position was once off by 19 degrees — traced back to a single 1.5-day epoch mismatch buried in the orbital element formulas, only caught by cross-validating every planetary position against Swiss Ephemeris until they lined up.

The other lesson was about naming: nearly every promising name was already taken. 'Astro' and 'Atlas' turned out to be two of the most oversaturated words in this exact category of app.

Outcomes

Live and free to use, calculating real, validated birth charts entirely in the browser — no account, no data collection, no server.

Selected views

Birth details form with automatic timezone detection
Pick a city and the timezone resolves itself.
Recommended planetary lines panel with nearby cities
Click any line to see what it means and what's nearby.
Compare Two Places tool showing planetary lines for two cities
Compare any two places side by side, with a synthesized verdict.