A production-minded Next.js + Tailwind starter for Keyring OS — The Operating System for Real Estate.
- App Router structure
- Dark-mode control-plane dashboard shell
- Shared design tokens
- Core UI primitives
- Sidebar + top bar
- Metric cards
- Property data table
- AI insight cards
- Approval queue rows
- Starter module routes:
- Dashboard
- Inspect
- Lease
- Finance
- AI
- Tenants
- Properties
cp .env.example .env.local
npm install
npm run dev.env.example is preconfigured for local pms-master integration:
NEXT_PUBLIC_API_BASE_URL=/api/backendBACKEND_API_ORIGIN=http://127.0.0.1:3001
Start backend + UI (one command):
cd /data/.openclaw/workspace/imported/property-pulse
npm run dev:with-pmsOptional full stack start (includes workflow-engine + ml-service profiles):
npm run dev:with-pms:fullOptional stop command:
npm run pms:stopManual (two-terminal) option:
# terminal 1 (pms backend)
cd /data/.openclaw/workspace/pms-master
docker compose up -d postgres redis mil backend
# terminal 2 (property pulse)
cd /data/.openclaw/workspace/imported/property-pulse
npm run devSet:
NEXT_PUBLIC_API_BASE_URL(required for API-connected pages)BACKEND_API_ORIGIN(recommended for local/server proxying to backend)
Recommended setup (avoids CORS/localhost browser issues):
NEXT_PUBLIC_API_BASE_URL=/api/backend
BACKEND_API_ORIGIN=http://127.0.0.1:3001Then run both apps:
# terminal 1
cd /data/.openclaw/workspace/pms-master/tenant_portal_backend
npm run start:dev
# terminal 2
cd /data/.openclaw/workspace/imported/property-pulse
npm run devproperty_pulse will call /api/backend/*, and Next.js will proxy to backend http://127.0.0.1:3001/api/*.
See PRODUCTION_READINESS.md for launch checklist and endpoint matrix.
DESIGN_SYSTEM.md— implementation rules, component architecture, and authoring checklistTOKEN_CONTRACT.json— machine-readable design token contract
- Connect domain data models to your PMS backend
- Replace placeholders with live charts
- Add auth, RBAC, and command palette behavior
- Extend
components/domain/with inspection, leasing, and finance-specific blocks - Add charts, forms, and data fetching