Well, here we are—the end of the Alpha development cycle for Foodable. And man, oh man, has it been a journey. In this post, let’s talk about the biggest challenges we faced while developing this awesome application. There were a few, but we’ll stick to the top three.
Fully Utilizing Server-Side Rendering (SSR)
First and foremost, making the most of Server-Side Rendering. For those unfamiliar with SSR, it essentially means that data is fetched and processed before the page is delivered to the user—super helpful. My team and I were still learning the ins and outs of Next.js (one of the most popular SSR frameworks for React) and didn’t implement it correctly at first. The worst part? I didn’t realize our mistake until we were about 75% of the way through development. By that point, we had written a ton of code, and refactoring it to properly leverage SSR was a major headache—but absolutely worth it in the long run.
Mixing Up TanStack Query and Zustand
To clarify, TanStack Query (formerly React Query) is a server-state management library, while Zustand is a lightweight client-state management tool. Unfortunately, we mixed these up in the early stages of development, which led to an absolute mess of a codebase—so chaotic that even Professor Roger would be disappointed. Ironically, I realized this issue at almost the same exact time we caught our SSR mistake. Fixing it took a ton of effort, but once we got it right, everything felt so much smoother and more efficient.
Team Communication Issues
Now, what’s a development cycle without at least one team-related problem? I won’t name names, but one of our teammates barely communicated, and the work they did produce was sloppy and poorly thought out. Both my other teammate and I made ourselves available multiple times throughout the term to offer help, yet they hardly took advantage of it. This meant we couldn’t trust them with complex tasks or longer assignments, which ultimately put more work on our plates. Look, I get it—everyone is busy—but when you commit to something and don’t use the resources available to you, then blame external factors, it just shows a lack of care for the project.
Final Thoughts
Despite these bumps in the road, I learned a ton about different technologies and being in a development team. The development process went well overall, and seeing everything come together was incredibly rewarding. If I had to pick the most challenging problem, it would definitely be the combination of SSR and state management mishaps. The way I solved it was by sitting down, carefully analyzing our mistakes, and refactoring the code piece by piece—painful but necessary. All-in-all though Foodable was chosen because we wanted to build something practical, innovative, and useful for real people. So far, it has met expectations. Sure, there were challenges, but overcoming them only made the project stronger. Now, onto the next phase!