objective categorical abstract machine language personal data server

frontend#

is the web interface for pegasus, containing the admin dashboard and account management pages.

Built with MLX (a JSX-like OCaml dialect), server-reason-react (React SSR in OCaml) and melange (OCaml to JavaScript compiler).

pages#

admin#

  • Login (/admin) - Admin authentication
  • Users (/admin/users) - View and manage PDS users
  • Invites (/admin/invites) - Create and manage invite codes
  • Blobs (/admin/blobs) - Monitor blob storage usage

account#

  • Account page (/account) - User profile and email settings
  • Identity (/account/identity) - Handle and DID management
  • Permissions (/account/permissions) - OAuth app permissions and sessions
  • Login (/login) - User authentication
  • Signup (/signup) - New account creation

oauth#

  • Authorize (/oauth/authorize) - OAuth authorization flow

development#

The frontend is built as part of the main pegasus project. When developing:

# Build the frontend
dune build

# The compiled JavaScript will be in _build/default/public/

formatting#

The frontend uses MLX syntax, which can't be formatted using ocamlformat:

# Install formatter
opam install ocamlformat-mlx

# Format MLX files
ocamlformat-mlx -i frontend/src/**/*.mlx