Overview
Everyone who plays 4Word gets the same puzzle each day. You solve four clue words, and their first letters spell the start of the day's mystery word, "Today's Word", which has its own hint.
4Word is a client project for GDI MFG. The client's own developer started it in 2023 and 2024, then I took over development in 2024 and have been the main developer since, with 136 of its 193 commits.
It's released on the App Store, and I still maintain it. The latest work was in April 2026, on version 2.0.8.
What it does
The daily puzzle
- Custom on-screen keyboard, with a shake on wrong guesses
- How To Play guide
Reveals and Hard Mode
- Reveals fill in one letter at a time
- Reveals for the mystery word unlock after all four clues are solved
- Hard Mode hides the mystery word's hint
Stats
- Streaks split by normal and hard mode
- Yesterday's solution
Settings and sharing
- Five color schemes and a sound toggle
- Share your win and invite friends
- Prompt to install required updates
Ads and purchases
- Free, with AdMob app-open and interstitial ads
- One-time purchases: remove ads ($0.99), unlimited reveals ($0.99), or a bundle of both ($1.49)
How it's built
Simpler monetization
In March 2026 I reworked how the game makes money. Reveal packs and rewarded ads were replaced with three one-time StoreKit 2 purchases.
Purchases that survive a reinstall
Purchases and reveal credits are stored in the iOS Keychain, so they're still there after the app is deleted and reinstalled. Values stored the older way are migrated over.
Puzzles from Firebase, cached on the device
Puzzles are delivered as CSV from Firebase Storage behind anonymous Firebase auth and cached locally. Stats, settings, and completed puzzles live in a local SQLite database through SQLite.swift, and reveal state is saved and restored across restarts.
Keeping ads from getting stuck
An ad watchdog shows a close button after 5 seconds and force-closes an ad that's still stuck after 30, so a bad ad can't block the game.
Tests
About 6,500 lines of Swift, covered by unit and UI test suites.