Skip to content

Hammock thoughts

The Baseline - or how did I stumble into this journey?

Exposition, Architecting UI2 min read

About two years ago I joined a startup called Datree.io. We were two people working on the frontend of the app. I joined after the company (and the app) went through several quick pivots and before we actually found our product-market-fit. This led to more rapid changes in the UI.

We had parts with good infrastructure, but as with any app, a lot of areas without. The rapid changes caused a bit of an ad-hoc feeling of let's get this done, and then think if we might be able to do better. Obviously the second part never came.

The good part about this was that it gave us the permission to experiment, and experiment we did. We added different technologies, methodologies, flows, etc. We played around with practically anything and everything. This was fun and very educating but as you can imagine, the codebase was the one to suffer - it was a mess.

After about a year my fellow frontend dev decided to move on and I was left as the sole developer. As I had a good understanding of the app by now I was happy and was actually quite efficient. I remembered the different file names and jumped directly into the place I should edit. I never realized that there was a problem.

This was all really fun, until we recruited a new developer which was supposed to help me with the front end. Unfortunately he couldn't jump in as by this point the app only made sense to me...

The issue finally hit me due to a very simple request he made - "Would you mind to walk me through the file structure?" ...

Well, sure, but... Now that I look at it I'm not sure I can...

To be honest, it wasn't that bad. The real issue was that there was a basic structure but no vision. This led to some areas with more sense, but many new files that made less. Also it was very easy to see all the experiments we have done. Folders such as 'uiElements' - our shared ui components, right next to a folder called 'sharedStyles' - our "new" shared components written using styled-components.

That's when I started this journey. I wanted to give him a good answer but also something with vision that will (hopefully) scale with us. The question was simple and could be answered directly. However, in my opinion, this pointed to a larger and far more interesting question. The basic question asked here is Where should I place my code / feature? But the underlying question was How do you plan to structure the frontend app? which I internally followed with How do you plan for future change? and How will the next developer (which joined us a month or so afterwards) enter this codebase?

So I'm not sure I'll have a good answer for you or myself, but we can definitely try - let's begin!

© 2022 by Hammock thoughts. All rights reserved.
Theme by LekoArts