This guide is for contributors and developers who want to build, modify, or run FamilyCo from source. End users should use the release builds instead.Documentation Index
Fetch the complete documentation index at: https://familyco.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Node.js 22 LTS
- pnpm 10
- A POSIX shell (macOS, Linux, or WSL on Windows)
1. Install dependencies
apps/* and packages/* are linked automatically.
2. Configure environment
.env file is primarily needed when running the web client standalone (against an external server). The default local server URL is http://127.0.0.1:4000.
See Configuration for the full list of environment variables.
3. Run development mode
- Server + Web
- Desktop (Electron)
- Everything in parallel
Runs the Fastify server and the Vue 3 web client together.Default endpoints:
- Web:
http://127.0.0.1:5173 - Server:
http://127.0.0.1:4000(API at/api/v1)
Common commands
| Goal | Command |
|---|---|
| Run server + web | pnpm dev |
| Run web + electron | pnpm dev:electron |
| Build all packages | pnpm build |
| Build electron release | pnpm build:electron |
| Run all tests | pnpm test |
| Typecheck the workspace | pnpm typecheck |
| Generate the Prisma client | pnpm prisma:generate |
| Run a Prisma migration | pnpm prisma:migrate |
Validation gates
Before opening a pull request, run at minimum:Troubleshooting
Port 4000 is already in use
Port 4000 is already in use
Stop stale server processes (or change
PORT in .env) and rerun pnpm dev.Electron native module mismatch after Node/runtime upgrade
Electron native module mismatch after Node/runtime upgrade
Rebuild native modules and restart desktop mode:
Server is in read-only mode
Server is in read-only mode
Migration safety failed at startup. Check the server logs, fix the database state, then restart. While in read-only mode, mutation routes return
503 READ_ONLY_MODE.Next steps
Architecture
Monorepo layout, runtime lanes, and design constraints.
Coding rules
Conventions for AI agents and human contributors.
Domain model
Core entities and invariants enforced by the schema.
Configuration
Environment variables for runtime, queue, auth, and more.