# How to Run the OpenSEO Demo Application: Complete Example and Seed Data Guide

> Explore the OpenSEO demo application in the every-app/open-seo repository. This guide provides a complete example with seed data to discover the full UI without API keys.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: how-to-guide
- Published: 2026-06-28

---

**The OpenSEO repository ships with a fully functional demo application featuring a product demonstration video and a CLI seed script that populates a local database with synthetic rank-tracking data, allowing you to explore the entire UI without external API credentials.**

The `every-app/open-seo` repository provides a complete demo application that demonstrates the platform's keyword research and rank-tracking capabilities without requiring a DataForSEO API key. This built-in example consists of a landing page video demonstration and a data seeding utility that creates realistic SEO project data in a local D1 SQLite database.

## Components of the OpenSEO Demo Application

### Landing Page Video Demo

The demo includes a product demonstration video embedded directly on the landing page. According to the source code in [`web/src/components/landing-page.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/components/landing-page.tsx) (lines 329-337), the **Landing Page** component streams `/demo.mp4` in a section titled **"OpenSEO product demo: running keyword research"**. This video illustrates the keyword research functionality in action before you interact with the live UI.

### Synthetic Data Seed Script

The **seed-rank-tracking.ts** CLI script generates a complete demo environment with synthetic data. Located at [`scripts/seed-rank-tracking.ts`](https://github.com/every-app/open-seo/blob/main/scripts/seed-rank-tracking.ts), this TypeScript utility populates your local D1 database with a pre-configured **"Default"** project, a demo domain (`acme-demo.com`), approximately 20 keywords, weekly snapshot data, and both desktop and mobile position tracking that mimics real-world trend patterns.

## How to Run the OpenSEO Demo Application

Follow these steps to launch the demo application locally:

1. Install dependencies using pnpm:

```bash
pnpm install

```

2. Initialize the local D1 database (run once):

```bash
pnpm db:migrate:local

```

3. Seed the demo rank-tracking data using the built-in script:

```bash
pnpm seed:rank-tracking

```

This executes [`scripts/seed-rank-tracking.ts`](https://github.com/every-app/open-seo/blob/main/scripts/seed-rank-tracking.ts), which inserts the demo project and synthetic ranking data as implemented in lines 45-54 of the source file.

4. Launch the application in local no-authentication mode:

```bash
AUTH_MODE=local_noauth pnpm dev

```

After the server starts, open `http://localhost:3001` in your browser. Navigate to **Rank Tracking** to view the seeded keywords, weekly trend charts, and position data immediately.

## Understanding the Demo Data Structure

When you run the `pnpm seed:rank-tracking` command, the script performs several operations defined in [`scripts/seed-rank-tracking.ts`](https://github.com/every-app/open-seo/blob/main/scripts/seed-rank-tracking.ts). According to the usage comments (lines 13-18), the script first creates a **"Default"** project and assigns the demo domain `acme-demo.com` (lines 45-54). It then inserts roughly 20 keywords with weekly snapshot data representing both desktop and mobile search positions.

Upon completion, the script outputs a confirmation message (lines 52-55) directing you to view the results in the Rank Tracking UI. This synthetic dataset allows you to test OpenSEO's charting capabilities, position history tracking, and MCP integration without consuming production API quotas or connecting to external services.

## Summary

- The OpenSEO demo application includes both a visual product demonstration video and a data seeding CLI script for local testing.
- Run `pnpm seed:rank-tracking` to execute [`scripts/seed-rank-tracking.ts`](https://github.com/every-app/open-seo/blob/main/scripts/seed-rank-tracking.ts), which creates synthetic rank-tracking data for the `acme-demo.com` domain and a "Default" project.
- Launch the app with `AUTH_MODE=local_noauth pnpm dev` to explore the UI without API credentials at `localhost:3001`.
- The landing page video component in [`web/src/components/landing-page.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/components/landing-page.tsx) (lines 329-337) provides an immediate overview of keyword research functionality via the `/demo.mp4` asset.

## Frequently Asked Questions

### Does OpenSEO require an API key to run the demo?

No. The demo application runs entirely offline using synthetic data generated by the repository's seed scripts. Set `AUTH_MODE=local_noauth` when starting the development server, and use the `pnpm seed:rank-tracking` command to populate the local D1 database. No DataForSEO API credentials are required to explore the Rank Tracking UI or view the demo video.

### What data is created by the seed-rank-tracking.ts script?

The script creates a complete demo project including a "Default" project container, the `acme-demo.com` domain, approximately 20 keywords with weekly tracking history, and simulated desktop and mobile search positions. According to lines 45-54 of [`scripts/seed-rank-tracking.ts`](https://github.com/every-app/open-seo/blob/main/scripts/seed-rank-tracking.ts), this data appears immediately in the Rank Tracking interface after seeding completes.

### Where is the demo video stored in the repository?

The demo video is embedded in the landing page component at [`web/src/components/landing-page.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/components/landing-page.tsx) (lines 329-337), which references the `/demo.mp4` asset. The video demonstrates the keyword research interface and streams automatically when viewing the landing page at the root URL of the running application.

### Can I modify the demo data before seeding?

Yes. You can edit [`scripts/seed-rank-tracking.ts`](https://github.com/every-app/open-seo/blob/main/scripts/seed-rank-tracking.ts) before running `pnpm seed:rank-tracking`. The demo domain (currently `acme-demo.com`) and project name ("Default") are defined in lines 45-54 of the script, making them easy to customize for your specific testing requirements.