• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
alexwein

alexwein

loopyLettersApp

Remix of alexwein/loopyLetters
Public
Like
loopyLettersApp
Home
Code
5
backend
1
frontend
3
shared
1
README.md
todos.md
Branches
4
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
11/8/2025
Viewing readonly version of coney branch: v46
View latest version
README.md

Loopy Letters - A Word Game

A word game with a small gameplay loop. Plays best on your phone.

Games

  • Main Game (/) - Use every letter on the donut to spell words random words.
  • Birds (/birds) - With random birds instead of random words.

Project Structure

├── backend/
│   └── index.ts             # Main Hono server with API routes
├── frontend/
│   ├── components/
│   │   └── GameApp.tsx      # Main game component
│   ├── index.html           # HTML template
│   └── index.tsx            # Frontend entry point
├── shared/
│   └── gameLogic.ts         # Shared game logic and utilities
└── README.md

Rules

  1. Use every letter on the donut to spell a word.
  2. Letters in the word must be adjacent to each other on the donut.
  3. You can go clockwise or counterclockwise.
  4. When you find a word, the next word to find appears.
  5. Go fast. Go slow. Enjoy.

New Coney Letter Feature: One letter from each word is randomly selected as the "coney letter" and displayed as an interactive circle in the center of the donut. This special letter is adjacent to every other letter on the donut, making it easier to form words. You can click and drag from/to the center circle just like the donut segments.

Game Logic Functions

  • isAdjacent() - Standard adjacency check for letters on the donut
  • coneyIsAdjacent() - Special adjacency check where a designated "coney letter" is adjacent to every other letter

Technical Implementation

The coney letter system works by:

  1. Randomly selecting one letter from each target word as the "coney letter"
  2. Removing that letter from the donut display (creating a complete circle with remaining letters)
  3. Displaying the coney letter as an interactive circle in the center
  4. Using special adjacency rules where the center letter connects to any donut letter
  5. Validating completed words against the full original target word

This revisits the gameplay from a 2002 Observable notebook I made called "find a (big) word, rings".

Data Sources

  • Main game uses random words from the Wordnik word game list
  • Birds version uses Wikipedia's List of Birds By Common Name with images
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.