1. Start the stack
Follow Self-hosting for Docker, required services, environment variables, migrations, and the optional Temporal worker. For a local Docker install, the short path is:Availability: The public repository opens with the first public release. Until then, read the deployment overview below; the clone command is not yet available.
http://localhost:3000 and sign in with the demo login.
Demo login
SettingDEMO_FIXED_OTP=1 together with DEMO_INSTANCE_INSECURE_AUTH_ACK=1
enables a fixed demo login: email demo@acme.dev, one-time code 000000. The
login screen displays both hints while demo mode is active, so you do not need
to memorize them.
This is insecure by design - anyone who knows the code can sign in. Use it only
for throwaway local installs. Remove both variables before any real deployment
and configure email delivery instead (see the
environment variables in
Self-hosting).
2. Create an account and project
After signing in, complete onboarding:- Create a project with a name and domain, such as
example.com. - Choose the ownership matching rules for URLs that should count as yours.
- Keep the default market and device unless your first tracked phrases need a different country, city, desktop, or mobile target.
3. Connect a SERP provider
Open Integrations, choose a SERP provider, then select Connect. Enter the provider’s credentials and select Test connection before saving; credential-based, non-OAuth providers must pass the test. Set the provider as primary if it should be first in the fallback chain. See Integrations for the supported providers, their credential fields, cost estimates, fallback priority, and the monthly budget cap.4. Add search terms
Choose how to build the first tracking set before opening the add flow:- Search Console: existing sites should begin with queries that already receive impressions. Connect Google Search Console and import only relevant queries. It helps you find Google queries; it does not replace a rank check.
- Starter guide: use Choose your first keywords to build a 10-20 phrase set. Each phrase should have a page that should rank and a reason to track it.
- Manual or CSV: add existing research, brand terms, and phrases that match an important page.
tags column to record why you track a phrase, such as
Improve, Protect, Launch, Investigate, or Long term. Every phrase
should have a target URL or a written reason that its intended page does not
exist yet.
Review the parsed rows, fix any issues, then confirm the import. Duplicate
keyword, location, and device combinations are skipped.
5. Run the first check
For a single keyword, open the keyword detail page and select Run check now. For a project-level manual run, open Settings and use Run check now in the manual checks panel. If you started the scheduled Docker profile, the worker runs due checks from the configured schedule:6. Read results
Open Overview after the first completed check. The dashboard shows:
Open a keyword detail page for position, best position, movement, ranking URL,
target URL mismatch, tags, schedule, alerts, and CSV export.
Open Alerts to create rules and read the alert feed. Rules are evaluated
after completed rank checks, so a new workspace will not show triggered alerts
until checks have run.
API quickstart
The REST API lives under/api/v1. Create an API key in Settings, then use
it as a bearer token:
Use an official client library instead of writing the
HTTP client yourself when Python, TypeScript, Go, or MCP fits your integration.