Open source · Product

FeedbackFlow

Collect, prioritize and deliver product feedback — an open-source alternative to Canny. A public voting space, a roadmap and a dashboard, designed to stay simple to self-host.

Next.js 16TypeScriptPrismaPostgreSQLApp RouterTailwind
RoleDesign & dev.
Period2026 · 2 wk.
TypePersonal project
StatusLive
FeedbackFlow overview

// Context

Why this project

Tools like Canny are effective but closed and paid beyond minimal usage. I wanted a short-scoped project to demonstrate my ability to ship a complete, clean and deployable product — from the data schema to the public interface.

FeedbackFlow is therefore designed as a self-hostable building block: a team installs it, opens a feedback portal, and retains full control of their data.

// Problem

What needed to be solved

Beyond the 'clone' concept, three constraints shaped the project:

  • Signal over noise. Many submissions, little signal: a voting and status system is needed to surface what matters.
  • Two audiences, one codebase. A public space for users, an admin back-office for the team — without duplicating logic.
  • Simple to deploy. No exotic infrastructure: a Postgres database and a Vercel-type platform should be enough.

// Solution

The approach taken

I split the product into three surfaces: a public portal (submit an idea, vote, track progress), a roadmap in columns by status, and a dashboard to sort, merge and evolve requests.

Everything is built on a single data model and server-side rendering (App Router) for fast, indexable public pages.

Public portal — ideas list
Roadmap by status
Admin dashboard

// Technical decisions

The choices that matter

Next.js 16 · App Router

Server rendering for the public

Public pages (ideas, roadmap) are server-rendered: fast on first load and indexable by search engines.

WhySEO and speed are critical for an open feedback portal.
Prisma · PostgreSQL

One schema, two uses

The same model (ideas, votes, statuses, comments) feeds both the public portal and the admin. Prisma secures queries with end-to-end typing.

WhyAvoid logic duplication and inconsistencies between the two surfaces.
TypeScript

End-to-end typing

Shared types between the database, API and components: fewer silent bugs, confident refactors.

WhyShip fast without sacrificing reliability — the project's hallmark.

// Result

What it delivers

A complete, open-source product deployable in minutes — that also serves as a concrete demonstration of how I work: clear scope, typed code, real production deployment.

3surfaces: portal, roadmap, admin
100%TypeScript, from DB to UI
~2 wk.from idea to production