Lessons from building more than 40 responsive pages for a production application with an international development team.
When I first started learning React and Next.js, I thought becoming a better frontend developer was all about building more projects.
So I did exactly that.
I built landing pages, responsive web applications, and several frontend projects. Every project helped me improve my skills, and over time I became confident that I was ready for professional work.
Then I joined my first large-scale production project.
That experience changed the way I think about software development forever.
Looking back, I realize I wasn’t just learning another framework. I was learning how software is built when multiple people share the responsibility.
The project was Exeton, an official NVIDIA partner, where I joined a frontend team responsible for building a modern web platform. My role was to convert more than 40 Figma designs into responsive Next.js pages using TypeScript and Tailwind CSS.
At the time, I was excited and honestly, a little nervous. It was my first opportunity to contribute to a large production project alongside an experienced development team. I knew I could build interfaces, but I had no idea how different professional software development would feel compared to personal projects.
Before joining the team, I expected the biggest challenge to be writing React code.
I couldn’t have been more wrong.
The hardest part wasn’t React.
It wasn’t Next.js.
It wasn’t even TypeScript.
It was learning how professional engineering teams actually build software.
Personal Projects and Client Projects Are Two Different Worlds
One thing became clear within the first few weeks.
Personal projects and client projects are completely different.
When you’re building something for yourself, you’re the captain of your own ship.
If you want to change the design, you change it.
If you want to rename a component, you rename it.
If you decide to rewrite half the project at midnight, nobody stops you.
Professional projects don’t work like that.
Every decision affects other developers.
Designs change after client feedback.
Components need to stay consistent across dozens of pages.
Pull requests need approval.
Deadlines exist.
Communication matters just as much as writing good code.
That was my first real lesson in software engineering.
Personal projects teach you how to write code. Production projects teach you how to build software with people.
Lesson 1 — Think Before You Touch the Keyboard
One piece of advice from my team lead completely changed the way I build frontend applications.
Don’t start coding immediately.
At first, that sounded strange. Isn’t writing code the whole job? Not really.
Before creating a new page, I learned to ask questions like:
Can I reuse an existing component?
Does something similar already exist?
How will this fit into the current project structure?
Will another developer understand this code next week?
Does this design work well on mobile devices?
Spending ten minutes thinking often saved hours of rewriting later.
Today, I still follow that habit in every project I build.
Lesson 2 — Reusable Components Are a Superpower
One mistake many frontend developers make including me is thinking page by page.
Professional teams think differently.
They think in systems.
During this project, I wasn’t recreating headers, sections, buttons, and layouts for every new page.
Instead, I built reusable components that could be shared across multiple pages.
At first, creating reusable components felt slower. But after working on dozens of pages, I realized something.
Every reusable component was an investment.
The more reusable our code became, the faster we could build new pages while keeping the entire application consistent.
That lesson alone changed how I structure every React project today.
Lesson 3 — Collaboration Is a Technical Skill
Before this project, I thought communication was mostly a soft skill.
I couldn’t have been more wrong.
Working in a team meant every piece of code affected someone else.
A component I built today might be updated by another developer tomorrow.
A design change from the client could require multiple pages to be updated.
A poorly named component could confuse the next person working on the project.
I also became comfortable working with Git in a real team environment.
Instead of writing code directly into the main branch, every feature was developed in its own branch and submitted through a pull request for review.
At first, seeing someone review my code felt intimidating.
Over time, I realized something important.
Code reviews aren’t there to criticize developers.
They’re there to improve the product and help everyone grow.
Looking back, those reviews made me a better developer than working alone ever could.
Lesson 4 — Small Details Matter More Than You Think
One thing I quickly learned was that writing functional code isn’t enough.
It also has to look right.
Many of the pages I worked on supported both light and dark themes.
That meant I couldn’t simply focus on making a page “work.”
Every spacing value.
Every font size.
Every color.
Every responsive breakpoint.
Everything had to match the design as closely as possible. Some days, I spent more time polishing small UI details than writing entirely new features.
At first, that felt unnecessary.
Now I understand why.
Users rarely notice perfect design.
But they almost always notice inconsistent design.
That experience taught me that frontend development is just as much about attention to detail as it is about writing code.
Lesson 5 —I Would Approach the Same Project Differently Today
If I had the opportunity to start the same project again today, I wouldn’t begin by writing code.
I’d begin by understanding the project.
I’d spend more time learning the folder structure before building new features.
I’d look for more opportunities to create reusable components instead of solving every page individually.
I’d ask more questions during discussions with experienced developers.
And I’d invest even more time improving my communication with the team.
One thing I’ve realized is that becoming a better developer isn’t just about learning another framework.
It’s about learning better habits.
Those habits stay with you long after the project ends.
Final Thoughts
Looking back, I don’t remember every component I built.
I don’t remember every pull request I created.
I don’t even remember every page I worked on.
What I do remember are the lessons.
Lessons about planning before coding.
Lessons about collaboration.
Lessons about writing reusable software.
Lessons about communication.
Lessons about engineering, not just programming.
Personal projects gave me confidence.
Production projects gave me perspective.
And if you’re preparing for your first professional frontend role, my biggest advice is simple:
Don’t focus only on becoming a better React developer.
Focus on becoming a better engineer.
The frameworks you use will change throughout your career.
The habits you build won’t.
Thanks for reading!
If you’re a frontend developer, I’d love to hear about the biggest lesson you learned from your first professional project. Feel free to share your experience in the comments.
Top comments (1)
Thanks for reading!
This article was inspired by my first large-scale production project.
I'd love to know:
What was the biggest lesson you learned from your first professional software project?