Auth & Admin

Authentication is the backbone of Equivox, as it is for most platforms.

Each step pairs a heading and description with a decorative 3D preview of the Equivox UI. Those previews are skipped in screen reader navigation and are not interactive for assistive technology—the text beside each preview is authoritative.

Sign in / Sign up

Email sign-up collects email, username, and password. Usernames are checked for availability and length. The server emails a six-digit code (SES), you enter it in a modal, and the backend creates the Supabase user and profile.

Google uses Supabase OAuth. The callback checks origin, exchanges the code, ensures profile rows exist for new OAuth users, then sends you to the feed. You can of course sign in with OAuth on an account that was created with email.

Profile

Profiles are public pages displaying avatar, handle, optional display name and bio. Avatars are deterministic gradients calculated off user ID.

If it is your page, you can edit settings in a modal and upload a new avatar. Below profile info are two tabs, listing posts (discussion and proposal, infinite scroll) and your comments.

Admin Panel

Evidently an admin only route, this section of the app is not incredibly sophisticated as it's only for me to do some debugging stuff and moderation.

Its main use is media review (with previews: accept, block, delete). It also has a proposal review section for completed proposals, although any actual communication with public companies will be manual. Finally, there are some debug sections for viewing market data connections or manual invocation of various serverside flows.

Settings

Settings are relatively simple at the moment, a user may change his username and delete his account. Since our userbase was low, I did not immediately take the time to build password reset flows and whatnot, but such things were definitely on the list.