If you could start over, what technologies would you use instead?
For Vocabulous, while React and Tailwind CSS have been excellent choices for the frontend, I would have advocated for Nest.js instead of Laravel for the backend. Nest.js would have provided several advantages:
- Unified TypeScript ecosystem across frontend and backend
- Familiar JavaScript/Node.js environment
- Built-in support for WebSockets and real-time features
- Easier integration with modern JavaScript tools and libraries
What would you change about any of the technologies you used?
In terms of our current tech stack, I’d make a few adjustments:
For React, I’d consider incorporating more state management patterns from the start. While React’s Context API and local state work well for simpler components, a more robust solution like Redux Toolkit or Zustand could help manage Vocabulous’s growing complexity, especially for features like user progress tracking and vocabulary lists.
With Tailwind, while its utility-first approach speeds up development, I’d establish stricter component-level CSS conventions earlier in the project. This would help prevent duplicate styles and maintain consistency across the application. Perhaps implementing a component library with predefined Tailwind classes would streamline our development process.
The biggest change would be replacing Laravel with Nest.js, as mentioned earlier. This would allow for much better code sharing between frontend and backend, more straightforward API integration, and easier implementation of real-time features that could enhance the vocabulary learning experience.
While our current stack is functional, these adjustments could potentially improve both the development experience and the final product.