- Data Migration & Wrangling
- Discovery Patterns
Finalizing the star rating functionality

This blog post is a summary of our latest YouTube video, where Judith and I dive into the development of a star rating component for our Next.js and Supabase-powered application.
We explore the shift from a simple React app to a production-ready server-side rendered solution, tackling form handling, debugging, and client-server interactions along the way.
tl;dr Link to this headline
- We built a star rating component for our Next.js app.
- The component required careful handling of client and server interactions.
- We discussed form handling, state management, and debugging.
- The evolution of React and Next.js frameworks influenced our development decisions.
Creating the Star Rating Component Link to this headline
The core of this episode was designing a user-friendly star rating system. We started with a basic React implementation, focusing on capturing user interactions and dynamically updating ratings.
One of the first challenges was ensuring that the component worked both as a display-only element and as an interactive input field. We debated whether to keep it as a standalone component or integrate it into a larger form.
Client vs. Server Components Link to this headline
Next.js introduces the concept of server components, which changes how developers handle data and interactions. Since our rating system involves user input and server-side updates, we needed a hybrid approach. We used client components to capture user interactions and server actions to process and store the rating data.
This setup allowed us to improve performance while keeping the component responsive.
Handling Form Submissions Link to this headline
Managing form state and ensuring proper submission flow was another key topic. While Next.js provides built-in support for server actions, we needed to handle state updates carefully to prevent race conditions.
By structuring our form with controlled inputs and immediate feedback, we created a smoother user experience. Debugging was an essential part of the process, as we encountered various issues with re-renders and state inconsistencies.
Debugging & Testing Link to this headline
A significant portion of our development time was spent troubleshooting unexpected behaviors. We tackled:
- State management bugs causing incorrect ratings to display.
- Server-side delays affecting real-time updates.
- The difference between controlled and uncontrolled components.
Through iterative testing and step-by-step improvements, we refined our component for a seamless user experience.
The Bigger Picture: Web Development Trends Link to this headline
While working on this feature, we reflected on how modern web development has evolved. React’s shift towards server components, the rise of full-stack frameworks like Next.js, and the increasing importance of simplicity in design all played a role in shaping our decisions.
We concluded that, despite advancements in tooling, understanding fundamental web principles—like HTML forms and HTTP requests—remains crucial for effective development.
That’s a wrap for this season! Thank you for following along, and we can’t wait to bring you more exciting content in the future. Stay tuned!