— Don't reinvent the building blocks of UI. It's mostly a designer problem than a dev problem but I often see folks reinventing navigation, buttons, or forms when the standard pattern would work fine. There is a high UX cost to breaking existing patterns.
— Think in flows, not screens. Gather the context for the starting point, the objective of your feature and create the path between them. I like using the job to be done framework for this
— Speaking of frameworks and tools, simple is almost always the best. Don't buy into a complex process designers came up to legitimate their job. Find out what to build and how to build it. Use reference, user interviews, data analysis, existing patterns and you'll be more than fine
Large components:
— Look into design systems, it's a whole topic. My advice for 90% of software companies is to have a small but robust design system with the basics well documented (typography, spacing, colors, basics UI components). Then jam with it depending on your needs. Extensive design systems require a dedicated designer and dev to maintain. More often than not, they end up as pure chaos without them.
Cool, i will check out the notion list. Plus, I have one more question: how can I structure the code properly? For example, if I have custom UI components, state management, page layout, types, etc., how do I organize this in a proper structure?
for example, checkout folder structure of this project: https://github.com/firecamp-dev/firecamp/tree/main/packages
Yeah, got it. Can you recommend some good real projects or web apps to check out for design inspiration? I want to see how design principles are executed in real applications. If they are open source, that's even better—I’d like to check out the code as well
— Don't reinvent the building blocks of UI. It's mostly a designer problem than a dev problem but I often see folks reinventing navigation, buttons, or forms when the standard pattern would work fine. There is a high UX cost to breaking existing patterns.
— Think in flows, not screens. Gather the context for the starting point, the objective of your feature and create the path between them. I like using the job to be done framework for this
— Speaking of frameworks and tools, simple is almost always the best. Don't buy into a complex process designers came up to legitimate their job. Find out what to build and how to build it. Use reference, user interviews, data analysis, existing patterns and you'll be more than fine
Large components:
— Look into design systems, it's a whole topic. My advice for 90% of software companies is to have a small but robust design system with the basics well documented (typography, spacing, colors, basics UI components). Then jam with it depending on your needs. Extensive design systems require a dedicated designer and dev to maintain. More often than not, they end up as pure chaos without them.
Resources:
I have a ton, I put them all in a Notion list, feel free to check https://impasto.notion.site/Adrien-s-list