SkaldMaps↑
This is going to be a shorter one: I built a thing.
SkaldMaps is now live: skaldmaps.com.
Go check it out!
(Credit: SkaldMaps)
SkaldMaps is a research, analysis, and rating platform for real estate investments, including primary home buyers (or renters). It lets you analyze, filter, and rank all US ZIP codes (30k+ of them, across all 50 states!) by a model you define yourself. I have about 500 custom attributes in ~100 total categories you can explore, rate, and filter, and you can even add your own custom locations (say, a work address to make sure you’re in a reasonable commuting radius… or maybe you want to be far away from a datacenter, who knows).
The target audience is anyone from a home buyer who has to move for work and cares about commuting distance and school quality to an institutional investor who wants to build an apartment complex.
This works on a different level than boundary-level tools or MLS (both often being unaffordable or inaccessible for regular people) - by focusing on ZIP codes, it allows people to deeply analyze and shortlist interesting areas.
For instance, the see it in action page shows you an example how you might go about finding a recreational property in North Carolina.
Finding a cabin the woods, reasonably close to Charlotte.
(Credit: SkaldMaps)
You can try it, for free, right now at skaldmaps.com.
Background↑
Confession: I built the prototype for this years ago and I blogged about it.
And we did buy a house based on this data. So at the very least, I do have 2 users. One is me, one is my SO, but still.
I also happen to be a passionate hunter & tree hugger and do, in fact, own another small recreational property in North GA that I found via the same SkaldMap prototype (which inspired the aforementioned “see it in action” page, albeit sans cabin). I am also, generally speaking, a GIS enjoyer, despite my general ineptitude with trigonometry.
Without SkaldMaps, getting access to real estate tools that do something similar is very expensive. Even getting seemingly trivial things like “School Quality” at a larger scale are aggressively price gated. While realtors are often useful, they usually are very specialized on a very specific area.
SkaldMaps on the other hand is, I think, very reasonably priced and gives you access to an entire state and the data you care about.
Engineering↑
I promise I’ll write a big engineering post, but I also haven’t slept much in several months, so please forgive me the short form content today.
Tech Stack↑
SkaldMaps is a very grugbrain stack - simple(ish): React with TypeScript, MapLibre (with a tile cache via tippecanoe) and a go backend with postgres.
The whole thing is built on top of an enormous dbt model with about 400 assets and an equally enormous stack of yaml metadata. I’m able to code-gen the entire column docs from dbt metadata, for instance.
It’s all backed by DuckDB with the SPATIAL extension, even though the devil is most definitively in the details there.
The whole model runs in my homelab - on a 32 core, 128GB Debian VM on NVMe drives. DuckDB is easy to scale and avoids distributed system complexities (if you have hardware, that is).
Friday nights with Proxmox.
The website and app itself are hosted remotely on a VPS and all have functional CI/CD (look at me! I even have unit tests!). Deployment is docker swarm for zero-downtime deploys, which (despite the K8s-shaped memes) is actually very pleasant to use. And komodo supports it.
The zero-downtime deploy thing is important, since the entire cache (tiles, data, metadata) is sycned from my server to s3 to the edge. The final (largely denormalized) duckdb file is build on said edge and creates some indexes - and on a cold cache that can take a hot minute. And yes, I benchmarked whether the index beats predicate pushdown or not.
I’ve used a lot of homelab learnings in general - my dev stack is 100% running in my basement, but SkaldMaps prod is all Cloud hosted, using largely same vendors (there is a GTM lesson in there somewhere).
For instance, I run Grafana at home for my entire homelab. SkaldMaps uses Grafana’s Cloud offering and Grafana Alloy to pipe data to it.
The AI elephant in the room↑
I haven’t blogged about AI/LLMs on this blog for various reasons. I won’t start now. I will, however, say: Yes, a good portion of the code was written with support by Codex and Claude.
That was one of the driving factors for go vs Scala or Rust and why I was finally able to do this (with the prototype blog post released 4 1/2 years ago). But, no, it is not “Vibe Coded Slop”™ - if you manage to build a giant data model + fullstack GIS app via “vibes”, please let me know.
I wrote this blog by hand and have zero desire to feed the Torment Nexus™ myself. But yes, some of the if err != nil is LLM driven.
Try it↑
Please give it a shot! The free tier is, surprise, free! The paid tiers are (I think) very competitively priced, compared to other real estate and GIS tools.
And if you have feedback of any kind - please reach out! ❤️
A final note on ethics↑
I wrote our ethics policy for a reason - SkaldMaps offers you a lot of data to potentially build models that could filter against protected characteristics and build unethical models. We have virtually endless permutations you could model with the data.
However, similar to the Census, I do not want to the arbiter of truth. I will, however, hold you to certain standards:
[SkaldMaps] must not be used to discriminate, steer, exclude, or limit housing opportunities based on protected characteristics or proxy variables.
So please be a decent human being.