A desktop environment for Urbit.
We use yarn workspace to manage the multiple modules.
- app/ - the Realm desktop client
- onboarding/ – holium.network
- shared/ - shared code in the monorepo
- lib/ - outwards facing packages that are published to npmjs.com
- conduit/ – SSE event handler
- design-system/ – component library for Realm apps
- presence/ – cursor streaming for Realm apps
- room/ – data streaming for Realm apps
We use yarn workspaces to build all packages for Realm.
# Install dependencies and build all packages
yarn
# Note: you may have to rebuild sqlite3
cd app
./node_modules/.bin/electron-rebuild
cd ..
# Start the app
yarn start
-
In order to run Urbit locally, you will need to create a local fake ship. To setup a fake ship see
/.docs/DEV_SETUP.md
-
Once these ships are created, you can then go to
/app/README.md
to get started with Realm.
If you download from releases, you will have to include a github token env when you open Realm for now, see docs in /app/release/app
.
In the debug build you can bypass the invite code and email with ~admins-admins-admins
and admin@admin.com
(only if DEBUG_PROD=true).
~hostyv
hosts several of the desks needed for Realm, you may have to manually install them for now.
- Realm is distributed as an AppImage file. AppImages require FUSE version 2 to run. If you are running Ubuntu (>= 22.04), you will need to install fuse version 2. More information here:
https://github.com/AppImage/AppImageKit/wiki/FUSE
npx cross-env DEBUG_PROD=true yarn package:prerelease:mac
npx cross-env DEBUG_PROD=true yarn package:prerelease:linux
npx cross-env DEBUG_PROD=true yarn package:prerelease:win
Building a prerelease will replace the .d.ts
files in all the /dist
folders, so make sure to run rm -rf ./**/dist
followed by yarn
in root when you want to run Realm in dev mode again.
For frontend development, make sure to:
- Install the ESLint extension in your editor of choice (VSCode link). The Prettier extension is not needed since we're using it as an ESLint plugin.
- Configure your editor to format on save so you don't have to run
yarn lint
manually (VSCode instruction). - Follow the Frontend Style Guide.