vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
코드 없이 설문을 만들고, 응답자를 지정해 결과를 확인·웹훅·Slack·Notion·Google Sheets로 전송
Build surveys in a no-code editor, target who answers, read the results and send them to a webhook, or to Slack, Notion and Google Sheets on self-hosted instances.
데이터TypeScript · GoGitHub @yldm-tech온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Forma — survey and experience management, being rewritten in Go and TanStack
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Forma is a survey and experience-management platform. Collect feedback with in-app, website, link and email surveys, read the results in each survey's own summary and response views, and act on them with Workflows.
Forma is a Go server and a TanStack single-page app. It replaced a Next.js monolith (yldm-tech/forma2, now archived, whose history continues here), which is retired: an installation of it cannot be upgraded in place, and its data is not read.
The tags v1.0.0 to v3.1.0 belong to a different, earlier project that used this repository name; they are unrelated to Forma.
Go · Gin · GORM · PostgreSQL · SpiceDB · React · TanStack Router and Query · Tailwind CSS · Vite+ · Preact (survey runtime)
You need Go (see apps/server/go.mod), Node.js (see .node-version), pnpm and Docker.
pnpm install
cp .env.example .env
make deps-up # PostgreSQL, Valkey, SpiceDB, RustFS and Mailpit in Docker
make dev-server # Go server on :3000
make dev-web # Vite dev server, the app at http://localhost:5173/app/, proxying the API to :3000
| Command | What it does |
|---|---|
make build | Build the SPA and SDK bundles, embed them, compile bin/forma |
make test | go test -race and the Vitest suites |
make lint | golangci-lint and vp check (Oxfmt, Oxlint, type-check) |
make check | The lint, test and generated-file checks CI runs |
AGENTS.md is the working reference for this repository: layout, conventions, the API contracts that must not change, and testing policy. Read it before your first change.
Run Forma with deploy/docker/docker-compose.yml or the Helm chart in deploy/helm/forma. Two things to set up deliberately:
"level":"audit" (with LOG_FORMAT=json, the default). Forma keeps no audit table and has no page that shows them, so your log pipeline is where they are kept and searched. Set AUDIT_LOG_GET_USER_IP=1, with TRUSTED_PROXY_HOP_COUNT matching the proxies in front of the server (or CLIENT_IP_HEADER with TRUSTED_PROXY_CIDRS when the proxy passes the client address in a header such as CF-Connecting-IP; list that proxy's own addresses as the hop count sees them, never the ingress's or a whole pod network, or callers that reach the ingress directly can choose their address), to record client addresses; without it they read unknown.RETENTION_SWEEP_DRY_RUN=0. Responses and contacts are never swept.Report vulnerabilities to [email protected] rather than opening a public issue. See
SECURITY.md.
Private. All rights reserved.