
In short
Asteria is a birth-chart guide built on our own Rust calculation engine, verified against JPL Horizons within 0.01°, that keeps fact and interpretation visibly separate for beginners.
ResultEngine positions verified within a 0.01° budget against independent JPL Horizons references.
- Status
- Web live
- State
- Web live · native in acceptance
- Engine
- Rust, built in-house
- Accuracy
- Within 0.01° of JPL references
- Built with
- Rust / React / TypeScript / Flutter
Inside the project
01 / 04The public landing: enter a birthday, and tonight's sky is described in plain words.
Captured from the Asteria application on 1 November 2026. Charts use fictional test data.
The brief
The problem
Most astrology apps either hand beginners confident answers with no way to see where they came from, or bury them in chart data that assumes years of study. When a birth time is uncertain, most apps guess without saying so.
What we did
Our approach
We built the calculation engine ourselves in Rust and checked it against independent astronomical references. The product then treats interpretation as something with visible parts: the Sun, Moon and Rising first, in plain language; the calculation behind each claim a tap away; and anything that depends on an unknown birth time marked as unknown instead of guessed. The same engine drives a daily sky view for visitors who have not entered a birth date.
Features
What it does
- 01
Plain-language Sun, Moon and Rising first
- 02
Calculation behind every claim, one tap away
- 03
Unknown birth time marked as unknown
- 04
Daily sky for visitors without a profile
- 05
Beginner and Pro views on one engine
Results
What happened
- Positions verified against independent JPL Horizons references, within a published 0.01° budget
- Uncertain birth times shown as uncertain rather than guessed
- Beginner reading and a Pro instrument view on one engine
- The same engine drives a daily sky view for visitors who have not entered a birth date
- Web client live; native client in release acceptance
Services
What this work shows we do
Custom software
Service pageSoftware built around how the business works, and run after launch.
Related work
Built with the same services
Developer ToolsJarvisMCP
JarvisMCP gives AI agents one governed door into our company systems: CRM, search intelligence, infrastructure, memory and coordination. Agents find the capability they need, act through it, and leave a record. They never hold the keys.
Read the case study
Business SystemsButlerCRM
ButlerCRM keeps contacts, deals, email, calendar and tasks in one workspace that updates live for everyone in it. We rebuilt it on Elixir/Phoenix so changes appear for the whole team as they happen.
Read the case study
How we work
How a change reaches production
The same five gates for our own products and for yours. Nothing reaches your customers on the strength of a demo.
- 01 · Isolate
Its own branch and workspace
Every change starts in a separate copy of the code, so work in progress never touches what is live.
git worktree add .worktrees/your-change - 02 · Build
Engineers with AI agents
Agents write and test code beside us. They hold no passwords: every call they make goes through our gateway, which checks it and logs it.
agent → gateway → policy · audit · call - 03 · Prove
Evidence, then review
Tests, before-and-after screenshots of the running app, then independent reviewers. It does not move on until no serious finding is left.
review: 0 high · 0 medium → pass - 04 · Ship
Deployed and checked live
The pipeline builds and deploys. Then we check the running service itself, not just a green build.
replicas 1/1 · image sha matches · health 200 - 05 · Watch
Checked every night
Each integration we run is tested against its provider every night, so a changed API is caught before your team notices.
nightly: each integration vs its provider