Skip to content

Instantly share code, notes, and snippets.

@sigilante
Last active September 27, 2024 16:30
Show Gist options
  • Save sigilante/42cef30e67a9f97bb3d9cac636a92b52 to your computer and use it in GitHub Desktop.
Save sigilante/42cef30e67a9f97bb3d9cac636a92b52 to your computer and use it in GitHub Desktop.
ἈΘΗ͂ΝΑΙ: A VISION

ἈΘΗ͂ΝΑΙ: A VISION

The Athens project epitomizes several longstanding threads in Urbit's vision of a social Internet. Athens lays the groundwork for a transition from a set of centralized apps to a fully decentralized Urbit peer-to-peer network. Communities will be able to start in a captive state and roll over to become fully decentralized as they mature.

Athens therefore begins by defining a field of “captive” apps, or apps that are brokered through a centralized server. It implements the groundwork for the dotpoast vision by identifying security modalities and presenting a single access layout to the various modal apps. It includes a roadmap for transitioning all or part of the network to utilize not only Azimuth but also Arvo.

Software Suite

The initial release of Athens for the general public will include a number of integrated services. “Integration” means that links or references between apps are legible; for instance, an arcade game result can be trivially dropped into a feed, or an anonymized imageboard link can be dropped into the forum. These should be produced by a team of about four software developers, at least two of whom are dedicated front-end devs (the other two being full-stack devs).

  • Forum: a Reddit/Hacker News-style voting forum
  • Hermes: blogging/longform publishing, like Blogger and Tumblr
  • Denarius: a wallet app (noncustodial until secure); all transactions route through this app
  • Midas: crypto accounting/bookkeeping
  • Sphinx: anonymous imageboard
  • Pallas: notetaking, like Obsidian
  • Discus: minigame arcade
  • Argus: torrenting and media
  • Styx: doomscrolling feed, like X/Twitter and Farcaster

These illustrate a variety of applied products that should work seamlessly together, but are afforded by such different providers today as to be practically incompatible. (Hookmark, for instance, is an attempt to bridge this abyss.)

What is missing? These would be moderately straight to pull in:

  • Email client
  • Project/task management
  • APIs to various Web 2.0 services to unify the experience
  • Voice and video chat integrated into Forum

Æsthetics

Athens should feel unified across a wide variety of interfaces. In practice, this means defining a design language like Microsoft's Metro or Google's Material Design.

In a nod to synthwave and cyberpunk influences, neon and classical influences should be retained. To produce a usable interface, however, the elements should be flatter and linear, with strong color contrasts and a preference for dark mode. (That is, rather than sculpture draw from red-figure kraters and Wedgewood jasperware.)

Altho color should be employed in flat patches (e.g. under a Greek geometric border), avoid Corporate Memphis design language. With respect to the current Other Means design language utilized on urbit.org, the Urbit Sans font and linear elements can be retained for continuity. The color palette seems broadly compatible.

Technical Questions

  • The Daedalus Question: How can Azimuth act as One Wallet To Rule Them All? How can broadly useful keys (PGP, ETH, &c.) be derived from an Urbit HD wallet?
  • The Charon Question: What does it look like to bridge a world of free peers and a world of captive users?
  • The Elysium Question: What does it mean to decentralize a centralized app?
@sigilante
Copy link
Author

sigilante commented Sep 26, 2024

Athens thus requires an embeddable representation of content. Let's call this a pseudo-namespace, in that it should be broadly compatible with the successor bound namespace using Arvo, but like current Gall is a hack implementation. This ends up looking like a poor man's Shrubbery implemented with persistent resource links (at least simulated scry-at-latest, call it %sein) rendered as subsidiary frames (simply iframes?).

  • How do we handle forward (prospective) references?
  • How do we handle recursive or circular references? Or at least detect them?

This means that the central app system needs to register each “instance” with a persistent resource locator. There needs to be a permissions system affiliated with access, altho not embedded in the PRL. These need to be broadcast and available on-demand (fast cache) for rendering from other servers.

Xanadu Did Nothing Wrong.

@sigilante
Copy link
Author

@sigilante
Copy link
Author

sigilante commented Sep 27, 2024

@cgyarvin comments on ~2024.9.27:

  • Core login flow:
    • Go to urbit.org.
    • Log in like Farcaster.
    • Drop into Sky UI.
      • Top level of browsing includes things that are not Sky panels.
      • These recursively descend from Sky into your internal namespace.
      • This is a client doing a lot of things with different servers (Arvo, CWA, etc.).
      • The access is not modal, but based on zooming.
      • Light animated effects to show responsiveness.
  • Pieces:
    • Absolute vanilla classic Web-style SSO first.
    • State is stored where? Client-side storage?
    • urbit.org server must be ironclad if using secrets.
    • Piræus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment