Guidelines for building sustainable, robust & easily maintainable web apps

A few guidelines that I assembled during my career that keep me focused and help me move forward.

  • You must have a quick and comfortable dev env that allows you to stay focused
  • A solid foundation, that you control all of it’s aspects
  • a robust & simple as possible build process both for dev and prod
  • full control over your packages & manually update them when needed
  • utilize as less 3rd party packages as possible, as they might change with every update, and thus you are in less control.
  • don’t necessarily chase the cutting edge – it’s ok to not use the latest alpha release, as it quite often introduces unexpected behaviors.
  • build your own global components like dropdowns, buttons, popups, etc. it is usually a one time effort that pays well in the long run.
  • Strive for organized & standardized code, with self explaining clear structure that will allow easy onboarding for new and returning devs in your team
  • write small & self contained components
  • have a clear folder and file structure
  • use linters for forcing strict coding conventions
  • Customization of components has to be easy, with easy APIs
  • for css use SASS, it allows you to easily structure css, use variables for colors and sizes. mixins & extend for repeated css declarations
  • use importable config files & ENV variables to easily customize your app without digging in the code
  • Always think about performance – it’s too easy to fall into the trap of “I will do it later”. it will be hard to get back to it – plan your performance early
  • use image sprites, and always have the source files in hand. optimize your image assets, save for web & utilize various optimization tools
  • be aware of the browser limitations like maximum number of simultaneous http connections
  • master the browser loading times. what should be loaded in the head, at the bottom of the body, prefetch and lazy loading
  • CSS & Design matters. you should never neglect it. eventually it’s the face of the product, and if it’s broken – the user doesn’t care about the fancy complex stuff you craft in the backbone of your app.
  • Make sure to test it in variety of the browsers you support
  • Make clear style guidelines, and make sure to follow them
  • The designer is not always right. talk about quirks you find. usually after you have a solid css structure, your code dictates the small design cues, like consistent paddings & margins, color palettes and more…
  • Alway keep learning. technologies change every day, be ahead of it. but also know when to make a pause, not every buzzword is the future.

Leave a Reply

Your email address will not be published. Required fields are marked *