It looks like my last post on a proposal for a small web browser caught on. Thank you all!

Now, I encourage the community to discuss about the sanest HTML5 and CSS3 subset (sorry, no JavaScript) we can restrict ourselves to in order to achieve simple and privacy-conscious implementations.

I am also interested in the concept of identities as suggested by @aral . Could we please elaborate on this?

Read the proposal below:

xavi.privatedns.org/blog/small

#smallweb #foss #privacy #web

Follow

@xavi92 Personally, I think that Gemini is the way to go, I think that you will never be able to win if you play on their field โ€” the web should be just abandoned. If you want to make Gemini accessible from web browsers of today, you can make a Gemini browser web app ๐Ÿ˜…
But if anything, I think it would be more reasonable to build on top of what netsurf already has โ€” it's already quite portable and would provide a solid foundation.

ยท Web ยท 3 ยท 0 ยท 0

@xavi92 I think there was even a fork that used CMake โ€” which is garbage on its own, but still better than the custom build system it has now.

@m0xee netsurf was considered as one of the viable choices on the proposal, although it implements neither HTML5 or CSS3. Also, while I write most of my projects in C, a small web browser is still a non-trivial project with substantial attack surface, so maybe we should consider more ergonomic programming languages, such as Rust.

That said, I think netsurf can be interesting for experimentation.

@xavi92 Yes, I've read your proposal. I think using Rust might be a good idea from memory safety perspective, but Rust is only good on platforms it's well supported on, with Windows, Mac OS X and Linux on ARM and x86_64 you'll be just fine, but what about very niche platforms that NetSurf works on? Are they well supported by Rust? I'm not so sure. Rust's own portability is one thing โ€” third-party crates is another, for example Rust's toolchain including Cargo builds and runs fine on PowerPC, but ring โ€” popular cryptography crate doesn't, I've made it build, but most tests fail, it will require more porting effort.
NetSurf is small, relatively simple and portable โ€” that's why I think it's a good choice :marseyshrug:
@m0xee

@m0xee OTOH even if I am a Gemini user and admin (see gemini://xavi92.privatedns.org) myself, I feel the Gemini protocol is narrowly limited by design to one use case: personal text blogs (aka gemlogs). Some of its "features" (e.g.: no inline images) are even detrimental for other legitimate use cases, such as art-related sites.

Let alone the use of TOFU + self-signed TLS certificates, which also brings its own fair share of issues.

@xavi92 Sure, Gemini isn't "one size fits all" โ€” far from it, more like lowest common denominator, but guess what, your vision of smaller web isn't that either. While you can have image galleries with just HTML5 and CSS3, you can have rich documents that gemtext will never be, but can you do video sites (for short snippets I think you can) especially with features most got used to like on the fly resolution/quality switching, uploading or very simple editing, can you build something like SoundCloud? Some things that are not themselves evil like ProtonMail require not only JavaScript, but browser cryptography โ€” that is a big no-no; things like Go Playground require even worse things like WebAssembly โ€” which should have never existed.
If we want to do the same things we can do with the web today, we'll just rebuild it again. I just don't see where that sweet spot it, why have one, but not the other, why have photo galleries, but not sites like Vimeo โ€” some might consider that a legitimate use case.
It's true, gemtext doesn't have inline images, but GUI browsers like Lagrange and Buran that I use on my phone inline them just fine. But what about TUI browsers like Amfora I like very much โ€” not having inline images works just fine right now, but what if you have to do that, how should this be done? Is ANSI-art โ€” the way gomuks renders thumbnails or is it sixel โ€” perfectly usable in w3m, but it's still old suboptimal technology no one should rely on.
How good are inline images from accessibility perspective? In HTML we have alt text, but I can have the same description with gemtext.
Gemini having the absolute minimum of features allows to go back and reflect on what else might be required to make browsing an enjoyable experience again and not get the monstrosities of "web apps" โ€” I think that in a lot of cases people need those as there are no real apps that do the same. Web apps were perfect for centralized web of today, you didn't have to stick strictly to the spec โ€” just update your web app and everyone has it, it won't work like that with decentralization: you can't make these small rapid changes anymore, you have to stick to the protocols so it works for everyone and so regular desktop apps that have their own pace of development might work just fine again.
And yes, on the surface gemlogs are the primary use case, but there is Station, there is Bubble โ€” so small forums and guestbooks that made the old web enjoyable work just fine too. Well, if you don't want tables or inline images or marquees :marseylaughwith:
@m0xee

@m0xEE@breloma.m0xee.net @m0xee@librem.one Of course, there is no "one size fits all" because, well, that's the main issue with the modern web, after all. But a reasonable and stable subset of HTML5 and CSS3 alone would allow for a wide range of use cases, much wider than Gemini would ever conceive.

@xavi92 Don't get me wrong, for me Gemini is perfect as most "content" I "consume" is text, but I totally get that it's not for everyone, and I think it would be great to have a lightweight portable browser with CSS3 support โ€” one of the things that made Nitter unusable in NetSurf is lack of CSS support, JS was optional. The more the better!
I just wanted to note that there is no "sweet spot" here, for me it's Gemini, for you โ€” the Web sans the JavaScript, for others โ€” who knows? It's very important to understand what "small web" should be to pursue further goals, is there target audience for that at all? One of the strongest point of Gemini is (apart from lower hardware requirements) it's relative ease of implementation โ€” you can have a Gemini browser on a pocket calculator, but if no one wants that? Who cares, you've only spent a day on it ๐Ÿ˜‚
Implementing CSS3 on the other hand is no small feat โ€” even getting relatively decent "modern" font rendering is, st relies on freetype and it's far from perfect, what looks great on one system might be absolutely disgusting on the other and it's not a matter of font preference โ€” I use the same font set on devices with screens of very different size and quality: you try to adjust just the size and font turns into a mess, you try to adjust weight and hinting, then go back to system with bigger screen โ€” and it's unreadable again, web browser engines have to have a lot of quirks to look relatively consystent across systems.
That's it โ€” a lot of effort, but is there even audience for that? Me? You have my full support, I'd definitely find uses for something lie NetSurf, but with proper CSS support.
@m0xee

@m0xEE@breloma.m0xee.net @m0xee@librem.one I agree there is no "sweet spot" for this, so it must be decided somewhat arbitrarily. However, there is a bunch of evil features most privacy-conscious users would generally avoid e.g.: cross-origin requests, cookies or browser fingerprinting, among many others.

I agree on CSS3 being far from trivial. I hope some existing free software can be reused for such purpose without a lot of hassle.

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml