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