Esc
← All Projects

Home Time

on hold

A cross-platform browser extension that overlays Hemnet listings with public transport access, commute times to the destinations that matter to us, and how the monthly costs would differ.

  • TypeScript
  • React
  • WXT
  • Browser extension

I made this because I’m trying to find my dream home (I don’t really know what I want but I guess building this is part of the process).

Features#

Hemnet overlay#

My endless hours in Hemnet were a little frustrating as I had to put every listing into Google Maps to decide if it was a good fit. My partner and I work in opposite directions. He drives, and I take the train (and will never trade reading through my commute for sitting in traffic).

So I added an overlay directly on Hemnet listings, so before I even open one I can see what the public transport access is like and how long it will take me to get to my most important destinations. Each destination can have its own mode of transportation, and there’s an estimate of how my monthly costs would change if I were to buy that property.

Home Time overlay in Hemnet

Saved listings, no account needed#

I can save listings and enrich them with the metadata I need (want?), and most of it never leaves my browser. The only network calls fetch travel times and public transport information, using my own API keys.

I have too many accounts for far too many things, and most of them I didn’t want to create in the first place but they kinda made me. So, no Hemnet, not today! I do not want to create another account. And with this, I don’t need to.

Saved listings, dark mode

I am also serving light mode to my imaginary users:

Saved listings, light mode

Centralised viewing times#

When I save a listing, viewing times for the property are automatically added to a viewings tab. There we can see all the viewing times for all saved properties in chronological order. There is also a handy link to take you to directions to the property, and a button to download an .ics file so viewing times can be saved to my calendar.

Viewing times

Buy vs. rent calculator#

I added a calculator to compare how buying and renting impact your savings over the life of a mortgage. It takes into account minimum amortization by loan-to-value (skipped the income-based 1% add-on though), ränteavdrag with the 100.000 kr per-person cap and ISK schablonskatt approximated as a drag on investment returns.

This was something I had not imagined would be there at first. It started with me trying to understand how having a mortgage would impact my savings potential and how long it would actually take for the monthly cost of buying to be lower than renting. It ended up with me extremely confused about all sorts of financial rules (investment account taxation, Swedish amortization rules, exit costs and real estate capital gains 🥵), and with all sorts of fun sliders to play with so I can see how rich I’ll be if I make it to my 80s.

The calculator is a projection built on assumptions, not a prediction and definitely not financial advice. I kept the investing side very simple, whatever is left after housing and living expenses are paid go into an ISK with index funds. The timeline only goes up to the last mortgage payment, because things change dramatically after that.

Buy vs. rent calculator

Built with#

LayerTech
FrontendWXT, React, TypeScript, Tailwind
PlotsRecharts
GeoMapbox for geocoding, driving, cycling and walking
TransitResRobot v2.1 and Trafiklab’s national stop list

What’s next#

Parked until I’m actually house-hunting again. When I am:

  • Fun data sciency things: there are a lot of cool things that could be done here. Some ideas:
    • Pareto frontier for understanding the trade off of monthly cost differences versus the time spent commuting to find the best deal
    • Train a model on historical sold prices to predict the final price of saved listings
    • Monte Carlo wealth forecasting including some real data from stock market and property price fluctuations
  • Life after mortgage: the projection stops at the final payment, so right now I can’t see my costs collapse. This would be a fun thing to add, along with visualizing all my savings starting to get used up as well.
  • Implement JSON import: I can already export my saved listings as CSV or JSON. The JSON even carries a version field so a future importer knows what it’s reading.
  • Beyond Sweden: I made adapters for listing sites so others could be easily added, but stopped at Hemnet. I had similar ambitions for the financial rules and transit APIs, so listing sites from other countries could eventually be supported but have not implemented it yet.