A public talent questionnaire for Fort Worth builders, creatives, and civic innovators. The production site is talent.fwtx.city.
Built with Next.js, vinext, Cloudflare Workers, Turnstile, and PostgreSQL through Cloudflare Hyperdrive.
Requirements: Node.js 22.13 or newer, npm, and a PostgreSQL database.
npm ci
cp .env.example .env.local
npm run devFill in .env.local, using the same local PostgreSQL connection string for CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE and DATABASE_URL. Apply db/migrations/001_create_talent_profiles.sql before submitting the form, and use a least-privilege application role.
Create a Cloudflare Turnstile widget and add its site key, secret, and allowed local hostnames to .env.local. The site key is public; keep TURNSTILE_SECRET private.
npm run dev # Start the local development server
npm run check # Run lint, type checking, build, and tests
npm run deploy # Build and deploy with WranglerUpdate the account, route, hostname, and Hyperdrive values in wrangler.jsonc for your Cloudflare account. Store the Turnstile secret with Wrangler, then deploy:
npx wrangler secret put TURNSTILE_SECRET
npm run deploySubmissions are validated on the server, protected by Turnstile, and stored in the private talent.profiles table. The Worker exposes no public read endpoint.