|

Openfront Sports Agents

What the Sports Agents repository contains today, who it is for, its surfaces, and how ownership works.

Openfront Sports Agents is a self-hosted Openfront application built on Next.js, Keystone, GraphQL, Prisma, and PostgreSQL. The public repository is at github.com/openshiporg/openfront-sports-agents.

The sports-agents domain has not been built yet in the public source. There are no sports, athlete, agent, client, contract, or deal models. There are no Sports Agents platform pages and no customer-facing storefront. The repository today is close to the next-keystone-starter template, and its README is still the starter's README. These pages describe only what exists in the code now.

What exists today

  • Data models. Four Keystone lists: User, Role, Todo, and TodoImage. Todo is the starter's example content model. It shows each field type (text, document, select, multiselect, integer, float, decimal, bigInt, timestamp, json, password, image, relationship).
  • Dashboard. The shared Openfront admin shell at /dashboard. It has generic list, item, and create pages for every Keystone list, plus first-user setup, sign-in, optional sign-up, password reset, and a no-access page.
  • Roles and permissions. A Role list with checkbox permission flags. The first user gets an Admin role with every flag on.
  • AI chat. A dashboard chat sidebar that calls /api/completion. It uses OpenRouter, either with server keys or with keys the user stores in their own browser.
  • MCP endpoint. /api/mcp-transport/[transport] exposes generic GraphQL tools (list models, query, create, update, delete, search). It acts with the caller's session cookie.
  • GraphQL API. /api/graphql, served by GraphQL Yoga with the Keystone schema.
  • Image storage. Todo.coverImage and TodoImage.image use an S3-compatible bucket.

Who it is for

Right now the repository is useful to developers who want to start building the Sports Agents product on the shared Openfront stack. It is not yet useful to a sports agency as a working product.

Product surfaces

SurfacePathStatus in current source
Landing page/The starter's welcome page with links to /dashboard and /api/graphql
Admin dashboard/dashboardGeneric Keystone list and item pages for User, Role, Todo, TodoImage
Platform pages/dashboard/platform/...Not present. There is no features/platform folder
StorefrontnoneNot present. There is no features/storefront folder
GraphQL/api/graphqlKeystone CRUD plus redirectToInit
AI and MCP/api/completion, /api/mcp-transport/[transport]Generic, schema-driven helpers

Ownership and tenancy

There is no organization, agency, or tenant model. One deployment has one database and one set of users. Access is controlled by the role attached to each user:

  • A user can always read and edit their own User record. Seeing or editing other people needs canSeeOtherPeople or canEditOtherPeople.
  • A Todo belongs to the user in assignedTo. Users without canManageAllTodos only see and change their own todos.
  • Only roles with canAccessDashboard can use the dashboard.

If Sports Agents later needs agencies, teams, or clients as separate owners, that model has to be added.

On this page