Most proud of: I'm really proud of solving the tricky CSS layout problems, especially creating the two-tone background effect and making the cards center properly on all screen sizes. I also got Jest testing to work with Next.js 15, which was tough but taught me a lot about build tools.
Do differently next time: I would start with a simpler approach instead of trying to integrate everything into my main portfolio site right away. Building it standalone first would have been easier for debugging. I'd also write more tests from the beginning instead of adding them later.
What challenges did you encounter, and how did you overcome them?Biggest challenges:
-
Testing setup conflicts - Jest and Next.js didn't play nice together. I fixed this by creating a separate Babel config just for tests while letting Next.js use its own compiler.
-
Layout issues - Cards wouldn't center below 1164px width, and I had scrolling problems. I solved these by using better flexbox properties and changing from fixed heights to minimum heights.
-
Button hover effects - They were causing the layout to shift around. I fixed this by adding transparent borders that just change color on hover instead of adding new borders.
-
Form state management - The form wouldn't reset after submitting. I used React Hook Form's reset function to clear everything properly.
1. Double scrollbar issue - I still have a vertical double scrollbar when this project is integrated into my main site. I've tried adjusting overflow properties but haven't fully solved it yet.
2. Testing best practices - I'd love feedback on my Jest test setup and whether there are better ways to test React components with Next.js 15.
3. CSS architecture - Is there a better way to organize my CSS modules for larger projects? My current approach works but feels like it could be cleaner.
4. Component reusability - How can I make my Countdown and SignUpForm components more flexible for different design themes without breaking the current styling?
Any feedback on these areas would be super helpful!