# Build brief — a focused alternative to Rankwise

> **Verdict:** Partly, if you narrow it · **Buildability:** 56/100 · **Category:** SEO Marketing
> **Source:** https://www.canitbevibecoded.com/rankwise
> Independent editorial assessment from Can It Be Vibe Coded? Not affiliated with, endorsed by, or derived from Rankwise. Verify current pricing and capabilities before acting.

## Context

**Rankwise** — Finds the questions AI engines answer without naming you, then writes the articles and hands you the exact site fixes. It currently costs $59/mo.

The measurement half is a focused project. Fire a fixed question set at the ChatGPT, Claude, Gemini and Perplexity APIs on a schedule, count whether your domain gets named, store every run, and you have the dashboard. What takes Rankwise past that is the acting half: ranking topics by demand and citation gap, drafting sourced articles, and publishing them into WordPress, Shopify, Webflow or Wix without breaking anything. You can hand-write that loop for one site and one CMS. Doing it across four engines and four CMSes, every week, while the APIs move under you, is the part that stays a product.

This brief describes a focused, single-operator replacement for the part of Rankwise that is genuinely reproducible. It is deliberately narrower than the product it replaces, and it says so in writing. Build the useful core; do not pretend to have rebuilt the rest.

## What you are building

Send a fixed question set through the four answer engine APIs on a schedule, record whether your domain is cited, and diff the score week over week.

- Automate a bounded research or reporting workflow using permitted data sources.
- A responsive interface with real empty, loading, success, and error states.

## Requirements

### Functional

- A scheduler for the weekly run.
- Durable per-run storage so history survives.

### Data and integrations

- OpenAI, Anthropic, Gemini and Perplexity API keys with web search or grounding enabled.
- An API budget that scales with questions x engines x weeks.
- CMS credentials if you want the publishing half too.

Each of these needs a real account, credential, or quota. Set them up before writing feature code.

### Non-functional

- Accessibility: semantic markup, labelled controls, visible focus, and reduced-motion support.
- Security: server-side secrets, validated input, and no credentials in the client bundle.
- Reliability: retries with backoff on external calls, and a clear failure state when a provider is down.
- Portability: the operator can export their data and leave without losing it.

## Implementation brief

Build me a local AI answer engine citation tracker for one website. Requirements:

- Node 22, TypeScript, SQLite via better-sqlite3, a CLI plus a server-rendered dashboard
  on localhost. No accounts, no telemetry, everything stays on my machine except the
  API calls.
- site.json holds my domain, brand aliases and competitor domains. questions.json holds
  up to 40 buyer questions I want to be the answer to.
- `rank run` sends every question through OpenAI, Anthropic, Gemini and Perplexity with
  each provider's web search or grounding tool on. Keys live in .env.
- Write one immutable row per run, question and provider: raw answer, cited URLs, model
  id and any error. Never overwrite a previous run, history is the whole point.
- Cap concurrency at 3 per provider, retry twice on 429 and 5xx with backoff, and show
  failed cells in the report rather than dropping them silently.
- Normalize every citation to hostname plus canonical path, strip tracking params, then
  compute my citation share and a top 25 cited domains table per engine.
- `rank serve` renders citation rate per engine over time, the questions where a
  competitor is cited and I am not, and a week-over-week diff.
- `rank audit <url>` fetches one page and reports the mechanical gaps only: missing or
  invalid JSON-LD, missing canonical, robots and llms.txt rules blocking AI crawlers,
  and thin heading structure. Print the JSON-LD block it would add.
- `rank export` writes runs and citations to CSV.
- Out of scope: writing articles, publishing to a CMS, and scraping the consumer chat
  UIs. Use the APIs only.
- README: setup, per-run cost estimate, a cron line for the weekly run, and a plain note
  that API answers only approximate what users are actually shown.

## Delivery standard

- Inspect the repository first, then write a short implementation plan before writing code.
- Deliver the smallest complete end-to-end workflow first; every primary control must work against persisted data.
- Use real validation and storage; never substitute fake dashboards, decorative controls, hard-coded success states, or mock integrations.
- Include responsive layouts plus genuine empty, loading, success, validation, and failure states.
- Keep secrets server-side in environment variables, provide .env.example, and never commit credentials or user data.
- Add structured logs around every external call and return actionable errors without leaking sensitive details.
- Write unit tests for the core logic and one automated test of the main user journey.
- Finish with a README covering setup, architecture, data location, backups, tests, deployment, and known limitations.

## Acceptance criteria

- [ ] A clean install starts the app using only the README and .env.example.
- [ ] The primary journey works from first visit through saved result, reload, edit, export, and deletion where applicable.
- [ ] Invalid input, missing configuration, provider failure, and an empty database each have a usable state.
- [ ] The interface works at 390px and 1440px, is keyboard navigable, and shows visible focus on every control.
- [ ] Tests, type checking, linting, and a production build all pass with no ignored failures.
- [ ] No part of the interface implies a live integration, security guarantee, or scale capability that was not actually built and verified.

## Non-goals

Do not build these, and do not claim to have replaced them:

- The CMS publishing matrix, and the upkeep as WordPress, Shopify, Webflow and Wix each change their APIs.
- The editorial layer: topics ranked by demand, citation gap and winnability, then drafted and reviewed rather than dumped.
- Exact technical diffs (JSON-LD, canonicals, robots rules, llms.txt) instead of generic advice you still have to translate.
- Months of score history, without which a single week's citation rate tells you nothing.
- Per-engine weekly scoring across seven on-page dimensions, which costs real API spend every run.

## What you still own after launch

- Secure credentials, rotate secrets, and handle provider rate limits.
- Run migrations, backups, restores, and dependency updates.
- Test the critical journey after every model, API, or hosting change.
- Monitor failures and fix the edge cases a first prompt will miss.
- Maintain every third-party integration as APIs and OAuth rules change.

## Risk

**Operational risk.** The code is achievable; dependable data, integrations, and ongoing operations are the real cost.

Editorial confidence in this assessment: medium. No reviewed project implementation is linked yet.

## Existing alternatives

Before building, compare these checked options:

- [Elmo](https://www.elmohq.com/) — Tracks the citations honestly. Writing the article and pushing it to your CMS is still your evening

## Prior art

Working open-source software you can read, fork, or borrow from before starting:

- [Elmo](https://github.com/elmohq/elmo) — MIT-licensed self-hosted AEO tracker: runs your prompts across the answer engines and records mentions, competitors and cited sources

---

Generated by [Can It Be Vibe Coded?](https://www.canitbevibecoded.com) · Full report: https://www.canitbevibecoded.com/rankwise
