When developing a website it's always important to think from the users perspective, making sure that everything makes sense. This is where UI (or user interface) and UX (user experience) come in. While they both sound like the same thing with different words, I want to emphasize their differences and how crucial it is how they affect one another. In short you can think of UI as the artistic, or graphic design side, while UX is more focused on the technical, analytical side of the front-end.
User interface is difficult to categorize as it includes a large variety of processes, but I'll mostly be talking about the design aspect. The overall goal of creating a good UI is for it to present as an effective and enjoyable experience for a user. This means things like making it easily navigable, you don't want your user to have to struggle just to find what they are looking for. You should always have some form of navigation bar that links them to main parts of your app, and always try to have a way back to the main page, or home screen. User feed-back is also extremely important, you don't want users to submit anything and feel like they haven't done anything. Things like having a small pop-up say "Thanks for blah blah blah" or simply having their cursor turn into a pointer to signify an item is actually clickable really goes a long way. Try not to have too many colors when creating a theme for your app, one or two with a mixed variety of blacks and whites is usually enough to make it look sleek and not over-baring. Choose wisely where you place integral buttons/information, you want users to become familiar with where everything is quickly so they don't have to think when doing simple tasks. There are many more "rules" you should follow when creating a UI, but what's most important is its interaction with the UX.
User experience design is meant to enhance a user's satisfaction by making their use of your application as seamless and easy to use as possible. The main goal is to avoid complicated interactions between your app and the use, while still maintaining complex behaviors. This train of thought is actually not exclusive to software engineers, actually, and can be applied to any other services that is provided to a customer. Jobs like, the service industry, you want the customer to be as comfortable as possible, or the development of a car, you want the ease of use to be emphasized in order to open up to a larger audience. Things to think about when developing a UX include analyzing competitors. Is your app similar to any other products already out there? Then you should take into account everything it does well and everything that can be done better. It's important to realize how convenient and easy it is for users to utilize your app compared to others out there. Even if your app is only just a tiny bit slower, customers will gravitate to the faster without hesitation. Designing a good UX is complex because your essentially becoming a marketer, designer, and a manager all at once.
In conclusion, you should always strive to be making apps from a users perspective, after-all, they're the ones that will be using it. Everything should flow easily, while still leaving room to be complex and something someone using your app can explore. It's a hard concept to balance, but it's important in becoming a master of web design.