Vercel project root: website/
The live unique-view counter is implemented in api/views.js.
For persistent counting on Vercel, add these environment variables:
UPSTASH_REDIS_REST_URL=...
UPSTASH_REDIS_REST_TOKEN=...
VIEW_COUNT_BASELINE=0
DOWNLOAD_COUNT_BASELINE=0Each browser gets a local visitor id and the API counts it once with Redis SET NX. The frontend polls every 15 seconds so the displayed count updates while the page is open.
The download counter is implemented in api/downloads.js. It uses the same visitor id and Redis SET NX pattern so one browser is counted once per platform when a real installer asset is clicked. It tracks total downloads plus individual Windows, macOS, and Linux counts. Set DOWNLOAD_COUNT_BASELINE=0 for a fresh public launch.
The platform download buttons are powered by api/releases.js, which reads the latest GitHub release from vasu-devs/JustHireMe and maps release assets to:
- Windows:
.exe,.msi,.msix, or asset names containingwindows,win32,win64 - macOS:
.dmg,.pkg, or asset names containingmac,darwin,apple - Linux:
.AppImage,.deb,.rpm, or asset names containinglinux
If an asset is missing, that platform button stays disabled and says Available soon.
The feedback and review forms post to api/feedback.js.
To create GitHub issues from submissions, add:
GITHUB_FEEDBACK_TOKEN=...
GITHUB_FEEDBACK_REPO=vasu-devs/JustHireMeThe token needs permission to create issues on the target repository. GITHUB_FEEDBACK_REPO is optional and defaults to vasu-devs/JustHireMe.
Create these labels in the repository for a cleaner feedback inbox:
website-feedback
feedback
reviewThen use filtered issue pages:
- Feedback inbox:
https://github.com/vasu-devs/JustHireMe/issues?q=is%3Aissue%20label%3Awebsite-feedback - Reviews only:
https://github.com/vasu-devs/JustHireMe/issues?q=is%3Aissue%20label%3Areview
To email submissions through Resend, add:
RESEND_API_KEY=...
FEEDBACK_EMAIL_TO=you@example.com
FEEDBACK_EMAIL_FROM=JustHireMe <feedback@your-domain.com>At least one delivery path must be configured for submissions to reach you automatically. If neither GitHub nor email is configured, the endpoint returns 202 and the page tells the visitor that delivery setup is still needed.