Self-hosted · Transparent analytics
Kindness that you can measure.
We’re building a QR-powered way to run campaigns, share your story, and understand reach — with analytics recorded on your own infrastructure, not rented from a black box.
Status: This page is the public face of the project. The full QR redirect, scan logging, and admin dashboard described in our product spec are under active development and will roll out on the same host when ready.
Mission
Falcons for Kindness helps organizations turn printed and digital touchpoints into measurable kindness: fundraisers, drives, volunteer sign-ups, and awareness campaigns — without giving up ownership of visitor data.
- Campaigns should be easy to share (QR-first).
- Every scan should be understood, not guessed from screenshots.
- Your stack should stay yours: VM, Docker, your domain, your rules.
What we’re building
The platform follows a simple rule: log first, redirect second. If logging fails, the visitor is not silently sent onward — reliability beats vanity metrics.
QR campaigns
Create and manage QR entries with slugs, destinations, campaigns, and active/inactive states — designed for real-world signage and digital share cards.
Scan analytics
Server-side events with timestamps, geography (via trusted proxy headers), user-agent, referer, and Cloudflare-aware client IP handling.
Admin dashboard
Single-admin login, charts, top codes and countries, scan tables with filters, and CSV export — optimized for clarity, not hype.
Stack
React admin UI, Node.js API, PostgreSQL, Prisma, Docker Compose, Nginx reverse proxy, and Cloudflare at the edge — documented for reproducible self-hosting.
Built for operators
Traffic passes through your Nginx host and Cloudflare; the app is written to trust only known proxy hops, resolve client IPs carefully, and record whether a request came through Cloudflare. That’s the same discipline we apply when kindness needs an audit trail.