CatpchaGrind.com website Dashboard
โFrom vision to launch: this is the story of how I built CaptchaGrind, a real-time gamified captcha-solving platform โ and my first full-stack deployment from scratch.โ
CaptchaGrind was born from a simple question:
What if solving captchas wasnโt just a nuisanceโฆ but a game?
As an AI engineer and developer focused on gamification, automation, and system design, I wanted to explore the intersection between human verification and micro-engagement โ not just solving captchas, but competing to solve them faster, better, and smarter.
CaptchaGrind aims to:
โ
Gamify a tedious daily task (captcha solving)
โ
Provide reward logic, streaks, leaderboards, and point systems
โ
Showcase integrations with multiple captcha providers
โ
Operate without requiring user login
โ Be scalable, modular, and extensible across captcha vendors
A full system flow showing frontend logic, API routes, captcha verification, point system, database writes, and leaderboard fetch.
The architecture diagram above illustrates the full-stack flow of the CaptchaGrind application, from frontend interaction to backend validation. At the core is a dynamic React-based UI hosted on the Base44 platform, allowing users to solve captchas in a gamified interface. The application communicates with multiple third-party CAPTCHA providersโhCaptcha, Geetest, and Google reCAPTCHAโvia a modular backend layer powered by Base44 Cloud Functions. These functions securely handle token validation and point allocation using environment-protected API keys. User authentication and data (such as scores, streaks, and session history) are managed through Base44โs built-in Auth and Firestore-based entity system. The frontend and backend remain decoupled but synchronized via REST-like function calls, allowing for a responsive, secure, and scalable experienceโall deployable serverlessly with minimal ops overhead.ย
Built using React + Tailwind for rapid responsive UI
Shadcn/ui components for accessible and theme-able building blocks
Dark mode/light mode toggle, streak tracking, score decay meter
Dynamically load each captcha provider via toggle buttons
๐ธ [INSERT Screenshot of Captcha Widget Game View]
๐ธ [INSERT Screenshot of Leaderboard and Profile Page]
CaptchaGrind supports dynamic switching between providers at runtime:
๐ Uses a captchaProvider state with toggle buttons
๐งน Performs aggressive DOM cleanup to remove prior widget remnants
๐ Removes <script> tags and iframe elements before loading new one
๐ Supports 3rd-party site keys and secrets via secure environment vars
๐ See: switchProvider() logic in Dashboard.js
verifyCaptcha.js verfication code snippet
Each captcha is verified securely server-to-server with the providerโs API using Base44 cloud functions.
Key Functions:
verifyCaptcha.js โ handles POST token verification across all providers
initGeetest.js โ returns captcha ID and challenge params for Geetest v4
getRecaptchaSitekey.js โ securely sends public site key to frontend
debugEnv.js โ custom function for logging ENV issues during Geetest errors
CaptchaGrind supports both:
๐ค Guest Mode: No login required, stores streaks/points locally via localStorage
๐ Auth Mode: Google login via Base44/Firebase, persistent user profiles and leaderboard participation
Game Session Storage Code Snippet
Base44 Entity Models used:
User.json: points, current_streak, best_streak, total_solved, is_premium
GameSession.json: Captures each round's results โ used for stats and history tracking
The hardest technical problem?
Cross-provider widget interference.
Each provider (hCaptcha, Geetest, Google reCAPTCHA):
Injects global scripts (window.hcaptcha, window.grecaptcha)
Attaches DOM elements that persist even after component unmount
Can cause visual/functional bugs when switching mid-session
๐ง Solution:
delete window.hcaptcha etc on switch
Remove iframes, scripts, and lingering container nodes
Force React re-render with unique keys
Add delay before initializing next widget
โ
GitHub repo sync to Base44
โ
Frontend and Backend managed via Base44โs Web IDE
โ
Domain and DNS setup via GreenGeeks WHM + Cloudflare
โ
Site Key/Secret Key stored via Base44 Secrets panel
โ Live deployment pushed through Base44 to production
โ
Real-world API debugging with Geetestโs v4 config errors (-50103)
โ
Security best practices with server-only key access
โ
True A-Z deployment from concept โ code โ production
โ
Working with third-party services and graceful fallbacks
โ
Gamification mechanics with psychologically engaging design
Hereโs how I plan to expand CaptchaGrind:
Add more game modes (e.g. speed runs, captcha boss battles)
AI difficulty curves (adaptive based on user skill)
Monetization via premium themes or ad-free play
NFT-backed unlockables, crypto rewards (Phase 2)
Mobile-first version for iOS/Android via React Native or Expo
CaptchaGrind marks my first fully self-directed full-stack deployment of a real-world SaaS-style app.
It blends UI design, backend engineering, third-party APIs, auth, and gamification
It demonstrates my ability to architect and ship production-grade software
It serves as a template for future AGI-lite mini-apps Iโll continue to build
This is just the beginning. You can view more of my work at:
๐ SoFlyWebDesigns.com
๐ก AiIntersection.com
Want to collaborate or build something great together?
โ Letโs Talk