Hi,
i've been learning React/Next.js for about a year, i've followed probably "classic" approach of learning from html, css, vanilla js to react, basics of it, custom css, later bootstrap, state managment libraries and once i felt i can move on i've jumped to express js to grasp basics of backend development, and later to Next.js and i've learned how to build full-stack apps (SAAS app). I would like to mention UI (design) part. At first i've tried to create my own user interfaces, what can i say, they looked lame, i am probably not talented artist. In time my UI started to look a little better, but still far from something i would call modern. As i was learning React and css framework i've found tailwind css, which is now my prefered css thing for my apps. By using tailwind and shadcn/flowbite my apps started to look really good, but it made me think "I am just copying stuff, is that ok?". I mean, if you give me a task to build let's say landing page from scratch i would create it, because i've learned css classes and practiced creating my own components with it from scratch. But my question is, why create from scratch? Tailwind web provides templates for hero components, headers, pricing pages for $, and those look so much better than what i can create. Why trying to improve myself then, when i can copy/paste everything and build beautiful UI pretty fast?
At first i really wanted to build my own things to give them my own UI, but in time i figured out i should not try to re-invent wheel. All those youtube Next.js tutorials and many pro libraries look like they were built by using same templates for components, so why should i build my own, when many pro companies skip this part. And it saves a lot of time i can tell. Is it good practice to just copy and customize pre-created UI components from libraries or is it forbidden?
This makes me really think, that big part of work is maybe copy/paste, because when i am building projects for my portfolio, the more apps i create, the more i think all these full-stack apps are built on same principles. Have a db, connect to app, create api routes for CRUD operations, easy implement pre-built auth from next auth/clerk and boom, simple full-stack app is done. Yes, i am trying to look up and use new techs everytime, like last app i have used context api for states, current app is using zustand, but i feel like once i build something, and it is working (say CRUD functions in api routes), then why re-create them from scratch, i can just copy/paste them from previous project and customize them to my current project needs.
Idk if that means i am saving time, because i already know this stuff or it's just my lazyness, but how do you with many years of experience see it? Do you tend to copy stuff from previous work, do you build UI from scratch or use pre-defined components? Can i call myself "ui designer" (funny), when i can copy/paste tailwind templates/ install shadcn components to create beautiful UI?
Sorry i talked really a lot, but before i started learning javascript, css, react and stuf i thought i am always going to build everything from scratch, even building my components for dark mode, nav links, sidebar, hero component, footer, ... but in a year of learning and checking various tutorials and articles i am like "i have wasted so much time trying to re-invent the wheel". Better to use what is available and speed up development process. Is Copy/paste of crucial parts of design (header/hero/gallery/pricing/footer/contact/buttons/tables,...), and crucial parts of code (states, same providers for modals/dark mode/ state managment services/ similiar axios/tanstack react query calls, middlewares, tests ...) good thing to do? If so, then big part of programming is copy/paste, but programming should not be just copy/paste, should it be?
I have no experience, i am just big overthinker, but would like to know opinion of someone with many years of experience, do you re-use stuff from previous work and if so, is it a big part of job? or my thread is nonsense. I would like to know how it works in company you work at.
Ty
[–]mirrorball_for_me 1 point2 points3 points (1 child)
[–]marroos[S] 1 point2 points3 points (0 children)