HN Companion◀︎ back | HN Companion home | new | best | ask | show | jobs
Show HN: We built a terminal-only Bluesky / AT Proto client written in Fortran (github.com/FormerLab)
70 points by FormerLabFred 9 hours ago | 36 comments
Yes, that Fortran.


Love seeing niche Show HN projects like this. The choice of Fortran is wild but that's what makes it fun. As someone building small Mac utilities, I appreciate any project that proves you don't need a massive stack to ship something useful.

AT Protocol is a joy to build on — open public data, structured JSON, zero auth friction. I built a Bluesky scraper using the same endpoints and it's one of the most stable scrapers I have. Great to see more tools for this ecosystem.

Brilliant in every possible way. Fortran was first language I learnt at high school in its "PORTRAN" variant.

out of curiosity, why fortran? no disrespect. I wrote a lot of scientific software in the earlier days of my career and I learned fortran to update ocean modeling software.

You are not the first one to ask :)

We built Cobolsky. Will go public soon. Parallelly too curious on Fortran. The world is better with a Fortran-based social network client in it :)

When we are building the feed composer, in next version, Fortran will be great for the algorithm etc.

Keeping the ancient languages alive. I built some Cobol stuff many years ago. Back at it again. Rusty.

Both Cobolsky and Fortransky looks great on Swordfish90’s cool-retro-term, but we are building our own terminal for Fortransky too. There is a blog post with screenshots over at Patreon/formerlab

Can’t get enough Fortran


> The world is better with a Fortran-based social network client in it

If you don't mind me asking, why is the world better with more Fortran-based software?


Our modern languages are built on it, and it’s incredibly fast,

so it deserves to be kept alive. We owe a great deal to the people who wrote it in the 1950s I guess


> Our modern languages are built on it

It's part of the lineage, yeah, probably started with Algol though? Fast I guess is always nice, but I'm not sure that's enough to keep it alive solely for that, at least to me.


I think the best answer you're really going to get here is that it's cool and fun to learn and use old languages.

This thread makes me happy

I came here to suggest COBOL as a better fit, then saw your comment a few levels up in this thread.

Out of curiosity, does your implementation use CODASYL?

(For people that don't pay much attention to historical software systems, most CODASYL implementations were similar to JSON document databases, so going that way isn't as crazy as it sounds.)


> why fortran?

why not? the language is straightforward and loops are fast. It is portable and your code will work unchanged for the next 50 years. It may be a bit verbose, but that's not a big deal with today's tooling.


Fortran will survive the cockroaches even, when the world 404s

Your code will work unchanged until you try to change compilers or your compiler adopts a J3 breaking change to the language.

> your compiler adopts a J3 breaking change to the language

Like all the 3 of them they added in the last 30 years, and that compiler vendors are not enforcing anyway because they don’t want to annoy their users?

Windows’ backward compatibility is a joke compared to Fortran.


Great, can we see some benchmarks?

maybe they weren't really concerned about portability or a decent standard?

It’s keyboard navigation only, and we got the Bluesky firehose raw straight into the Rust decoder. Or we switch mode to Jetstream with m+EnTER :)

You hit l+ENTER to like a post. If anyone replies from Bluesky, we hit n+ENTER and see the notifs. And so on

Fortransky is 70% Fortran, rest is Rust, C and a tiny Python helper


It's always nice to see production codebases in languages that you've never used but are interested in.

Tangential, but to the author, are there any FORTRAN codebases you feel are well designed?


Good reminder to dig around. Will check. We picked up the Fortran manual and just went for it.

The original Manual exists as a PDF. Was it in a Stuttgart uni URL? Just a search away.

Late in Sweden, gotta Fortran tomorrow. Happy to continue discussion here tomorrow.


Are there any other AT protocol apps that aren’t derivatives of bluesky? By that I mean, not social media feed related, twitter clone.

Yep lots! Mine is a livestreaming service: https://stream.place

Also a great blogging platform: https://leaflet.pub

Here's a goal tracker: https://goals.garden

This one just dropped recently; it's 44 different atproto-related apps with a cyberpunk theme: https://www.aetheros.computer/

Lots others mentioned here: https://blueskydirectory.com/


AT conference in a couple of days. In Vancouver. Bet they are all there and the rest of the AT bunch.

Don’t know if people are building GitHub-like systems, offline-first app sync etc

Many devs reuse schema and write some twitter/bsky clone

Kind of search engine for my Blueaky likes

Gotta get off the timeline, germ has a messaging app, then there is Tangled and some more

We do Fortransky and Cobolsky now, got more ideas for the protocol than time :)


https://tangled.org/ <--- GitHub on ATProto

that's all I'm aware of

(edit) Oops, just saw that you mentioned it, confused by your first line then. Tangled is awesome!


i am currently working on a dropbox alternative: https://dropb.at

y'all gotta throw this up on https://tangled.org ;)

thats COBOL :)

On ATProto: it’s funny how we never learn the lesson:

- VCs band together to fund something shiny.

- Devs love shiny, helping spread the something.

- VCs enschitify it to get their coins back.


The world is a better place for this app. Wonderful!

:) I mean there are still some people alive out there who never saw a web UI when beginning dev. They get a bit nostalgic, missing their 286

It’s fun and it is appreciated by them, and the young ones who are curious


Oh this is cool

fortran > cobol

fortran .GT. cobol

> forever

From my experience building browser automation tools, the biggest challenge with most Chromium-based solutions is that their TLS fingerprint is a dead giveaway. Firefox-based approaches tend to fare much better against JA3/JA4 fingerprinting.

The key insight is moving fingerprint spoofing from the JS level (which is itself detectable) down to the native C++ level. It's a fundamentally different approach.