GOUP Documentation

GOUP is a community platform for builders, founders, operators, mentors, and open source contributors. It brings groups, events, member directories, jobs, landscape discovery, sponsorship, and operational tooling into one product.

These docs are for people using GOUP, leading groups, managing alliances, sponsoring the community, or contributing to the codebase.

Start Here

Goal Best Starting Point
Get productive quickly Quickstart
Choose the right dashboard Choose Your Dashboard
Discover groups and events Public Site Guide
Participate as a member Group Members Runbook
Lead a group Group Leads Runbook
Run alliance operations Alliance Dashboard Guide
Add or manage multiple alliances Alliance Dashboard: Multiple Alliances
Manage a group dashboard Group Dashboard Guide
Run event operations Event Operations
Contribute projects or code Project Contributors Runbook
Work on the application Development Guide

Product Areas

Public Site

The public site is where people learn what GOUP is, discover groups and events, browse the landscape, read docs, view platform stats, find jobs, and learn about sponsorship.

Important pages:

  • Explore for groups and events.
  • Jobs for public and member-only roles.
  • Landscape for startups, GitHub projects, partner communities, and podcast leads.
  • Stats for platform activity and engagement.
  • Sponsor for partnership inquiries.

Member Experience

Members can manage their profile, join groups, RSVP to events, submit talks, respond to invitations, save job interest, and publish mentorship availability for individuals or businesses.

Member-facing areas:

Group Operations

Group leads use GOUP to manage events, members, sponsors, store items, member spotlights, team permissions, and group-level communications.

Group dashboards include:

  • Events and event series.
  • Members and team access.
  • Sponsors, store, and spotlights.
  • Analytics and audit logs.

Alliance Operations

Alliance admins manage brand identity, groups, taxonomy, regions, team access, landscape entries, analytics, and public brand assets.

Alliance-level features include:

  • Shared region and category taxonomy.
  • Cross-group member directory.
  • Public brand page.
  • Platform-admin alliance creation for multi-alliance operations.
  • Landscape management.
  • Alliance and group role permissions.

Jobs, Mentorship, and Sponsorship

GOUP supports practical community opportunities:

  • Members can post public or member-only jobs.
  • Applicants can save interest so posters can follow up.
  • Members can offer individual or business mentorship from their profile.
  • Mentorship requests are tracked and emailed to mentors.
  • Sponsors can submit inquiries after logging in.

Architecture

GOUP is a server-rendered Rust application with progressive enhancement. The web app owns the public site, dashboards, member workflows, and background notifications, while PostgreSQL stores product data and exposes most business workflows through SQL functions.

GOUP architecture diagram

Technology Stack

Layer Technology
HTTP server Rust, Axum, Tower middleware
Templates Askama HTML templates
Interactivity HTMX, custom elements, small JavaScript modules
Styling Tailwind CSS utilities and project CSS
Database PostgreSQL with PostGIS
Migrations Tern plus SQL schema/function files
Auth Email/password, GitHub OAuth2, LinkedIn OIDC
Background work Rust services for notifications, email, meetings, payments
Testing Rust tests, pgTAP, Playwright, frontend unit tests
Operations EC2/systemd deployment, optional MCP server

Run Locally

Use the repository root for most commands.

1. Install Tools

Recommended local tools:

  • Rust through rustup.
  • PostgreSQL 15 or newer with PostGIS.
  • tern for migrations.
  • just for development commands.
  • Node.js and npm for frontend and e2e tests.
  • Tailwind CSS standalone CLI.

On macOS with Homebrew:

brew install rustup postgresql@17 postgis just go node watchexec
rustup-init
go install github.com/jackc/tern/v2@v2.3.2

Install the Tailwind standalone binary for your platform and make sure tailwindcss is on PATH.

2. Create Local Config

The justfile defaults to $HOME/.config/ocg.

mkdir -p "$HOME/.config/ocg"

Create $HOME/.config/ocg/tern.conf:

[database]
host = 127.0.0.1
port = 5432
database = ocg
user = postgres
password =

Create $HOME/.config/ocg/server.yml with matching database settings. Use Development Guide for the fuller configuration shape.

3. Create and Migrate the Database

just db-create
just db-migrate

For a clean rebuild:

just db-recreate

4. Run the App

just server

Then open:

http://localhost:9000

For automatic reloads while developing:

just server-watch

Contributor Checks

Use focused checks while developing, then broader checks before opening a PR.

cargo check -p ocg-server
cargo clippy -p ocg-server --all-targets --all-features -- --deny warnings
uvx --python 3.12 djlint==1.39.2 --check --configuration ocg-server/templates/.djlintrc ocg-server/templates
node --check tests/e2e/site/common/header.spec.js

Database and full test commands:

just db-tests
just db-contract-tests
just server-tests
just frontend-unit-tests
just e2e-tests

Deployment Notes

Production is currently a pull, migrate, release-build, restart flow on EC2:

cd ~/goup.vc
git pull origin main
cd database/migrations
TERN_CONF="$HOME/.config/ocg/tern.conf" ./migrate.sh
cd ~/goup.vc
nohup env CARGO_BUILD_JOBS=1 cargo build --release -p ocg-server > ~/goup-build.log 2>&1 &
tail -f ~/goup-build.log
sudo systemctl restart ocg-server
sudo systemctl status ocg-server --no-pager
curl -I http://127.0.0.1:9000

Release builds can take a while on small EC2 instances. A clean optimized Rust build near 15-20 minutes is not unusual when dependencies are not cached.

Need Help?

Start with: