Skip to main content

/writing

Rebuilding SentiNEO as a Desktop

· 3 min read

SentiNEO tracks the asteroids passing close to Earth. For its first couple of years it was one page with a list on it. I have just rebuilt it as a desktop of windows you can drag around, and the reason had nothing to do with the framework.

The problem with a list

The old version showed the week’s close approaches as rows. You read one, then the next, and the page holds a single thing in front of you at a time.

That does not match the questions people bring to it. Is this asteroid closer than that one. Is four lunar distances a lot. Does this orbit cross Earth’s at a steep angle or barely at all. Each of those needs two things on screen together, and a list gives you one.

Why windows

So the new version has nine panels and lets you arrange your own screen.

A window is the cheapest thing I could build that puts the feed next to one asteroid’s orbit, or two asteroids side by side. “Which of these two is closer” is the sort of question the old version could not answer at all.

I could have picked the arrangement myself and shipped a fixed grid. I did not, because no single arrangement suits both someone checking tonight’s sky and someone reading through the risk catalog.

The layout lives in the URL

Once someone has arranged four panels the way they want them, that arrangement is worth keeping. It has to survive a refresh, a bookmark, and a link sent to someone else.

So the layout sits in the address bar: which windows are open, which one has focus, and what each one is showing. Nothing is stored on a server and there are no saved-layout ids.

What I got wrong was the testing. When the layout is a URL, every link is a promise about what you will see, and a broken promise still returns a valid page. No error, no failed request, nothing in the console. Someone follows the link and gets a screen that looks fine and is not the one they were sent.

That happened to me. Links I had published pointed at the wrong panels for a while and nothing complained. What catches it now is a test that walks every link the site publishes about itself and checks each page against what the link claimed.

The phone needed its own interface

Windows only work when there is room to put them side by side, and a phone has none. There is also nothing to drag them with.

So the phone got a different interface instead of a smaller one. One panel at a time, full width, a tab bar and swipes to move between them, and a flat radar in place of the 3D globe. Same data, same links, different shape.

That sounds like a compromise and it is the same reasoning as the desktop. Windows were worth it on a wide screen because there was room to answer two questions at once. On a phone there is no room, so keeping them would have kept the look and lost the point.

What I took from it

The rewrite was worth doing because I could state the problem in one sentence: the old version read well and compared badly. That is small enough to hold in your head while making a thousand decisions, and specific enough to say no with.

Every scope question got the same test. Does this help someone put two things next to each other and decide something.