The Hurdle of Discovery

Before my summer workload ramps up, I'd like to discuss a little project I've been working on. It deals with how we can more effectively use the Internet to build communication networks of like-minded people as mentioned in my last post.

Search Engines are the Wrong Tool

The Internet should be thought of as a tool belt. Search engines are great for indexing information, such as articles and tutorials, but aren't the right tool for networking. And so, people started looking into webrings...

Webrings aren't Ideal.

Building one myself, there are two main drawbacks with webrings, only one of which I'm able to address:

  1. Dead links.
  2. Lack of redundancy.

It's not that hard to program a loop which checks if the next site in the ring is offline. But what happens when the server itself goes offline? This brings us to good ol' fashioned link pages.

Still not Ideal.

This is what most people who run their own website do: serve a webpage with all their favorite websites, podcasts, and organizations. This is as decentralized as it gets, yet can be obsolete in many ways.

For one, the people you link to cannot control how you present them. In other words, their data is in your hands, and vice versa. Whether or not this is fair is irrelevant, because it's a major design flaw.

It'd be ideal if everyone saw the same preview of your website no matter where they're coming from. This is preferable because it'd be in the visitor's interest to have an idea of what they're clicking on before navigating to your website, via a preview. It'd be in your interest to standardize your branding and presentation across the Internet. And so, this ideal will mimic the simplicity of a links page while ensuring everyone owns their data.

Dynamic Discovery Directories

That's right. I present a practical solution to site discovery. This strategy does not use:

Instead, each website serves a json file, from which a cgi script builds a discovery webpage. Here's a demo. It's not Earth shatteringly complicated, but is a more coherent method of networking than bare bones html.

Technicalities

The cgi script is written in posix compliant shell for ease of portability. Letting the server do the heavy handling is better for people with slow Internet. The results are cached by nginx for an hour or two to dramatically decrease response time.

Want to Volunteer?

Check out the repo and try it out on your own site. I'd hate to get ahead of myself and brag this is the greatest thing since sliced bread. Let me know if you run into any problems or ambiguities when following the instructions so I can improve them. This protocol could be thought of as a non-invasive and non-addicting alternative to soycial media, but first we need people to get on board.

Credits

This is a rewrite of a project called the Interverse, which uses CORS and Alpine JS to load previews from the browser itself. By all means, these two projects are functionally identical but use vastly differing technologies to fulfill their purpose. Feel free to use either. I'm simply offering a generic name-less alternative. Not everyone wants to have a name attached to everything, especially *-verse protocols.

Conclusion

I believe you're doing a disservice to the make your own website movement (whatever you want to call it) by being an advocate for it while making no attempt at networking. Why? Because even if you're setting a good example for your friends by hosting a website (and steering clear of social media) - if it's only you it will almost always fall flat or come off as lame. People want to get behind things with momentum. A lonesome website will be isolating, boring and cold - and could be your friend's reason why they need to stay on InstaGhoul.

The hurdle of discovery which smaller site's face is largely an illusion. There's already a good amount of smaller personal websites out there - it's just a matter of networking. Hopefully this little project can help further this effort and teach people the beauty of controlling your own data.