How It Works

From intake to delivery, FP Platform manages the full engagement lifecycle with state machines, version control, and a secure client portal.

Engagement Lifecycle

Five Steps to Delivery

01

Intake

Clients submit project requests through the public website or portal. Each intake is tracked through a state machine (NEW, REVIEWING, QUALIFIED, CONVERTED) with full audit trail.

02

Engage

Qualified intakes become engagements with scoped phases, milestones, and assigned team members. Each engagement moves through DRAFT, ACTIVE, ON_HOLD, and COMPLETED states.

03

Build

Teams use templates and chains to produce deliverables. Every deliverable is versioned with immutable snapshots, and work is organized in goal-based workspaces.

04

Deliver

Completed deliverables go through an approval workflow. Clients access approved work through the portal, download files, and submit feedback or change requests.

05

Iterate

Feedback loops drive continuous improvement. Templates are refined, chains are optimized, and the platform captures institutional knowledge for future engagements.

Architecture

Three Apps, One Platform

Admin App

Internal dashboard for managing organizations, engagements, templates, chains, and all platform resources. Full CRUD with audit logging.

  • Organization management
  • Engagement lifecycle
  • Template & chain editing
  • User & role management

Client Portal

Secure, token-based access for clients to view their engagements, download deliverables, and submit requests without internal credentials.

  • OTP authentication
  • Engagement dashboard
  • Deliverable downloads
  • Request submission

Marketing Site

Public-facing website with intake form. Submissions flow directly into the platform intake pipeline with bot detection and rate limiting.

  • Intake form with validation
  • Honeypot & timing checks
  • Rate limiting
  • API integration

Developer Tools

Build With the Platform

REST API

Fully typed REST API with cursor-based pagination, scope-based authorization, and standard error envelopes. Every resource supports CRUD operations with proper HTTP semantics.

  • Cursor-based pagination for efficient list queries
  • Scope-based API tokens with fine-grained permissions
  • Standard success/error response envelopes
  • Request ID tracking across all endpoints
// REST API
GET /api/v1/templates
POST /api/v1/templates
GET /api/v1/chains
POST /api/v1/chains/:id/execute
GET /api/v1/workspaces

TypeScript SDK

First-class TypeScript SDK with typed resource namespaces. Handles authentication, pagination, and error handling so you can focus on building.

  • Typed resource namespaces (templates, chains, workspaces)
  • Automatic pagination with async iterators
  • Built-in retry logic and error handling
  • Full TypeScript type inference
// TypeScript SDK
import { FPClient } from '@fp-pp/sdk'
const client = new FPClient({ token });
const templates = await client.templates.list();

CLI Tool (fp-pp)

Command-line interface for terminal-based access to all platform resources. Scriptable, pipe-friendly, and designed for automation.

  • All CRUD operations from the terminal
  • JSON and table output formats
  • Scriptable for CI/CD integration
  • Config file and environment variable support
# CLI Tool
$ fp-pp templates list
$ fp-pp chains execute my-chain
$ fp-pp workspaces create --name "Q1 Goals"

Integrations

Connected Ecosystem

Attio CRM

Bidirectional contact sync between Attio and FP Platform organizations.

Resend

Transactional email for portal invitations, OTP codes, and notifications.

Vercel Blob

File storage with presigned URLs for secure deliverable uploads and downloads.

Inngest

Background job processing for webhooks, async workflows, and scheduled tasks.

Tech Stack

Built with modern, production-proven technologies.

Next.js 15
React framework
PostgreSQL
Database
Drizzle ORM
Type-safe queries
TypeScript
End-to-end types

Ready to see it in action?

Request access to explore the full platform, API, and developer tools.

Request Access