The Gemini protocol is brutally simple, which makes it just about too useless for apps, tracking, and commercial purposes. Gemtext, the format for Gemini pages, is very basic; with about half as many features as markdown, it’s barely a step above plain text. As a result, Gemini is a small universe of blogs and personal sites.
Its simplicity makes it easy for people to create compatible clients and services for it. It’s self-hosting friendly and there are also hosting services, like smol.pub and some pubnixes.
Of course, you’ll need to get a Gemini browser or visit a Gemini-to-web proxy to access it.
You can just scrap the protocol and serve plaintext, or with just basic html tags like bold , links etc if you want to, works with any navigator.
What is the benefit of using a special navigator?
I’m asking because I think the idea kind of neat, and I’m working on something similar.
Because it was designed on purpose to not even have the ability to be enshittified. No scripting engine, on purpose – no popup ads. No cookies, no tracking.
Things that were originally thought as good things to add to the browser in retrospect have been abused so much, it’s better to not have them available for mis-use.
The issue is the structures motivating companies to enshittify. Not the technology. Blame late stage capitalism not JavaScript.
I will never NOT blame JavaScript for ANYTHING
You know JavaScript allows websites to be more local first, right? Apps that would otherwise require a server to handle a lot of the rendering logic. Sure, you can wish we had a front-end scripting language other than JavaScript, but modern JavaScript is pretty good actually. There’s been a ton of work by browsers to optimize performance, and TypeScript has made shipping JavaScript with confidence much easier. Facebook has made it possible with Hermes to ship bite code pre-compiled JavaScript. The entire JavaScript tool chain is currently being rewritten to Rust and Go for massive speed increases. I’ve been writing JavaScript for a decade, and it used to suck. It’s a wonderful time to write JavaScript.
I know what JavaScript is.
I’m saying any language could perform the same function.
My issue is with the design of the language and its gargbage feature set.
What would you change about JavaScript? Like specific language features you don’t like. Not general statements.
Try to learn it and you’ll see!
At least if you know programming beforehand.
I’ve been writing JavaScript for 10 years, the majority of that professionally. I have a formal education in computer science. In college, I wrote Java, assembly, C, Python, Lisp, Prolog, and SQL. Outside of school, I’ve written Go, Rust, Ruby, and probably dabbled in a bunch of others.
As someone that knows programming and that has learned JavaScript, I don’t get the sense that people here have actually given JavaScript a fair chance. Sure, it’s not without its issues, but why don’t you learn it and see?
Voyager, which I believe is the most popular Lemmy iOS client, is written in JavaScript. It’s a fantastic app. There are a bunch of people that love hating on JS, but there are also a bunch of people that hate being locked into cloud services that can be shut down at any time. JavaScript allows you to build local-first apps that are less dependent on a server (obviously, backend is still a thing).
Types?
Edit:
For clarity, consider all the shit an actual real production scenario demands of layering on library after library and framework after fucking framework to make it usable.
Nobody even USES “JavaScript”, they use like 7 layers to try and turn it into a production ready environment.
Why.
Because JavaScript sucks.
Look at what they need to mimic a fraction of what other languages come with out of the box.
TypeScript solves most of your type issues. Zod gives you runtime enforcement of those types if you want, if you can stomach installing a library. But it’s true it’s not actually a statically typed language with built-in runtime enforcement of types. I hope in the next 5-10 years we see browsers that are able to run TypeScript with both runtime enforcement and performance benefits from using actual static typing. But IMO TypeScript is good enough solving most of the type problems with JavaScript.
You’re welcome to use as many or as few libraries as you want. There are tons of JavaScript libraries, and some of those libraries have way too many dependencies. But if you cut through the noise, there are actually a lot of high-quality libraries that don’t have an absurd number of dependencies and bring a lot of value.
JavaScript is by no means perfect, but I think it’s become trendy to hate on it. Every language has its issues. JavaScript has done an amazing job outgrowing many of its problems. Growth has brought new problems, but I’ve been writing JS/TypeScript for 10 years, and would not like to go back to JS 10 years ago. It kind of sucked compared to today.
This
Thanks. I’m building my own Lemmy client and I’m leaning very heavily on JavaScript 😅, but it’s 100% local first, only depending on the Lemmy API.
I’d love to see support for the protocol baked into the big browsers.
I really think we missed an opportunity to have an
app://
protocol back in the ’00s instead of trying to kludge HTML into being software.Browsers could totally do multiple protocols. I think
ftp://
andgopher://
still works on most of them.Used to – I think both ftp:// and gopher:// have been removed by the big browsers (eg Chrome and Firefox).
Can’t have competing standards that might let us avoid ads now, can we?
B-but think of the golden parachute the Mozilla CEO can get!
This is a good question that’s often asked about Gemini. The creator addresses this in a part of the FAQ: Why not just use a subset of HTTP and HTML?
Personally, I find Gemini nice because its utter basicness guarantees that there’s no room for the kind of bullshit you might find on the web. Sure, you and some other nerds could make a “friendly HTML” club, but participation is voluntary and there’s no way to enforce the rules to keep the pages simple. And how would you know what sites are “friendly” just by looking at the hyperlink? Gemini creates a universe where sites have to be “friendly”; there is no other way.
Fair enough! Good points actually.
What I have seen with concepts like this is that’s infuriatingly hard to start. I tried getting on the rss bandwagon for example and it’s just not very user friendly IMO. Is there for example a Gemini search engine?
Will FF display a Gemini page as text only?
Where do you hang out and exchange links 😁 ?
Yes. Two, actually (that I know of).
Firefox doesn’t directly support Gemini, but you can view pages through a proxy like portal.mozz.us. Gemtext, the standard page format, has basic formatting syntax, and yes, it’s text only. There’s no mechanism for embedding images in pages - the best you can do is just link to them. In this one popular client, Lagrange, clicking on a link to an image displays it under that link, but other clients handle image links differently.
I just lurk and read gemlogs (of course they can’t be called blogs, that’s short for web log!). There are sites with feeds of latest gemlog posts, and many sites that offer Gemini hosting have a list of recently updated pages. There are some minimal social networks, too. The front page of portal.mozz.us has a few links to these kinds of spots.
Why not both? There are bridges that automatically convert and serve Gemtext to simple HTML for “regular” browsers.
In a similar manner, I wrote a set of scripts that takes gemtext source and creates both Gemini pages (by adding headers and footers) and static HTML pages (same but with some web-specific niceties - CSS, even JS snippets)
(And yes, I really enjoy gemtext markup for its simplicity)