Back to docs

Projects

A project in Ptah represents a single client engagement — one RFP, one demo, one WBS. This page covers creating, configuring, and managing projects.

Creating a project

Projects are created by a PM (or anyone with the project:create permission). From the Projects page, click New project and fill in:

  • Name — human-readable name, shown in the UI.
  • Project code — short lowercase slug, used for the demo subdomain (<code>.<org>.byptah.com). Must be unique within the organization.
  • Client — the client organization name, stored for reporting only.
  • Tech stack — choose from the catalog or pick "Custom" and define it in the project's CLAUDE.md.
  • VPS — the worker VPS where Claude sessions and the demo will run. You can reassign this later.
  • Team members — assign BA, PM, Tech Lead, and optional reviewers. Roles are per-project, not global.

Ptah creates a git repository under /projects/<project-id>/ on the assigned VPS, seeds it with a starter template for the chosen tech stack, and commits an initial CLAUDE.md that encodes the project's coding rules and build commands.

Project workspace

Inside a project, the sidebar gives you four views:

  1. Overview — project metadata, demo URL, last deploy status, team members.
  2. Documents — uploaded files (PDF, DOCX, XLSX, Markdown) plus inline annotations. Claude can read everything here.
  3. Chat — the Claude session for this project. Supports forking, branching, and attachments.
  4. Deployments — history of deploys with logs and rollback buttons.

Roles inside a project

  • BA — reads documents, chats with Claude to build specs, owns the docs/specs/ directory.
  • PM — owns project metadata, team assignment, and the final WBS export.
  • Tech Lead — reviews specs, triggers Claude to write code, owns the src/ directory.
  • Reviewer (optional) — read-only access for stakeholders who need visibility but not edit rights.

Roles can be customized per organization through the Roles settings page.

Session forking

If you want to try a different approach without losing your current conversation, click Fork session at the top of the chat. Ptah creates a new session that inherits the full message history from the parent, then lets you continue in a new direction. You can compare the two sessions side by side from the session history page.

Forking is useful for:

  • Trying two different architectures for the same feature
  • Exploring a bug fix without polluting the main thread
  • Letting a new team member experiment without risk

Deleting or archiving

Archiving a project hides it from the default project list but keeps all files, sessions, and the demo live. Use archive for finished engagements you may want to reference later.

Deleting a project removes everything: the git repository on the VPS, the demo URL, the session history, and the uploaded files in S3. This action is irreversible, and Ptah requires a confirmation prompt.

Related pages