Getting StartedWhat is HiveCFM?

What is HiveCFM?

HiveCFM is the customer-feedback management platform the team is replacing our legacy .NET / SQL Server / SSRS product with. It is an opinionated, open-source-derived stack built on Next.jsNext.jsReact framework used by HiveCFM Core. Handles routing, server rendering, and API routes in one bundle. and Go, designed for teams that need to ship new survey types, new analyses, and new integrations faster than the old product allowed.

Who it’s for

  • Product and CX teams who need to run surveys, campaigns, and feedback loops without asking engineering for every change.
  • Engineers (that’s you) who maintain the platform, build new channels and integrations, and keep data flowing from the browser to the warehouse.
  • Analysts who slice responses in Superset dashboards instead of waiting on SSRS report requests.

The four pillars

HiveCFM organises its feature surface around four domains:

  1. Surveys — schema, question types, branching logic, and rendering. Lives under hivecfm-core/apps/web/modules/survey/ and hivecfm-core/packages/survey-ui/.
  2. Campaigns — the scheduled delivery of surveys to audiences, including email, link, and in-app channels.
  3. Responses — ingest, validation, enrichment, and storage. The write-path is documented in Data Flow.
  4. Insights — sentiment scoring, embeddings for semantic search, and Superset dashboards on top of Postgres.

Legacy to HiveCFM

Legacy (.NET era)HiveCFM
ASP.NET Core MVC + RazorNext.jsNext.jsReact framework used by HiveCFM Core. Handles routing, server rendering, and API routes in one bundle. 14 App Router + ReactReactThe component-based UI library every HiveCFM frontend is written in. Components are TypeScript functions returning JSX. Server Components
SQL Server 2019 + T-SQL stored procsPostgreSQLPostgreSQLThe open-source relational database HiveCFM runs on. Replaces SQL Server for this project. 16 + pgvectorpgvectorA Postgres extension that adds a vector column type for similarity search. Used for AI-powered survey insights., accessed via PrismaPrismaThe TypeScript ORM HiveCFM uses to talk to Postgres. The schema lives at packages/database/schema.prisma.
SSRS reportsSuperset dashboards + embedded iframes
Hangfire for async workRiverRiverThe Go background-job queue Hub uses. Jobs are rows in Postgres, so there is no separate broker to run. job queue (Go) in hivecfm-hub
IIS on WindowsNginx + node, containerised
appsettings.json + transforms.env files; see Env Vars
SignalR hubsServer Actions (mutations) + HTTP polling where needed
MSMQ / Service BusRiverRiverThe Go background-job queue Hub uses. Jobs are rows in Postgres, so there is no separate broker to run. queue + Postgres river_job table
C# / xUnitTypeScriptTypeScriptJavaScript with a static type system. Every HiveCFM Node service, the frontend, and the dev hub are written in it. / Vitest + Go / go test

What’s actually in the box

The full running system is two repos:

  • hivecfm-core/ — the Next.js monorepo with the user-facing app, admin, APIs, and shared packages.
  • hivecfm-hub/ — the Go service that handles embeddings, sentiment, webhook dispatch, and background processing jobs.

Plus Postgres (with pgvectorpgvectorA Postgres extension that adds a vector column type for similarity search. Used for AI-powered survey insights.), Redis, MinIOMinIOS3-compatible object storage for survey attachments and uploads. Runs locally; swaps for real S3 in prod., and Superset. The visual map of how these fit together lives on the Developer HubHubThe Go service that owns background processing, integrations, and the admin API. Sibling to Core. landing page — open the home page to explore the ArchitectureExplorer; click any node to see which files and env vars wire it up.

Next