Skip to content

Welcome to F3 Nation Tech 🏋️

We're a volunteer group of amateur developers building the digital platform behind F3 Nation — a national network of free, peer-led outdoor workout groups for men. Our tools help regions organize workouts, track attendance, and grow their communities.

Everyone is welcome. Whether you're a seasoned engineer or writing your first pull request, there's a place for you here.


The Mission [of F3 Tech]

Modernizing the "How" to support he "Why".

  1. Providing off-the-shelf solutions enabling efficient launches to new regions.
  2. Helping sad clowns find F3 through digital mediums.
  3. Inspiring invigoration through real-time feedback and reporting on region health.

Accomplishing this through:

  1. Unified Data: Every tool "talks" to the others, ensuring shared data and user management across the Nation.
  2. Unified Support: Strong collaboration and official infrastructure promotes stability and longevity.

The Big Picture

flowchart LR
    subgraph users["👤 Users"]
        slackUser["Slack Member"]
        webUser["Web Visitor"]
        leader["Region Admins"]
    end

    subgraph channels["💬 Channels"]
        slack["Slack"]
        web["Web"]
    end

    subgraph apps["🖥️ Applications"]
        bot["Slack Bot"]
        map["Map and Admin"]
        nearme["F3 Near Me"]
        vault["PAX Vault"]
        codex["The Codex"]
        orgmap["Org Map"]
        regions["Region Pages"]
        status["Status Page"]
    end

    subgraph platform["☁️ Platform Services"]
        api["F3 Nation API"]
        auth["SSO Auth"]
    end

    subgraph data["🗄️ Data Stores"]
        db[("PostgreSQL")]
        bq[("BigQuery")]
    end

    slackUser --> slack
    leader --> slack
    webUser --> web

    slack --> bot
    web --> map
    web --> nearme
    web --> vault
    web --> codex
    web --> orgmap
    web --> regions
    web --> status
    leader --> map

    bot --> db
    map --> api
    nearme --> api
    orgmap --> api
    regions --> db
    codex --> db
    vault --> bq
    api --> db

    auth -.-> vault
    auth -.-> codex
Loading

Repository Guide

Repo What It Does Tech
f3-nation Monorepo — API, interactive map, and admin tooling TypeScript · Next.js · Drizzle ORM · Turbo
f3-nation-slack-bot The primary way most people interact with F3 tech — scheduling, attendance, region management. Installed on 300+ Slack workspaces Python · Slack Bolt · SQLAlchemy
pax-vault Read-only analytics dashboard — participation, leadership, and engagement insights TypeScript · Next.js · BigQuery · Firebase Auth
f3nearme Lightweight "find a workout near you" map (f3near.me) TypeScript
f3-nation-auth Shared SSO authentication package used by PAX Vault and The Codex TypeScript
the-codex The F3 Exicon (exercises) and Lexicon (terminology) — a community knowledge base TypeScript · Next.js · NextAuth
f3-region-pages Out-of-the-box website landing pages for regions that don't want to self-host TypeScript · Next.js · Drizzle ORM
f3-status Simple health/status page for all F3 apps (status.f3nation.com) TypeScript · Vite · GitHub Pages
f3-org-map Geographic digital directory — visualizes F3's org structure on a map TypeScript · Vite · Leaflet

Environment URLs

This table makes it easy for contributors to find production and staging environments in one place.

Repo Production Staging Hosting
f3-nation api.f3nation.com
map.f3nation.com
map.f3nation.com/admin
staging.api.f3nation.com
staging.map.f3nation.com
staging.map.f3nation.com/admin
GCP Cloud Run
f3nearme f3near.me - Firebase and Firestore
pax-vault pax-vault.f3nation.com staging.pax-vault.f3nation.com Firebase and GCP Big Query
the-codex codex.f3nation.com - Firebase
f3-org-map org.f3nation.com - GitHub Pages
f3-region-pages regions.f3nation.com - Firebase
f3-status status.f3nation.com - GitHub Pages
f3-nation-slack-bot slackbot.f3nation.com Cloud Run GCP Cloud Run

Tech Stack at a Glance

Layer Technologies
Frontend TypeScript · Next.js · React · Vite · Tailwind CSS · Leaflet
Backend Python (Slack Bolt) · Node.js · Next.js API Routes
Database PostgreSQL (Cloud SQL) · Google BigQuery
Auth NextAuth · Firebase · Custom SSO
Infrastructure Google Cloud Run · Cloud SQL · Firebase · GitHub Pages
Dev Tools PNPM · Turbo · Poetry · Docker

Where Can I Help?

Not sure where to start? Here are some common entry points:

Each repo has its own README with setup instructions. Jump in, ask questions, and don't worry about breaking things — that's what pull requests are for. For org-wide contributor guidance, see the root .github README.


Data Model Overview

Our core data model centers around users attending events at organizations (regions, AOs), connected via Slack workspaces:

---
config:
    look: handDrawn
    theme: dark
---

erDiagram
    USERS ||--|{ ATTENDANCE : have
    ATTENDANCE }|--|| EVENT_INSTANCES: at
    ATTENDANCE }|..|{ ATTENDANCE_TYPES : "are of type(s)"
    EVENT_INSTANCES }|..|| EVENTS : "part of series"
    EVENT_INSTANCES }|..|{ EVENT_TYPES : "with type(s)"
    EVENTS }|..|{ EVENT_TYPES : "with type(s)"
    EVENT_INSTANCES }|--|| ORGS : "belong to"
    EVENT_INSTANCES }|..|| LOCATIONS : "at"
    EVENTS }|--|| ORGS : "belong to"
    EVENTS }|..|| LOCATIONS : "at"
    SLACK_SPACES ||..|| ORGS : "are connected to"
    USERS ||..|{ SLACK_USERS : "have one or more"
    SLACK_USERS }|--|| SLACK_SPACES : "belong to"
    USERS }|..|{ ACHIEVEMENTS : "earn"
    USERS }|..|{ ROLES : "have"
    ROLES ||..|{ PERMISSIONS : "have"
    ROLES }|..|{ ORGS : "in"
    USERS }|..|{ POSITIONS : "hold"
    POSITIONS }|..|{ ORGS : "in"
Loading

Pinned Loading

  1. f3-nation-slack-bot f3-nation-slack-bot Public

    The official F3 Slack app to manage your region's scheduling, signups, attendance tracking, and more!

    Python 16 11

  2. f3-nation f3-nation Public

    F3 Nation Monorepo

    TypeScript 9 8

  3. the-codex the-codex Public

    TypeScript 4 2

  4. database-helpers database-helpers Public

    Scripts and queries to help DBQs manage the F3 Nation database

    Python 2

  5. pax-vault pax-vault Public

    TypeScript 1 2

  6. f3-region-pages f3-region-pages Public

    TypeScript 3

Repositories

Showing 10 of 28 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…