A calm, private space where parents of kids on the same team coordinate logistics, help each other, and build communityβwithout the chaos of group chats or social media.
Status: β MVP Complete (95%) Live At: https://benchd.spuzzed.com Version: 1.0.0 Last Updated: January 13, 2026
Parent Team Commons is a parent-led coordination and social web application for parents whose children participate on the same team. It replaces chaotic WhatsApp groups and Facebook threads with a focused, calm platform designed specifically for parent coordination.
- Parents First: Every feature designed around parent needs
- Coordination Over Control: Enable coordination, don't enforce rules
- Trust Through Shared Reality: Trust established through shared children and teams
- Lightweight & Calm: No complexity, enforcement, or gamification
- Devise-based signup/login
- Child-anchored trust model
- Co-parenting support (multiple parents per child)
- No child accounts (safety first)
- Create teams with auto-generated invite codes
- Add/claim children to gain access
- View team roster (parents and children)
- Display claimed/unclaimed children
- Post plain-text messages to team feed
- Chronological message display
- Author attribution
- Team-scoped visibility
- Create events (practices, games, tournaments, gatherings)
- Full event details (date, time, location, notes)
- List upcoming and past events
- Event creator attribution
- Three-state RSVP: Going / Maybe / Can't Go
- Visual color-coded buttons
- Live RSVP counts per event
- Update anytime
- Event-specific message threads
- Coordinate carpools, snacks, logistics
- Isolated from Team Commons
- Same clean interface
- Signup lists for snacks, supplies, BBQs
- Invite code lookup/join flow
- Edit/delete messages and events
- Mute/leave team functionality
- Email notifications
- Mobile PWA setup
- Equipment exchange tags
A parent may only access a team through a child associated with that team.
This means:
- Parents do NOT join teams directly
- Parents must add or claim a child to gain access
- No child β no team access
- Children do NOT have accounts
User (Parent) ββ[Guardianship]βββΊ Child βββΊ Team
This trust chain:
- Prevents random access without heavy admin controls
- Supports co-parenting naturally
- Maintains safety around minors
- Keeps teams private and focused
- Framework: Ruby on Rails 8.1.2
- Database: PostgreSQL 16 (Docker)
- Authentication: Devise 4.9.4
- Frontend: Server-rendered HTML + Turbo + Stimulus
- Styling: Inline styles (prototyping phase)
- Deployment: Development server on port 3005
9 core tables:
- users - Parent accounts
- teams - Team context with invite codes
- children - Trust anchors (no accounts)
- guardianships - Parent-child join table
- events - Coordination anchors
- messages - Team Commons + Event threads
- rsvps - Event responses
- signup_lists - Event coordination lists
- signup_items - Claimable items
- Ruby 3.4.7
- Rails 8.1.2
- PostgreSQL 16
- Docker (for PostgreSQL)
# Clone the repository
cd TeamParent
# Install dependencies
bundle install
# Start PostgreSQL
docker run -d \
--name teamparent-postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
postgres:16-alpine
# Setup database
rails db:create db:migrate
# Start server
rails server -p 3005 -b 0.0.0.0Visit http://localhost:3005
- Sign up as a parent
- Create a team
- Add your child's first name
- Get your invite code
- Post to Team Commons
- Create an event
- RSVP and discuss
TeamParent/
βββ app/
β βββ controllers/
β β βββ teams_controller.rb
β β βββ children_controller.rb
β β βββ events_controller.rb
β β βββ messages_controller.rb
β β βββ rsvps_controller.rb
β βββ models/
β β βββ user.rb
β β βββ team.rb
β β βββ child.rb
β β βββ guardianship.rb
β β βββ event.rb
β β βββ message.rb
β β βββ rsvp.rb
β β βββ signup_list.rb
β β βββ signup_item.rb
β βββ views/
β βββ teams/
β βββ children/
β βββ events/
β βββ home/
βββ db/
β βββ migrate/ (9 migrations)
β βββ schema.rb
βββ docs/
β βββ data-model.md
β βββ authorization.md
β βββ migrations.md
β βββ models.md
βββ CLAUDE.md (project instructions)
βββ spec.md (product specification)
βββ BUILD_STATUS.md (current status)
βββ README.md (this file)
- CLAUDE.md - Project instructions and constraints
- spec.md - Complete product specification
- docs/data-model.md - ERD and model documentation
- docs/authorization.md - Trust model and authorization queries
- docs/migrations.md - All migration SQL
- docs/models.md - Complete model code reference
- spec.md - Product requirements and philosophy
- BUILD_STATUS.md - Current implementation status
GET /users/sign_up- RegistrationGET /users/sign_in- LoginDELETE /users/sign_out- Logout
GET /teams- List accessible teamsGET /teams/new- Create team formPOST /teams- Create teamGET /teams/:id- Team detail + Team Commons
GET /teams/:team_id/children/new- Add/claim childPOST /teams/:team_id/children- Create/claim child
POST /teams/:team_id/messages- Post to Team CommonsPOST /teams/:team_id/events/:event_id/messages- Post to event thread
GET /teams/:team_id/events- Event listGET /teams/:team_id/events/new- Create event formPOST /teams/:team_id/events- Create eventGET /teams/:team_id/events/:id- Event detail
POST /teams/:team_id/events/:event_id/rsvps- Create/update RSVP
- A private parent commons
- Built for coordination and logistics
- Focused on trust and safety
- Unofficial and non-authoritative
- A team management system
- A coach or league tool
- A stats or standings tracker
- A marketplace
- A general social network
- Fat models, thin controllers
- No service objects unless unavoidable
- Explicit associations
- Database constraints matter
- Boring, readable Rails code
- Server-rendered HTML preferred
- No child accounts
- Minimize PII (first names only)
- No dates of birth
- No addresses
- No medical information
- Private, invite-only teams
- Parents can mute threads (planned)
- Parents can block others (planned)
- Parents can leave teams (planned)
- Access strictly child-anchored
This is a focused product with a locked specification. Before contributing:
- Read
CLAUDE.mdfor project constraints - Read
spec.mdfor product philosophy - Understand the trust model in
docs/authorization.md - Follow Rails conventions strictly
- No features outside the spec without discussion
- Use
rubocopfor linting - Write clear, explicit code
- Avoid premature abstraction
- Test critical paths
- Document complex authorization logic
[To be determined]
Live URL: https://benchd.spuzzed.com Status: Development MVP Feedback: [To be determined]
- β Authentication with Devise
- β Team creation with invite codes
- β Child management (add/claim)
- β Team Commons message feed
- β Event creation and listing
- β RSVP functionality
- β Event-scoped discussions
- β Child-anchored authorization
- β PostgreSQL data model
- β Docker deployment setup
Built with β€οΈ for parents who just want to coordinate without chaos.