All Docs
FeaturesSaaS FactoryUpdated February 19, 2026

Competitor Tracking

Competitor Tracking

The Competitor Tracking feature lets you maintain a structured list of competitors for each product in the SaaS Factory platform. It is the foundation for the platform's competitive intelligence capabilities — giving the AI research agent a roster of targets to monitor and analyze over time.

Overview

Each product has its own competitors list, scoped by projectId. Records are stored in a dedicated competitors table and managed through a tRPC router with full CRUD support.

Accessing Competitors

Navigate to your product dashboard and select the Competitors tab:

/dashboard/products/[productId]/competitors

The page is server-side rendered, so filters are applied at the database level for fast, reliable results.

Filtering & Search

You can narrow the competitors list using URL query parameters:

ParameterDescription
searchFilter competitors by name (partial match supported)
statusFilter by competitor status (e.g. active, inactive)

Both parameters are read from the URL on each page load, making filtered views bookmarkable and shareable.

Managing Competitors

Adding a Competitor

Create a new competitor record with the following fields:

FieldRequiredDescription
nameThe competitor's product or company name
websiteUrlThe competitor's primary website URL
descriptionOptional free-text notes about the competitor
statusRecord status (defaults to active)

Updating a Competitor

Editing any competitor record automatically sets lastAnalyzedAt to the current timestamp. This field acts as an audit marker that indicates when the record was last reviewed or modified.

Deleting a Competitor

Deletion requires the owner role on the project. This restriction prevents accidental removal of competitor records that may be referenced by ongoing research jobs.

Note: There is no delete button in the UI in this release. Deletion is available via the API for owner-role users.

Data Model

The competitors table schema:

competitors (
  id              uuid PRIMARY KEY,
  projectId       uuid NOT NULL REFERENCES projects(id),
  name            text NOT NULL,
  websiteUrl      text NOT NULL,
  description     text,
  lastAnalyzedAt  timestamptz,
  status          text NOT NULL DEFAULT 'active',
  createdAt       timestamptz NOT NULL DEFAULT now(),
  updatedAt       timestamptz NOT NULL DEFAULT now()
)

API Reference (tRPC)

All procedures are available under the competitor router:

ProcedureDescriptionAuth Required
competitor.listList all competitors for a project, with optional search/status filters
competitor.getByIdFetch a single competitor by ID
competitor.createCreate a new competitor record
competitor.updateUpdate a competitor; stamps lastAnalyzedAt
competitor.deleteDelete a competitorowner role only

Current Limitations

  • No analysis data in UI. The platform's AI research agent can analyze competitors, but discovered insights (pricing, features, weaknesses) are not yet displayed in the dashboard. Only name, website URL, and lastAnalyzedAt are shown.
  • No structured analysis columns. The competitors table does not yet have dedicated columns for analysis output. Richer intelligence storage is planned for a future release.
  • No delete UI. The delete procedure exists in the API but is not yet exposed as a button in the dashboard.

Roadmap

Upcoming improvements planned for Competitor Tracking:

  • Structured analysis columns (pricing, feature matrix, identified weaknesses) added to the database schema.
  • Display of AI-generated competitive intelligence in the dashboard UI.
  • Delete action exposed in the competitor list UI for owner-role users.
  • Automated research agent scheduling against the competitor roster.