WishKit wishkit.io

Can AI replace WishKit?

The data model here is four tables and a sort function: wishes, votes, comments, statuses. An agent can produce the whole web board plus a REST API in a single sitting, and it will work fine for a side project. The part that is actually work is everything after that: a native in-app widget for each platform you ship on, anonymous device identity so the same user cannot vote fifty times, spam and profanity handling, and an endpoint that stays up for people who already installed your binary. Nothing there is hard, it is just a real backend you now own forever. Build it if you like owning it, pay if your roadmap board is not the thing you want to be on call for.

Verdict: Half-bot · AI gets you partway; the hard part stays hardBuild time: a weekend
Half-bot

01What it costs

$15/moPremium, monthly per account (2 projects)
$180per year at that price

Checked Aug 18, 2026 · source: wishkit.io.

02Could AI build it for you?

The core job: Runs a self-hosted feature request board with upvotes, comments, status labels and an admin view, exposed over a small REST API that your app can call from an embedded widget.

What a working version needs:

  • A place to host a small Node service with persistent disk
  • A domain or subdomain your shipped app can call
  • Xcode if you want the SwiftUI widget compiled and tested
  • Basic rate limiting or a proxy in front of the write endpoints

The board is a weekend, the on-call rotation for it is forever.

03What you'd give up

  • A maintained SDK per platform, so every new client is your code to write and version
  • Anti-abuse that someone else already tuned: duplicate votes, spam floods, garbage submissions
  • Uptime you did not have to think about for users running an old build of your app
  • Email or push notifications when a request they voted for ships
  • Duplicate merging, tagging and the other board hygiene features that only matter once you have hundreds of wishes

Because a feature request board is not the product, it is a chore attached to the product. Paying converts an endpoint you have to keep alive, patch, and defend from spam into a line item, and it gets you a native widget that matches the platform without you writing UI you do not care about. Indie developers in particular are buying the SDK and the uptime, not the CRUD.

05The build prompt

Paste this into an AI coding tool (such as Claude, ChatGPT, Lovable or Replit) to build your own version.

prompt.txt
Build a self-hosted feature request board with a small public API, meant to be embedded in my own apps.

Stack, no substitutions: Next.js 15 with the App Router and TypeScript, SQLite via better-sqlite3 with Drizzle ORM, Tailwind for styling. No auth provider, no analytics, no telemetry, no external services.

Data model: projects (id, name, api_key), wishes (id, project_id, title, description, status, created_at, author_device_id), votes (wish_id, device_id, unique together), comments (id, wish_id, device_id, body, created_at). Statuses: pending, approved, in_progress, completed, rejected.

Public REST API, all scoped by an X-Api-Key header mapped to a project:
- GET /api/wishes?sort=votes|new returns approved, in_progress and completed wishes with vote counts and whether the calling device already voted
- POST /api/wishes creates a wish with status pending
- POST /api/wishes/:id/vote and DELETE /api/wishes/:id/vote, idempotent per device_id
- GET and POST /api/wishes/:id/comments
Device identity is a client-generated UUID sent as X-Device-Id. No accounts. Reject bodies over 2000 characters and rate limit writes to 10 per device per hour using an in-memory token bucket.

Admin UI at /admin behind a single ADMIN_PASSWORD from .env, checked with a signed httpOnly cookie: list all wishes including pending, change status, delete, merge a duplicate into another wish (moves votes, dedupes by device_id).

Public web board at /b/[projectId]: sortable list, vote button, detail page with comments, submit form. Mobile-first, plain and fast, no animations.

Also generate a minimal SwiftUI package in ./ios-sdk: one WishBoardView that lists, votes and submits against the API, device UUID persisted in UserDefaults, base URL and api key passed in at init. Keep it under 300 lines and do not add dependencies.

Out of scope: email or push notifications, multi-tenant signup, billing, roadmap columns, OAuth, i18n.

Secrets in .env: ADMIN_PASSWORD, COOKIE_SECRET. Ship a seed script that creates one project and ten sample wishes, plus a README with curl examples for every endpoint.
Sponsor slot · openFeatured alternative to WishKit. A labeled card for one relevant tool.
Book this spot →

App prices, verdicts, alternatives and build prompts are adapted from Can I Vibecode It? (MIT License, © 2026 Rob Hallam). Each price shows the date it was checked and its source. Prices change; confirm on the vendor's site before you decide.