— 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
Seconding this. It's one of the best resources I've seen and easily worth the money.
frontendmasters.com and LinkedIn Leaning also have good video courses.
Also see MUI.com as a nice way to structure a component framework.
Beyond that, work with a good designer, make Figmas before you code, test out the flows, iterate it, and then throw everything away and do it again 2 years later when fashions change (sigh).
A lot of what we see as good/modern design is just fashion cycles of designers stealing from each other. For a while everything looked like Yahoo, then everything looked like Google, then everything looked like Bootstrap, and now everything looks like Tailwind/Vercel. It's the designer equivalent of Stackoverflow.
> ... how to solve complex interface tasks by redesigning a real-life app used by more than 2 million users.
> In this course, you will work on a real-world application, not a fake one. It already exists and is called Fedica. Its interface is outdated and has many issues.
Design principles:
— 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
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
This is where my expertise ends as a designer, sorry!
What I meant about small design system is also true on the code side, since a proper design system is this design / code mirroring.
This is where js frameworks help a lot since you can create components with properties and nest them, but that's about all I know about FE-eng
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
I've found https://www.refactoringui.com/ to be quite helpful, you can get the first two chapters for free.
Seconding this. It's one of the best resources I've seen and easily worth the money.
frontendmasters.com and LinkedIn Leaning also have good video courses.
Also see MUI.com as a nice way to structure a component framework.
Beyond that, work with a good designer, make Figmas before you code, test out the flows, iterate it, and then throw everything away and do it again 2 years later when fashions change (sigh).
A lot of what we see as good/modern design is just fashion cycles of designers stealing from each other. For a while everything looked like Yahoo, then everything looked like Google, then everything looked like Bootstrap, and now everything looks like Tailwind/Vercel. It's the designer equivalent of Stackoverflow.
Cool, thanks for suggesting this.
https://doing-design-right.com/
> ... how to solve complex interface tasks by redesigning a real-life app used by more than 2 million users.
> In this course, you will work on a real-world application, not a fake one. It already exists and is called Fedica. Its interface is outdated and has many issues.
Design systems. Study many of them. There are great ones coming focused on web components (the most interesting the ones based on Lit).
Here is an extensive list: https://github.com/alexpate/awesome-design-systems
Build things and get feedback as you go.