# Build brief — a focused alternative to Ghostfeed

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

## Context

**Ghostfeed** — Drops your AI avatar into a viral creator's clip and clones its motion, builds TikTok photo slideshows, and hands them to TikTok. It currently costs $49/mo.

No model here was trained by Ghostfeed · every step is somebody else's hosted inference, spread across four vendors. A Gemini image-edit call swaps your avatar into frame 0 of an existing clip, an approval gate makes you accept that frame before anything expensive runs, and then the video step splits: the default clone family sends the approved frame plus the original clip to Kling motion-control, so the render inherits the source video's motion, while the prompt family animates the still alone on PixVerse, Seedance, Grok or Kling. Rebuild the loop for yourself with a fal.ai key, a Gemini key and ffmpeg over a long weekend and it works. What does not fall out of that weekend is the rest of it · a template library scraped and scene-cut into 9:16 clips, a director that writes slideshow copy and casts every background itself, a timeline editor with its own render workers, 44 agent-API tools, and a TikTok app that took platform review to get. Personal version, yes. The thing you would actually run daily, no.

This brief describes a focused, single-operator replacement for the part of Ghostfeed 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

Swap an avatar photo into frame 0 of a reaction clip with a hosted image-edit model, approve that frame, then send it plus the source clip to a hosted motion-control model so the render copies the original's motion, and burn the hook text over the result.

- Assemble clips, captions, and renders around a scripted, bounded pipeline.
- A responsive interface with real empty, loading, success, and error states.

## Requirements

### Functional

- Ffmpeg.
- Reaction clips you have the right to reuse.
- An always-on box for the polling loop.

### Data and integrations

- Fal.ai key for Kling motion-control and image-to-video.
- Gemini or GPT-image key for the first-frame swap.

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 personal UGC reaction video factory to replace Ghostfeed. Requirements:

- Node + Express + better-sqlite3, a localhost dashboard with three panes: my
  avatar photos, a folder of reaction clips I own, and a render queue.
- First frame: pull frame 0 from a chosen clip with ffmpeg, send it plus my
  avatar photo to Gemini's image-edit API (key in .env) and tell it to replace
  the whole person while holding the pose, framing, and lighting. Keep that
  instruction in prompts/first-frame.txt so I can tune it without code changes.
- Nothing animates until I approve the frame, so give me approve, regenerate,
  and discard buttons · the frame costs cents on my invoice, the video dollars.
- Motion: on approve, POST the frame AND the original clip to fal.ai's Kling
  motion-control queue so the render copies the source video's motion, poll to
  done, write the mp4 to media/, store the real cost on the row.
- Second mode: animate the frame alone from a written motion prompt via
  fal.ai's PixVerse image-to-video, for when I have no clip worth copying.
- Burn the hook line over the top third with ffmpeg drawtext, 1080x1920 out,
  clear of the TikTok UI safe area.
- A node-cron tick polls pending jobs every 90s, retries 3 times with backoff,
  and marks the row before submitting so a retry never double-bills me.
- No accounts, no telemetry, everything on my disk except the model calls.
- Out of scope: posting to TikTok (that OAuth review takes weeks · export the
  mp4 and upload by hand), slideshows, and teams. Only ingest clips I have the
  right to use.
- README: getting the two keys, what one 5-second motion-control render costs,
  and where media lands on disk.

## 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:

- A template library scraped from TikTok and Instagram and scene-cut into ready 9:16 clips, instead of clips you source and trim yourself.
- Avatar consistency across renders · one stored reference photo re-fed into every call, plus the draft-and-approve flow that keeps a face you picked.
- A director loop that writes the slideshow copy, searches for backgrounds, looks at the candidates and casts them, then rotates the deck into variants, plus a timeline editor with its own render workers.
- 44 agent-API tools · the same workspace drivable from Claude, which is the part with no weekend equivalent.
- A TikTok app that already cleared review, and a reaper that refunds most stalled renders instead of quietly eating them.

## 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: high. No reviewed project implementation is linked yet.

## Prior art

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

- [ComfyUI](https://github.com/comfyanonymous/ComfyUI) — Node graph for running open image and video models locally · the render pipeline without the hosted invoice
- [Wan2.2](https://github.com/Wan-Video/Wan2.2) — Apache-2.0 open video model with image-to-video, the free stand-in for the hosted animation step if you own a GPU
- [Postiz](https://github.com/gitroomhq/postiz-app) — Open-source social publishing · the scheduling and OAuth half, self-hostable, so you never touch the TikTok API yourself

---

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