HN.zip

All 9,300 Japanese train station, animated by the year it opened (1872–2026)

129 points by momentmaker - 41 comments
chamomeal [3 hidden]5 mins ago
Super cool but I did get this error while scrolling the timeline on safari/iOS

Application error: a client-side exception has occurred while loading jivx.com (see the browser console for more information).

jorisw [3 hidden]5 mins ago
Yep, seems to refer to "SecurityError: Attempt to use history.replaceState() more than 100 times per 10 seconds"
kccqzy [3 hidden]5 mins ago
I hate the History API especially pushState. Even with this limit of 100 times per 10 seconds it still pollutes my browsing history too much. I need to vibe code an extension that makes pushState/replaceState noops on all webpages.
jorisw [3 hidden]5 mins ago
Seems like you hate the abuse of the API more than the API itself. For Single Page Apps it makes sense to support the Back button by, based on merit, populating the history synthetically
IncreasePosts [3 hidden]5 mins ago
Then you'll discover many pages are SPAs in disguise.
_alternator_ [3 hidden]5 mins ago
Cool idea!

Not sure if this was created with LLM help, but I suspect so? Not because the page is buggy (it is, though, crashed on my iPhone), but because they make data visualization so accessible. This type of presentation used to take days of work; now, if you find a unique piece of data, it's only a few hours of work to create a beautiful animated visualization.

I do think this would be more compelling with some additional context or data integration. Zoom, the ability to click and see the full details about each station, which company (my guess is that it's all JR?).

Ok final note: the intersection of Japan and trains is basically HN crack, and I love it.

zzleeper [3 hidden]5 mins ago
I created pages with Claude before and it's very very obvious when you see one. From the font choice to the color palette, and the style of the boxes. In fact if anyone has an effective prompt that says "please don't make this look like the average Claude page" please post it!
Multicomp [3 hidden]5 mins ago
I've had some luck giving either an example website to ape or listing out a particular era, monkey see monkey do seems to help a bunch.

I've done each of the 3 for side projects below to pretty good effects.

> This website will be run by IE6 and Windows Mobile 6, so use no dependencies, semantic HTML, a 3-pane layout, and only use JS (es3!) where absolutely necessary (and where necessary, put the script at the end of the body).

When I'm not specifically targeting support for retrocomputers I do something like this, then iterate until it looks right.

> Go look at Dokuwiki, django defaults, and common web 2.0 color schemes, use those for UI inspiration. Keep a 3-pane desktop-first layout, but enable mobile responsiveness with media queries. Use semantic html5 and prefer older boring solutions like surgical jquery or htmx-style islands of interactivity where needed, otherwise do not bring in dependencies without my say so.

And finally, if I'm doing a web app that I'm vibing out with the web stack because I want it one-shotted and not trying to do a good rust core with strong ports/adapters API surface for web or native client callers, I do something like this:

> This is a local web app, the frontend, backend, and desktop are all on the same machine. Use naive and simple development patterns that you document the style as you go, pick a boring web framework and use it idiomatically, but remember that some tricks that are intended to keep network round trips down are not as necessary because network penalties are not as bad as real traffic.

Granted, the above I don't like as much, but it does produce more 'modern' looking sites by default.

emodendroket [3 hidden]5 mins ago
Not sure that's necessarily any bigger a deal than when every Web site had the "Bootstrap look."
ageitgey [3 hidden]5 mins ago
Anthropic's own frontend-design skill attempts to do that. You can install it in Claude Code, or you can tweak it to be closer to your own style:

https://github.com/anthropics/claude-code/blob/main/plugins/...

But what I find works best is to point Claude at a design system documentation website (your own company's or another public source) and tell it to use that design style. It usually does OK, and the results are usually much more in line with that style and not as Claude-y.

rlorenzo [3 hidden]5 mins ago
That skill has not been updated since its release.

I would suggest checking out this project for a boost in design skills:

https://impeccable.style

esikich [3 hidden]5 mins ago
Just give it actual ideas of what you want instead of "make me a web page". Garbage in garbage out.
csomar [3 hidden]5 mins ago
The Claude style (colors/fonts) give it right away. The website did also crash for me too with the famous nextjs death screen.
boxed [3 hidden]5 mins ago
> Not because the page is buggy (it is, though, crashed on my iPhone),

Maybe you meant Safari is buggy and crashed? I can easily get Safari to crash by zooming in and out a bit. Reports to Apple go ignored...

_alternator_ [3 hidden]5 mins ago
I get the sentiment. I don't love that different browsers have different behavior even on standards compliant code. But I've also done enough web development to know that if your page crashes safari in the main user flow (in this case, just hitting 'play'), the dev owns the bug.
jorisw [3 hidden]5 mins ago
Safari didn't crash. The web app did, for abusing the browser history API.

> SecurityError: Attempt to use history.replaceState() more than 100 times per 10 seconds

cpa [3 hidden]5 mins ago
Super cool! I did something similar (in terms of visualisation) a few years back, a map of cities by their birthdate on wikipedia: https://cpa.github.io/wiki-cities-birthdates/
kalleboo [3 hidden]5 mins ago
Never seen this one before:

"[Error] SecurityError: Attempt to use history.replaceState() more than 100 times per 10 seconds"

klabb3 [3 hidden]5 mins ago
I had a near-instant crash too, but different kind. Firefox iOS. The vibes are leaking
busymom0 [3 hidden]5 mins ago
On iOS, all browsers use WKWebView behind the scenes as required by Apple. So crash behavior is similar to Safari.
decimalenough [3 hidden]5 mins ago
Now we need a part two that shows how the rural parts of the same network are slowly being closed due to depopulation. As of 2025, Japan has lost 1366 km of track (about 5% of the total) since the 1990s.

https://en.wikipedia.org/wiki/List_of_closed_railway_lines_i...

wolvoleo [3 hidden]5 mins ago
To be fair, most countries have due to privatisation and people getting wealthier and buying cars. In my country a ton of lines have closed down too and ourv population only grows.
panny [3 hidden]5 mins ago
>people getting wealthier and buying cars

Haha, my experience is people buying cars feel poorer, not wealthier. Car payments, maintenance, insurance, taxes, fuel... and as soon as you finish paying it off, it's basically EOL. Time to start paying for the next one.

panny [3 hidden]5 mins ago
>closed due to depopulation

Meanwhile, there's more people in the city of Tokyo than nearly the whole continent of Australia :) Japan's population is concentrating into a handful of big cities. I mean, who wants to live in a small town when there are endless options for shopping, restaurants, etc in the big city? It's not like in the US where big cities are dangerous. There's not much of a positive tradeoff for choosing small town life in Japan. Maybe you think you want to be a big land baron as all Americans seem to desire, but then you find out that undeveloped land in Japan is heavily taxed with property taxes. If you are not doing something very productive with Japan's limited land, Japan wants you to move your arse off it and let someone with a plan work it. Anyway, as rural areas empty out, the local rail lines close. JR is however building lots of bullet trains to connect the big cities. There is a new bullet train line opening soon between Shin-Hakodate and Sapporo for instance. It will probably be extended from Sapporo up to Asahikawa after that.

loorke [3 hidden]5 mins ago
Yeah, I've noticed this as well. They not only slowly close old stations, but they almost stopped building new ones since about 2007.

I don't understand why people downvote your comment. It isn't like you're forcing them to have babies and do something about the world by stating the fact about Japan's decline

panny [3 hidden]5 mins ago
The "decline" you mention is privatization of JR and their efforts to make it more profitable. Privatization started in 1987, but it wasn't fully privatized until 2006.

If it has anything to do with babies, you have your cause and effect reversed. Autos are a cause of declining birth rates...

https://www.journals.uchicago.edu/doi/10.1086/731812

So a reduction in trains causes a reduction in birth rates, not the other way around.

game_the0ry [3 hidden]5 mins ago
Very cool. I am a sucker for good design and this site was beautiful to look at.

I noticed that most of the track was laid down in the 1920s and 1930s. Any ideas why?

throwup238 [3 hidden]5 mins ago
> I noticed that most of the track was laid down in the 1920s and 1930s. Any ideas why?

They were originally built for military logistics to move troops, guns, and supplies around the country.

game_the0ry [3 hidden]5 mins ago
You have to appreciate how people would think long term back then. We lost that quality -- our corporate leaders can't think past 1 quarter.
hyperific [3 hidden]5 mins ago
On mobile pressing play makes the timeline go from 1872 to 2026 in a single step.
branon [3 hidden]5 mins ago
This occurs for me on desktop as well (Firefox, Linux)
panny [3 hidden]5 mins ago
It would be interesting to see a negative bar with station closures as well. And some way to zoom the map would be nice.

As a point of interest, I'll mention Tōgeshita station. A station in the middle of nowhere. Sometimes, a station would exist purely because that's where trains needed to pass one another. Tōgeshita was one of those.

Whenever I passed the station, it was strange, almost a creepy feeling. I think it could have been a great plot for a Japanese horror movie, something in a "Blair Witch Project" style... the old one car train slows to a stop. The door opens, no one dares get off there. Except you, with your portable camera, a cavalier exit from the train. The conductor casts you a side eye with a dead pan 'arigato goziamasu.' The creaky diesel train car slowly pulls away and you're left there stranded for the next few hours until the return train comes around. I wonder what I'll find in the forest just beyond those trees....

rsynnott [3 hidden]5 mins ago
This is a station which exists solely for transfer between two lines. It has no entrance. Idea always made me a bit nervous: https://en.wikipedia.org/wiki/Manulla_Junction_railway_stati...
psanchez [3 hidden]5 mins ago
I love the fractal nature of it.
LurkandComment [3 hidden]5 mins ago
That whole website is just beautiful. I'd love to see more work by the designer.
kevinwang [3 hidden]5 mins ago
Good/bad news: you will definitely see more work by them -- this style of website is clearly the output of a coding agent, maybe Claude Code.
elxr [3 hidden]5 mins ago
It's beautiful I agree, but that "designer" is just claude opus.

Lots of examples on x and on reddit of similarly styled apps made with the help of opus.

panick21_ [3 hidden]5 mins ago
Would be cool to somehow see how the volumes of passengers grows as well.

I also want to see if we have this information for Switzerland.

Innittech [3 hidden]5 mins ago
[flagged]
panny [3 hidden]5 mins ago
Oh, someone is jealous. His country will never be responsible for the longest underwater tunnel in the world. How will he continue to tell himself he is the greatest country? :)
Innittech [3 hidden]5 mins ago
The tall poppy gets its head chopped off. Don't tempt fate!