A backlink analysis platform for monitoring, reporting and tracking link growth over time.
A self-hosted backlink management and reporting platform for SEO teams. Upload, analyze and monitor backlink profiles from multiple sources with real-time indexing, workflow tracking, competitor comparisons and shareable read-only client reports.
Application Architecture
Three distinct entry points serve different audiences and access levels, backed by SQLite storage with WAL journaling.
Internal Workspace
Full working environment for admin and assigned user accounts. Access to all tabs, data uploads, workflow management, indexing, and MCP refresh actions.
Project Settings
Accessible to admin and assigned user accounts only. Configure assignments, filters, shared donor rules, wiki content, branding, and client token management.
Client Read-only View
Token-based external view exposing only safe tabs: Overview, Backlinks, Competitors. No write operations. Client-role users assigned to a project are also redirected here.
SQLite Storage
Primary data store (WAL mode, foreign keys enabled). Stores projects, backlinks, workflow items, users, shared donors, settings, and audit log. Optimized with composite indexes for large backlink tables.
Version Workflow
Active runtime always lives in dist/. Snapshots are copied to builds/ manually. Rollback by restoring a snapshot to dist/.
Auth & Branding
Session-based role authentication. Branding settings (team name, colors, logo, client link template) are applied platform-wide and visible on the public-facing client view.
User Roles
Three roles with strictly separated access scopes. Roles are assigned per-user and can also be scoped per-project for client-facing accounts.
Administrator
- Full access to all projects and settings
- User management (create / edit / password)
- Branding & global settings
- Ubersuggest MCP configuration
- SpeedyIndex balance & usage view
- Legacy import tools & DB health check
- All admin pages without restriction
Team Member
- Access to assigned projects only
- Full workspace: all tabs, upload, workflow
- Can edit workflow items and run indexing
- Access to project settings for assigned projects
- Cannot manage users or global settings
- Workflow actor tracking (created_by / updated_by)
External Client
- Read-only access via token URL or session
- Sees: Overview, Backlinks, Competitors tabs
- Cannot access project settings or admin
- Session login redirects to workspace (read-only)
- Token link redirects to /view.php (read-only)
- No write operations available
Client View â Tabs & Options
The client area (both internal workspace and external token view) is organized into tabs. Each tab loads lazily on first visit for performance on large datasets.
đ Overview
Project summary dashboard. Shows domain authority metrics from MCP, backlinks-over-time chart, referring domain comparison, project wiki, and documents. Placed (final) workflow links are surfaced here.
| Section | Description | Options / Values |
|---|---|---|
| Domain Overview (MCP) | KPI cards pulled from Ubersuggest MCP: Domain Authority, Referring Domains, Backlinks, NoFollow. Collapsible raw field table. | DARef DomainsBacklinksNoFollow |
| Backlinks Over Time | Chart built from MCP timeline data. Shows monthly backlinks and referring domains. Falls back to row-history reconstruction when explicit timeline is unavailable. | BacklinksRef Domains |
| Traffic Chart | Search traffic and search keywords trend from MCP domain overview payload. | Search TrafficKeywords |
| Referring Domains Comparison | Project vs all imported competitors. Competitors grouped by root domain with subdomains as children. Source column shows MCP vs imported distinction. | MCP domain_overviewImported ref domains |
| Project Wiki | Rendered markdown notes written by the team in admin â project settings. Visible to all roles in the client view. | â |
| Documents | Attached files (PDF, CSV, etc.) uploaded in project settings. Accessible via secure asset endpoint with role check. | â |
đ Backlinks
Full backlink table for the project. Importable from multiple sources. Filterable, sortable, with per-row indexing actions and spam/DA/PA scoring.
Supported Import Sources
| Filter / Column | Description | Options / Values |
|---|---|---|
| Source Filter | Filter rows by upload source. Auto-detected from CSV headers at import. | manualubersuggestgscahrefsvendorsworkflow |
| Sort By | Sortable columns with SQL-level indexes for performance on large tables. | PADASpamHTTP Status |
| Source Domain | Linking domain (donor). Normalized to root domain for deduplication. | â |
| Source URL | Full URL of the page containing the backlink. | â |
| Target URL | Destination URL on the project site being linked to. | â |
| Anchor Text | Link anchor text. Unified column name across Overview and Workflow views. | â |
| First Seen / Last Seen | Dates read from imported CSV and stored in the backlinks table. | â |
| DA / PA / Spam | Domain Authority, Page Authority, Spam score from imported data. DB-indexed for fast sorting. | â |
| HTTP Status | HTTP response code for the backlink source URL. DB-indexed. | 200301404âĻ |
| Index (Standard) | Submit URL to SpeedyIndex via single-link endpoint. Cost: 1 credit. | Standard â 1 credit |
| Index+ (Guaranteed) | Submit URL with guaranteed indexing mode (pay-per-indexed). Cost: 100 credits. | Guaranteed â 100 credits |
| Check Index Status | Query SpeedyIndex for current index status. Result persists across page reloads. Cost: 2 credits. | IndexedNot IndexedProcessing |
đ Competitors
Competitor backlink table stored in the same normalized project_backlinks table with SQL-native filtering. Data can be refreshed from Ubersuggest MCP for all competitor groups.
| Feature | Description | Options / Values |
|---|---|---|
| Competitor Import Sources | Upload competitor backlink files in the same formats as the main project. | UbersuggestGSCAhrefsGeneric CSV |
| MCP Refresh | Fetch domain_overview / backlinks_overview for all imported competitor groups from Ubersuggest MCP. No group cap. | â |
| Grouping | Competitors grouped by root domain. Subdomains appear as children of their root domain. | â |
| Competitor Metrics | Backlinks and Referring Domains from MCP when available. Falls back to imported row counts with source label. | MCP domain_overviewImported ref domains |
| Queue Action | Add competitor backlinks directly to project workflow. Guard ensures safe behavior when workflow panel is on another tab. | â |
đ Workflow
Link-building pipeline tracker. Each workflow item represents an outreach or placement task. Items progress through statuses; only Placed items surface in the Overview backlinks table.
Item Statuses
| Column / Option | Description | Notes |
|---|---|---|
| Source Domain | Donor domain for the planned link. | Matches Overview naming |
| Source URL | Placement URL â the specific page where the link is (or will be) placed. | Maps to placement_url |
| Target URL | Destination page on the project site being linked. | Maps to target_url |
| Anchor Text | The anchor text for the link. Empty by default for new additions; filled manually. | Unified label with Overview |
| Created By / Updated By | Actor tracking â records which user created or last updated each item. | â |
| Add Source | Items can be added from Competitors tab, Analysis, or Shared Donors library. URL/anchor fields start empty to prevent auto-fill errors. | Competitors / Analysis / Shared |
đ Reports
Monthly report archive. Reports are generated server-side and listed as cards by month. Exportable per month.
| Feature | Description |
|---|---|
| Monthly Cards | Each month displayed as a card with summary metrics. Replaces the legacy dropdown UI. |
| View Report | Open detailed monthly report via API (list / view / export endpoints). |
| Export | Download a monthly report as a file for sharing outside the platform. |
Admin Workspace â Tabs & Options
The internal admin project view (/admin/project.php) is organized into four tabs for managing project data, settings, and activity.
âšī¸ Info Tab
Project identity and documentation. Client share link, project wiki, logo, and attached documents.
| Option | Description |
|---|---|
| Client Share URL | Auto-generated token URL (/view.php?token=âĻ) shown in the project header. Copy and share with clients. |
| Project Logo | Upload a logo/favicon. Shown in the project header and in the client report header. Removable. |
| Project Wiki (Markdown) | Markdown editor for internal notes and documentation. Preview rendered inline. Max-height with scroll for long content. |
| Document Attachments | Upload multiple PDF/CSV/etc. files as project documentation. Accessible via secure asset endpoint. Visible in client Overview â Documents. |
| Update from MCP | Per-project button to fetch domain_overview from Ubersuggest MCP. Stores snapshot in project meta. |
đ Data Tab
Backlink CSV upload, uploaded file management, and data rebuild actions. Split into Main Site and Competitors columns.
Accepted File Sources
Main Site Uploads
Manual CSV/TXT, Ubersuggest export, Google Search Console export, Ahrefs export. Source auto-detected from CSV headers.
Competitor Uploads
Generic CSV, Ubersuggest, GSC, Ahrefs. Multiple competitor files can be uploaded independently.
| Action | Description |
|---|---|
| Upload CSV | Upload a new backlink file. Replaces existing data for that source. Auto-detects source from headers (Ubersuggest, GSC, Ahrefs, Manual). Updates DB immediately. |
| Re-read Existing Data | Recalculate all DB rows from already-uploaded files without re-uploading. Useful after mapping or schema changes. |
| Uploaded Files List | Shows each uploaded file with its final detected source label. Downloadable and replaceable individually. |
| Workflow Summary | Quick counts of workflow items by status, shown at the top of the Data tab. |
âī¸ Settings Tab
Project configuration: user assignments, filters, and shared donor integration rules.
| Option | Description |
|---|---|
| Assigned Users | Select which admin/user/client accounts have access to this project. Client accounts get read-only workspace access. |
| Backlink Filters | Project-level default filters applied to the backlink table (e.g. minimum DA, exclude certain domains). |
| Shared Donor Rules | Rules for how the global Link Vendors (shared donor) library interacts with this project's workflow suggestions. |
| Client Domain | The root domain for this project. Used as the default domain for MCP discovery and competitor comparisons. |
đ Activity Tab
Audit log of all actions performed on the project. Tracks actor, timestamp, action type, and details.
| Tracked Event | Description |
|---|---|
| Backlink Uploads | Records each CSV upload event with source type and row count. |
| Workflow Changes | Status changes, new items added, deletions â with actor and timestamp. |
| MCP Refresh | Logs each MCP domain_overview / competitor refresh with timestamp. |
| Indexing Actions | SpeedyIndex submissions (Standard / Guaranteed) and Check actions logged with URL and result. |
| Settings Changes | Assignment and configuration changes logged with actor. |
Integrations & Global Settings
Platform-wide settings managed under /admin/settings.php. Accessible to admins only.
MCP Integration
OAuth-based connection to Ubersuggest MCP. Options: Connect / Disconnect, Test Connection, Discovery (backlinks sample with one-per-domain toggle), Raw Dataset fetch, Capability checks (limit probes, argument variants), Token refresh.
Link Indexer
Per-project indexing from the Backlinks tab. Global usage counter and current balance visible in admin. Three operations:
Link Vendors Library
Global shared donor database. Fields: Domain, DR, Ahrefs Rank, Follow type, Industries, Scope, Risk, Link Type, Example URL, Instructions, Internal Notes. CSV import/export. Importable to DB from legacy JSON.
Branding
Team name, colors, logo, client link template, custom HTML for the public index and admin index pages. Applied platform-wide including the client report view.
User Management
Create and edit accounts. Roles: admin, user, client. Password management. Newly added admins automatically appear in project assignment checklists.
DB Health
Diagnostic endpoint showing SQLite path, connection status, table presence, and index state. Used to verify bootstrap integrity after deployment.
Link Vendors â Field Options
All taxonomy values for the shared donor library fields.
| Field | Description | Allowed Values |
|---|---|---|
| Follow Type | Link follow attribute for this donor. | dofollownofollowmixedunknown |
| Industry Scope | How broadly the site covers topics. | generalnichelocal |
| Risk Level | Safety classification of the link source. | cleangreyblackhat |
| Link Family | Broad category of the link placement type. | Custom per team |
| Link Type (Subtype) | Specific placement format within the link family. | Custom per team |
| DR / Ahrefs Rank | Domain Rating and Ahrefs rank. Numeric. Shown in vendor list columns. | 0â100 |
| Industries | Topic tags for the donor site. Multi-value. Used for relevance filtering in workflow suggestions. | Multi-select text tags |
| Example URL | A sample published link from this donor for reference. | â |
| Instructions | Submission or contact instructions for the link vendor. Visible to team members in workflow. | â |
| Internal Notes | Private notes for the team (pricing, contact, history). Not shown in client view. | â |