12
15 Comments

How would you approach the front end design for SaaS applications?

Hi All

I'm primarily a backend developer (fairly new to the industry); I understand and have used some basic CSS and basic bootstrap, but apart from that I am very much a blank slate when it comes to understanding how to design the front end of a website for landing pages and SaaS applications.

I'm wondering if anyone has any tips around this? I know there are other, perhaps more sophisticated, front end frameworks other than bootstrap, including the likes of TailwindCSS and Bulma. Are these good places to start? Or perhaps bootstrap can get you quite far and these other frameworks aren't necessary?

I have also seen that some websites, like themeforest, seem to be selling themes and UI kits, are these a good idea?

I'm also wondering if there is a certain process people follow from idea through to implementation? I.e. are people going to any particular websites for inspiration, using any tools for mockup etc.?

Basically, what I'm looking for is a process to follow to get from having very little front end knowledge to being able to build nice professional looking user interfaces.

Thanks

posted to Icon for group Developers
Developers
on March 15, 2020
  1. 8

    I did a bunch of false starts on my current project. Most of it was due to design issues (both in terms of product design and visual design). If you want to build things from scratch because you have a particular vision or just want to learn some new skills, here are some things that helped me:

    • I really like https://refactoringui.com/ as a book. I force it upon any junior designers I work with. It's a little pricey, but really good.
    • Using a tool like Figma to plan as much possible before writing any code. This includes working through edge cases (e.g. what happens when this form errors). There is always loss of detail when it comes moving design from the imagination to the real world. Catching that early is crucial. One of my false starts were due to me losing momentum when I hit a major oversight in the project.
    • Try to use components. Break down every visual aspect of the app into a component you can implement separately. This allows you to make incremental progress and keep momentum going.
    • As someone who has so-so CSS abilities, I found using something like https://styled-components.com/ was life-changing. It allowed me to isolate my shittier css to one component at a time and prevent sabotaging myself later.
    • Steal all the time. Like how a modal looks? Open the inspector and look at its CSS properties. Your early CSS will be a Frankenstein mess of stolen limbs, but that's okay.
    1. 3

      I can also vouch for the greatness that is https://refactoringui.com/. There's a lot of good tips and actual component examples that helped me a lot in designing my own product. Totally worth the price.

    2. 1

      As a UI/UX Engineer, this is a really great summary/introduction, in my opinion. I'd also add that there's a lot to be said for Just Getting Started™ with your designs. I hate everything I do, and then I think I'm happy with it so I'll send it for early feedback from colleagues or friends, and then suddenly I'll hate it again.

      Being able to iterate quickly (I use Figma) with designs is super helpful, but also it is just styling - good semantic HTML and well-contained / modularised components (in whatever library/framework you're using) will let you make styling changes relatievly easy. Don't feel like you can't make an ugly-ass Spartan UI to help you test functionality.

  2. 3

    Are you more interested in learning front-end development or shipping a product?

    TailwindCSS is great, but pretty low level. Not much different from building your UI up from raw CSS. Something like Bulma or Bootstrap is a bit higher level in that you get pre-designed buttons, navbars, and other common elements. I personally like Bulma a lot.

    If you're hoping to ship a fairly complex product, like a SaaS application, in any reasonable amount of time then I'd suggest starting with a pre-built template and then customizing it to your needs. That way you have some basic structure to start with and can learn as much or as little as you want, depending on how much you want to customize.

    For templates my suggestions would be:

    1. 2

      I don't understand why there is soo much hype around tailwind..

      Anybody from ReactJS domain who want to quickly develop web UI(also electron UI) can drastically reduce their dev time by using divjoy.com Its not just good quality code it is also tested by someone and some of the most frequently used features like login/authentication, backend integration with ex:firebase and simple things like general faq/about pages are all readily available.

      Disclaimer: Divjoy paid user.

      1. 1

        Thanks for the kind words about Divjoy. I totally agree, but might be a bit biased :)

    2. 2

      +1 for Bootstrap.

      Having used Bootstrap, Bulma and Tailwind, I think Bootstrap is best for beginners because it is an excellent mix of pre-built components and most of utility classes you would need. It's very customizable and flexible, and will carry you very very far.

      I tried Bulma for a project. It was ok. My biggest frustration was the lack of utility classes, particularly around margins/padding and using flexbox. So I ended up writing my own utility classes, which resulted in basically re-inventing the wheel that Bootstrap has already created. Also, as I was trying to customize Bulma components, I sometimes got surprising results that were frustrating to debug. A big selling point of Bulma is the lack of jquery/javascript bloat, but you can choose to not import jquery/js in Bootstrap if you want.

      I eventually decided to migrate from Bulma to Bootstrap. Since Bulma components are similar to Bootstrap, it took me just a couple hours to do the migration and I've been much happier since.

      I tried Tailwind, and there is something appealing about the purity of using only utility classes. But my conclusion is that Tailwind's lack of pre-built components is not great for building things fast, and there is a bit of a learning curve to get really proficient and productive with Tailwind. With Bootstrap components, you can just start building things with copy-paste and defer learning how they work. I think there's a chance that if I really want to move away from Bootstrap's defaults and create a very unique and customized design then I would consider Tailwind. But you can customize Bootstrap's defaults pretty extensively using sass/scss imports, an approach that has worked well for me so far.

      For comparison, take a look at building a navbar in Bootstrap vs. Tailwind
      https://getbootstrap.com/docs/4.3/components/navbar/#supported-content
      https://tailwindcss.com/components/navigation/#responsive-header
      Granted a navbar is one of the more complex components which needs more utility classes in Tailwind, but you can decide which you like better.

      In short:

      • Bulma: good pre-built components, lack of utility classes
      • Bootstrap: good pre-built components, good utility classes
      • Tailwind: lack of pre-built components, extensive utility classes

      Just my 2 cents. Pick what works for you. And good luck!

  3. 2

    Thanks everyone, some great tips here! Quite like the look of some of the templates on those websites @Gabe, I'll definitely dig deeper into them. I'm more interested in shipping a good product than learning everything about front-end development so I think this approach definitely suits

  4. 2

    I would recommend you TailwindCSS and their Tailwind UI (if you feel like using their library of components)

    for the design you can use Sketch or Figma.

    They are very good for people with little front-end experience.

    And of course, you can always dig into the viewsource of your favorite websites or competitor products to get some inspiration and see what challenges they encountered and how they solved them.

  5. 1

    For a first project, yes to themeforest and buying a theme. Makes it so easy to manage your styles and copy things you like.

    Couple tips

    1. File management - so it's easy to replace with updates later
    • I recommend putting the whole theme in a subfolder
    • Also create separate files for a override.css if you want to make any custom overrides
    • If you decide to use other plugins and such, put them in another separate folder to keep the files on their own for easy updates
    1. Think a bit about the components you need today and may need tomorrow before you make your choice. In the beginning they all look awesome, but later you'll realize some of them fall short in areas you didn't think you would need or didn't take a day to design out the main pages.
  6. 1

    Some good sources of Inspiration for SAAS designs:

    After this, pick any frontend frameworks or simple bootstrap to kickstart your frontend design.

    All the best for your project. Hoping to see it soon here :)

  7. 1

    There are plenty of starter templates out there which are fantastic starting points for any SaaS project. Check out www.wrapbootstrap.com amongst others. Just be aware that if you are going to be using any of those templates on a commercial site (not just personal), then there is a higher license fee to pay - however it is still a ton cheaper than hiring a designer or spending time yourself creating from scratch when you are just starting out.

    Check for good documentation too. Some have great documentation plus 'starter' blank slates which you can populate yourself as the basic building blocks.

    We did exactly this in my SaaS 5 years ago, and even though we have planned to do a completely UX overhaul (with a UX designer) in the coming year, the pre purchased template has served us really well for nearly 5 years now, and gets rave reviews from our customers.

  8. 1

    I always start from my own SaaS boilerplate (https://www.saasforge.dev) and then, using bootstrap, react-bootstrap, and boilerplate's frontend components create UI very quickly. But before I always create some kind of wireframes.

  9. 0

    Hi David,
    We are working on Paperbits. This is the open source content builder for designers and developers who familiar with CSS and Html but do not want to code it by hands. All styles can be created and edited with visual editor, starting from typography and colors up to design blocks. You can check www.hostmeapp.com this website was designed and built with Paperbits. It's fully responsive and fast as static content. You can find more information about our project on paperbits.io

  10. 1

    This comment was deleted 5 years ago.

Trending on Indie Hackers
From building client websites to launching my own SaaS — and why I stopped trusting GA4! User Avatar 76 comments I built a tool that turns CSV exports into shareable dashboards User Avatar 70 comments $0 to $10K MRR in 12 Months: 3 Things That Actually Moved the Needle for My Design Agency User Avatar 67 comments The “Open → Do → Close” rule changed how I build tools User Avatar 50 comments I lost €50K to non-paying clients... so I built an AI contract tool. Now at 300 users, 0 MRR. User Avatar 44 comments A tweet about my AI dev tool hit 250K views. I didn't even have a product yet. User Avatar 40 comments