What I learned building LetrLink: a game built with FlutterFlow, Firebase and AI
I recently created LetrLink (https://www.letrlink.com), a word game inspired by a pen-and-paper game I used to play in middle school (instead of taking notes).

I built this app for my daughter, but also as a learning experience to develop a production-ready app using no-code tools like FlutterFlow and Firebase vs. writing code by hand like I'm used to.

LetrLink challenges players to create the longest possible word chain by changing, adding, removing, or rearranging letters from the previous word.

I really tried to make it visually appealing, with a minimalist design that appeals to people wanting a distraction-free gaming experience. Like players on the spectrum, like myself.

During the development process, I had several technical challenges. One of the most significant was coding the results screen, which displays how letters changed from word to word using colors to indicate whether a letter was added, removed, changed, or shuffled to a new position.

I was pressed for time, working evenings. So at first, I sought help from AI coding assistants like ChatGPT and Claude/Opus. But quickly realized they had trouble handling complex logic.

The assistants approached the problem from a micro perspective, comparing the old and new words letter by letter, rather than considering the entire word to capture situations like multiple occurrences of the same letter or letters moving to different positions.

So I learned that AI assistants are great for basic coding tasks and (and Claude/Opus was excellent with visual design), but complex logic still needs a human brain.

Despite the temptation to copy and paste code generated by AI coding assistants, it's crucial to thoroughly review and understand the logic behind the code these assistants output. In some cases, the AI may hallucinate or make up instructions that weren't provided, leading to nonsensical logic in the codebase.

Another challenge was accurately capturing game statistics and badges, considering that users can play with or without logging in, and their progress needs to be saved. Even if they log in while in the middle of a game.

I had to handle four different cases to ensure that stats and badges were merged correctly in each scenario. And three of those I didn't discover until testing -- which took about as long as it took to develop the initial version.

I used FlutterFlow, Firebase, and Cloud Functions (written in Dart) to build LetrLink, completing the app in under two months by working 1-2 hours per day.

Throughout the development process, I learned valuable lessons about the capabilities and limitations of AI assistants in development, the time it realistically takes to test and code in scenarios you missed, and was reminded of the benefits of writing modular, reusable code with descriptive function names and comments that explain the logic (particularly helpful as you write new code during testing).

Although I haven't open-sourced any parts of LetrLink due to it being largely no-code, I wanted to share it and its backstory with the Hacker News community.

You can play LetrLink for free, without any ads, at https://www.letrlink.com.

I'd love to hear your thoughts and feedback on the game, as well as any insights you might have on developing apps using no-code tools like FlutterFlow and Firebase, and your experiences with AI coding assistants in your development workflows.