Guide: test the web app locally on a new branch

We are now using the desktop daemon as the backend for local web testing.

Terminal 1 — run desktop

From the repo root:

./dev run-desktop

This starts the desktop app and its daemon.

The daemon ports used in this setup are:

  • HTTP: 58001

  • gRPC: 58002

  • P2P: 58000

Terminal 2 — run the web app

Open a second terminal and run:

cd frontend/apps/web
eval "$(direnv export zsh)"

export SEED_SIGNING_ENABLED=true
export SEED_IDENTITY_ENABLED=true
export SEED_IDENTITY_DEFAULT_ORIGIN="http://localhost:3000"
export SEED_BASE_URL="http://localhost:3000"
export DAEMON_HTTP_PORT=58001
export DAEMON_HTTP_URL="http://localhost:58001"
export DAEMON_FILE_URL="http://localhost:58001/ipfs"
export VITE_DESKTOP_HTTP_PORT=58001
export VITE_DESKTOP_GRPC_PORT=58002
export VITE_DESKTOP_P2P_PORT=58000

pnpm exec remix vite:dev

Local config

Create:

frontend/apps/web/config.json

Example:

{
  "availableRegistrationSecret": "local-dev",  
  "registeredAccountUid": "z6MkhGQJc96o3UNQ3JyUbCKfQo2bvaQ9KDNa9xxYHJFWWTwg"
}

This tells the local web app which site or account to serve.

Why this works

The important change is that the local web app is no longer using a separate standalone daemon. It now talks to the same daemon state as the desktop app, which means if the desktop app can see the site, the local web app usually can too.

Common mistakes

Running the web app from the wrong directory

You must run:

cd frontend/apps/web

before:

pnpm exec remix vite:dev

Otherwise Remix/Vite config may not be found.

Using the wrong daemon port

The web app must point to the desktop daemon:

  • 58001 HTTP

  • 58002 gRPC

  • 58000 P2P

Not the old standalone ports like 53101.

Missing config.json

If frontend/apps/web/config.json is missing, the web app won’t know which site/account to serve.

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime