The 2024 Wheel Reinvention Jam just concluded. See the results.
Exploring what browsing the web could look like with Orca. Rethinking the way we manage domains, encode URLs, and author links in a browser

About Orca Links (Modern URLs)


This is an unofficial experiment meant to explore what the future of the internet could look like with a new browser and front-end (like Orca). In particular, I want to investigate the idea of URLs and links and how they play a role in the browser experience. Here are some guiding principles for things I think could be improved upon

  1. The value of a domain is highly variable. If I want to buy any 3-4 letter word as a domain in the .com space I am likely going to pay a LOT of money for it. Even if no one is using that domain for useful purposes. The speculative value of short domains is a downside to the guarantee of unique urls and it highly skews towards short english words as the most valuable
  2. URLs only allow a small subset of unicode characters, meaning they heavily preference English speakers, or languages that use the latin alphabet. I'd like for URLs to be translatable so you can use the word or set of words in your own language to visit any particular site (both small and large sites should have good support for localization, it should be an easy thing)
  3. URLs are entirely text-based currently, the other metadata and content related to a particular domain (it's icon, who owns the domain, how long it's been in service, etc.) is usually somewhat hard to obtain, or there's no official way to inspect them as a user. I'd like for a domain to have extra metadata publicly available and as closely tied to the textual encoding of the domain as possible

These are all personal goals and values I hold going into the project. Some of them might not be perfectly solvable, or may include trade-offs I didn't foresee going in. I'll probably do some mock ups of the system in Orca, but the goal of this project is not to authoritatively establish a standard for Orca or any other modern web variant to use, but to explore a space and hopefully produce a potential alternative to the way we think about URLs in the current web ecosystem.

Read more
Filters

Recent Activity

Here's a very informal blog post I wrote to start off the jam for my &modern-urls project. Don't expect too much from it, but if you have a bit of time and find the topic interesting feel free to give it a read https://www.siltutorials.com/blog/the-url-problem
(Reposting because I got the & mention wrong, and editing the post didn't seem to work)

View original message on Discord

One way to solve this problem is to give every computer in the world a unique identifier. In this hypothetical past, when there were only 10 computers, we could just label each computer with a number 1, 2, 3, etc. and then we could use that number to uniquely talk about each computer. Maybe my friend owns computer 3, he tells me his computer is 3, and on my computer which is 4, I say I want to connect to computer 3. So my computer looks at every computer connected to it and finds the one that reports itself as computer 3. This is pretty simple, and actually would work great if it weren't for a few fundamental problems:

1. There are more than 10 computers in a world. Way too many for a human brain to remember each unique number. Too many for my computer to ask every other connected computer what number it is as it tries to find a particular computer.
2. Humans are not as good at remembering "random" series of numbers as they are at remembering names and words in their own language. I can remember 10 random English words easier than I can 10 random numbers between 0-255, and that's not a fair comparison, because there are more English words than 255. Also some names are more valuable than others, because they are easier to remember, or represent more popular concepts. For example more people may want their computer to be named #1 rather than #2425, because #1 is easier to remember and people have a preference for being #1 in a competitive sense.
3. People all speak different languages, and it's easier to remember words and names in the language(s) you know. This is especially complex if my friend and I speak different languages. His computer might have a name in his language that is hard for me to remember. We need some system where we can use a translation of his name into a name that I can understand and remember.
4. Say my friend buys a new computer between telling me about the game and me trying to download it. This new computer might have a different number than his old one, but it's still **his** computer, and he likely means for me to get the game from his **new** computer rather than his old one. It would be nice if he could tell the world "I got a new computer. Please use computer 9 now, not computer 3" without having to communicate with me specifically.
5. Files and information transfer hold value, so someone might want to pretend to be my friend's computer. How can I be sure I got my friends file, not someone else who tried to pretend to be my friend? I somehow need some guarantees that the information my friend told me is enough to confidently route me to his computer, not someone else's.
6. The file on my friends computer might be in some folder. Once I'm connected to his computer, how do I find the file I am looking for? This is sort of a sub-problem, since my friend could include the information about which folder it's in as he's telling me the ID of his computer, but we'll likely want to treat this as a sub-problem, since it's likely easier to solve the problem of finding the right file **after** we solve the problem of connecting to the correct computer.
7. There might be a **lot** of people that want this file. Maybe my "friend" is actually Taylor Swift, and the "game" is actually a new album she just finished. Millions of people want to download this album but a single computer is not powerful enough to serve all of those people at the exact same time. For a variety of hardware reasons, we can't have a single physical computer that everyone is downloading from. We need to set up a system where the load of transferring the file is distributed amongst a collection of computers that all have the file. Even if everyone is finding the file using the same information that Taylor told them.
8. Related to #6 Each individual computer may break, or it may go offline for one reason or another. We can't have one computer failure cause the entire system to be inaccessible. We need to have a dynamic system where people get routed to a different computer when the one they were trying to connect to is unavailable
9. People live all over the world, and downloading a file from France while I live in Canada is not always that fast. It would be nice if my friend could manage a computer that is not physically located at his house, so that people that he can share files quickly with people who do not live close to him.

The URL Problem

Here's my description of the URL problem, as I understand it (i.e. I haven't done any research into the topic, this is the story I tell myself in my head. I'm sure the reality and history is a lot more complex)

Let's imagine we are at the beginning of the internet. There are like 10 computers connected to each other. If I am using one computer, and I want a file on another computer, I need to somehow distinguish which of the other 9 computers I want to access to get the file. There are essentially two problems that need to get resolved
* I need to know which computer the file is on. Maybe I just used the computer recently, so I want to see and remember the name of the computer I was accessing so I can tell my computer at home later which computer I am talking about. Much more commonly (in the modern world at least) I was told the file existed by some external source. Like maybe a friend told me that there's a cool game on his computer that I should try out. In this case my friend needs to somehow communicate to me the information about his computer so I can access it later
* Once I know which computer I am talking about, I need to somehow put some information into my computer and run it through some system that will get me connected to and downloading the right file. Essentially, using the information I have in my head, combined with the information and systems on my computer, I need to reliably (and hopefully without too much effort on my part) get connected to the correct computer.