Hacker News new | ask | show | jobs
by _kyran 1784 days ago
Can you shed any light on what the codebase is like?

Using it feels like there are two seperate templating libraries and apps that are serving different routes. Is there any truth to this?

1 comments

Ahh dang, I wrote a whole post and then I accidentally closed the tab :)

As background, Xero is in the same boat as a whole host of different businesses. It's nothing unique to them at all. They started with a single C# monolith and that scaled until it started running into trouble. At this point, you start splitting out your monolith into different services and Xero is quite a ways down that track.

At present, there's still a decent chunk of code that still lives in the original monolithic codebase. The initial home screen (dashboards etc) live in there among other things as an example.

When you navigate between services however (ie; invoicing or payroll), those are actually entirely different sites run by other teams that you're switching between, even though the UI is the same (the navigation bar is itself a separate service too for example which is why sometimes you get incidents where the nav bar disappears, if that service runs into trouble)

There is an in-house CSS library that is standard to keep everything consistent but there may still be older versions of it between services or even different JS libraries depending on how old or new a given service is.

So I guess to answer your question, the answer is yes, there are multiple templating libraries and things like that under the hood.

Beyond that, I probably shouldn't go into too much detail! Most of the above I think you can infer just by navigating around the application and seeing how various cookies, stylesheets and what not change so there's nothing particular unique.