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:
- Surveys — schema, question types, branching logic, and rendering. Lives under
hivecfm-core/apps/web/modules/survey/andhivecfm-core/packages/survey-ui/. - Campaigns — the scheduled delivery of surveys to audiences, including email, link, and in-app channels.
- Responses — ingest, validation, enrichment, and storage. The write-path is documented in Data Flow.
- 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 + Razor | Next.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 procs | PostgreSQLPostgreSQLThe 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 reports | Superset dashboards + embedded iframes |
| Hangfire for async work | RiverRiverThe 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 Windows | Nginx + node, containerised |
| appsettings.json + transforms | .env files; see Env Vars |
| SignalR hubs | Server Actions (mutations) + HTTP polling where needed |
| MSMQ / Service Bus | RiverRiverThe 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# / xUnit | TypeScriptTypeScriptJavaScript 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
- Tech Stack for .NET devs — the translation table from C# concepts to the HiveCFM equivalents.
- Run it locally — bring the whole stack up on your machine.
- Architecture Overview — the narrative version of what the landing-page diagram shows.