AstonJ

AstonJ

What role can Elixir play in reclaiming or building a better internet?

@Garrison’s comment in another thread reminded me of this post by Joe:

With the big five exerting more control than ever, new (AI) players entering the fray, and *increasingly draconian internet laws being passed all over the world more and more people want to take back control of the internet or to find an alternative - with the original promise of the net in tact and something fit for a modern free world.

*details/articles

So with the call for a new or freer internet being at an all time high, what kind of role do you think Elixir could play in its creation from a technical standpoint?

Maybe:

  • Peer-to-peer networks?
  • Local mesh networks?
  • Blockchain based domains with decentralized DNS systems?
  • Decentralised VPNs?
  • IPFS (InterPlanetary File System)?
  • Pluggable Transports?
  • Something else?

Is a free and open web important to you?

Can you think of ways in which Elixir can help?

Most Liked

derek-zhou

derek-zhou

I believe the future of a free internet lies with personal web applications. A personal web application is self hosted, often self-developed, has few power users other than the owner himself, yest still provide public access. Elixir is easier to get started (Phoenix generators), easier to reuse other people’s code (hex.pm), and easier to host (self-contained release, fly.io); it is a natural fit to develop you personal web applications.

sanswork

sanswork

You can’t really fix something with tech that most people don’t see as broken. There is a reason people flock to the biggest sites and its not because the technology for self hosting smaller sites and forums doesn’t exist.

When I was younger I modded a lot of forums and there was a pattern you’d see on most forums where at some point a group of people would get annoyed at the modding or some other rules and declare that they were leaving to start their own forum with better rules and they’d post a bunch about it then disappear for a few days to chat between themselves in their new forum. No one would follow though because of switching costs and because the conversations and people were already where they were and so after a week or two the people that left would inevitably come back.

We’re seeing the same thing with the push for web3 and distributed web apps now as that. The % of people that care about this stuff is a rounding error so their sites are dead and thus when people do decide to go have a look they see a wasteland and bounce quickly.

mudasobwa

mudasobwa

Creator of Cure

That’s absolutely correct save for several exceptions. Calendars work exactly the way self-hosting-people do propose. I host my calendar, G hosts yours, and yet they are both fully functional, because of handy interchange format. Oh, wait, even mail does work that way.

The issue, in my humble opinion, is not people are stuck to their facebooks, but the interchange which is broken (intentionally by bigcorps, but also because self-hosters are not always smart enough to understand what you’ve just said.) Fediverse tries to fix it. To some extent it even succeeded, and one might get to bluesky fellows from self-hosted mastodon instances.

But in general, unfortunately, nobody cares. Can I connect my blog (supporting fediverse shenanigans) to that forum?—Nah. Why?—Because nobody gave a shot.

That said, I think we need a working interchange before self-hosted-world. Then the migration of some of us happens and there might (or might not) be a snowball effect.

pawoc50825

pawoc50825

This is an exciting topic I meant to talk about in my original post!

inkandswitch.com/keyhive

  • Keyhive is a project exploring local-first access control. It aims to provide a firm basis for secure collaboration, similar to the guarantees of private chat but for any local-first application.

I highly recommend for anyone interested to read the whole linked article, I can’t really do it justice. Here’s some pretty pictures from the notebook :slight_smile:










plcholder

plcholder

The elixir comm is most definitely missing out on “web 3”, I understand many people dont like crypto and the usual languages used in this space are golang, java, rust & c#. Elixir can play in the c#, golang, java arena side of things and can help in some aspect for the rust side of things

For example in ethereum there is something called client diversity , the aim is that if you have the same protocol & vm programmed in different programming language’s, if one programming language has a glaring flaw in the future like an rce, since the control of the consensus is spread out between multiple implementations in different PL mitigation would be trivial. I always thought an elixir implementation would show the world how great elixir is at running network applications

Another point, some people in the evm community felt the “standard” golang implementation go-ethereum was slow at certain tasks and then attempted the herculean tasks of rewriting everything in rust, to fit there high performance checklist, I think it took them ~3 years to get to 1.0 and I thought if the standard implementation was written in a beam language and the high performance parts were brought in with rust NIFs how fast would there time to market have been?

I think elixir is perfect for the crypto/decentralized space, now granted ethereum is on the slower end of things with ~12s block times, you have something like solana that builds tx in 200ms, but again how much of the code could’ve been simplified if you handled all the network stuff to the beam and then rust NIFs for the heavy lifting stuff? Alot of decentralized protocols have slow build times

Where Next?

Popular in Discussions Top

bartblast
StackOverflow Survey results for 2025 have been published: Gleam - 2nd most admired language Elixir - 3rd most admired language Phoenix...
New
AstonJ
Phil just posted this on EFS: …interesting that some of the key updates to JavaScript appear heavily influenced by (or blatantly copied...
New
dimitarvp
Hello, I am looking to more closely understand the advantages of the Repo.transact pattern and the quoted disadvantages of Ecto.Multi. ...
New
garrison
The Elixir ecosystem is one of our biggest strengths, and the BEAM really lends itself to native implementations (e.g. Cachex over Redis,...
New
ivanminutillo
Bonfire is an open source framework for building modular federated digital spaces. It’s built entirely with Elixir, including LiveView (a...
New
AstonJ
Have you changed the way you learn? Maybe you started off using docs and tutorials and are now an avid book reader or course watcher? Or ...
New
stevensonmt
Has anyone else ever wanted to merge two maps, but have the resulting map only include keys common to both maps? I think of it as analogo...
New
AstonJ
@Garrison’s comment in another thread reminded me of this post by Joe: With the big five exerting more control than ever, new (AI) play...
New
dogweather
I’ve been brainstorming about ways to solve the N-dimensional code organization problem, and am thinking about developing a Smalltalk-lik...
New
dogweather
I realized I could really use something like this in my Phoenix project: I asked Claude 4 Sonnet if a port exists - it said no, and ga...
New

Other popular topics Top

vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New

We're in Beta

About us Mission Statement