Skip to main content
The Partners Portal is the reference implementation of the Bloom Housing administrative interface. It runs as a Next.js application on port 3001 and provides housing partners — including housing developers, property managers, cities, and counties — with tools to manage listings, review and export applications, run lotteries, and administer users.

Features

Listing management

Create, edit, publish, close, and reopen affordable housing listings. Supports draft and published states.

Application management

View, edit, add, and export applications per listing. Separate views for pending and resolved applications.

Lottery management

Run and publish lotteries for closed listings. Lottery data expires after a configurable number of days.

User management

Invite, confirm, and manage partner users and advocates. Restricted to admin roles.

Admin functions

System-level administrative operations accessible only to admin users.

Settings

Manage jurisdiction preferences, multiselect questions, and property records. Shown when the feature flag is enabled.

User roles

Access to features within the Partners Portal is controlled by role. The following roles are supported:
User management pages (/users) and admin functions (/admin) are restricted to users with the admin or jurisdictionalAdmin role. Accessing these pages without the appropriate role will redirect to /unauthorized.

Page structure

All pages live under sites/partners/src/pages/.
Settings pages are only visible when the settings feature flag is enabled.

Running locally

1

Install dependencies

From the monorepo root:
2

Configure environment variables

Copy the template and set values for your local environment:
Edit sites/partners/.env as needed. See the environment variables section below for details on each variable.
3

Start the backend and partners app

From the monorepo root, this starts the backend on port 3100 and the partners portal on port 3001:
Alternatively, start only the partners portal from within sites/partners:
4

Sign in

Navigate to http://localhost:3001 and sign in with the default local development credentials:
  • Email: admin@example.com
  • Password: abcdef
The backend must be running on port 3100 before starting the partners portal. Sign-in and all data operations require an active API connection.

Environment variables

Copy .env.template to .env inside sites/partners/. The following variables control the app’s behavior:

Testing

The partners portal has two test suites.
Run the full end-to-end test suite against a running instance of the app:
Run from within sites/partners/ with the app already running on port 3001 and the backend running on port 3100.
Set RUN_ACCESSIBILITY_E2E_TESTS=TRUE in .env to also run axe-based accessibility checks during the Cypress suite.