NhakoSearch
A cozy, hand-drawn word-search game for two: a daily puzzle, a 360-level path, and realtime race or co-op.
- Status
- Live
- Kind
- Web game for two
- Stack
- Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS v4, Framer Motion
- Backend
- Supabase: Postgres with row-level security, Google sign-in, Realtime channels
- Audio
- Web Audio API, fully synthesised; no audio files shipped
- Hosting
- Vercel, on free tiers
- Started
- Last push
- License
- Not specified in the repo
- Built by
kimzam
What you get
- Free play in 12 themes (Garden, Rainy Day, Night Sky, Bakery and more) at easy, medium and hard, with a picker that prefers words you have not seen.
- A daily puzzle: one shared board a day, with streaks.
- A level path of 360 levels across themed chapters, up to three stars each.
- Multiplayer: race a friend on the same board in real time, or solve it together in co-op with chat.
- A butterfly album: 37 achievements, each a hand-designed species, and butterfly tokens you earn by playing and spend on hints.
- Installable: a Home Screen app on iOS and Android.
How it works
Puzzles are deterministic: a seeded generator means the same seed, words and difficulty give the same grid in every browser, which is what lets two players race on one board. Multiplayer rooms are ephemeral Supabase Realtime channels keyed by a room code; there is no room table.
Every lobby screen reads one cached player summary. Signed-in players load it with a single RPC, guests from local storage, and it is stale-while-revalidate, so a tab switch paints real numbers on its first frame.
Security
- Row-level security on every table. Players read and write only their own rows; friendships and wallets go through locked-down RPCs.
- Friend notifications use a private channel only its owner may join. Race chat is length-capped, rate-limited and stripped of control characters.
- Strict CSP, HSTS preload and a locked-down Permissions-Policy in production.
Stated limitation: progress and token earnings are reported by the client, so a player could inflate their own stats. Tokens have no monetary value.
Design
The whole app is a nature journal two people keep together. By day it is "Meadow Journal": blush paper, plum ink, hand-cut corners with four different radii, solid sticker shadows that a button presses into, and paper grain behind every screen. By night it is "Night Garden", its own palette rather than an inversion: a midnight-indigo sky with aurora glows and stars, jewel-toned cards and neon-pastel word capsules. Type is Fredoka for display, Nunito for reading and Caveat only for the signature.