Projects

Posted on Aug 23, 2026

Things I build outside of work, with links under each one.

km. km (knowledgemaxxing)

MIT licensed · github.com/joeamroo/knowledgemaxxing · site and demo video

I kept requesting my data exports and never opening them. Twitter archive, Google MyActivity, ChatGPT logs, Reddit’s GDPR export, all downloaded and forgotten. km opens them.

  • Dedupes roughly 500k items into a single SQLite file and keeps provenance for every save, like, search, bookmark, and page visit, including iPhone Safari history pulled in through iCloud on macOS.
  • Search runs three legs fused with reciprocal rank fusion: BM25 over titles, BM25 over article bodies, and vector search over passages, using local bge embeddings stored through sqlite-vec. “That tweet about machine guns and birds in australia” finds the emu war tweet from 2022 with none of those words in it.
  • The chat is an archivist agent rather than a RAG prompt. It runs its own searches, pulls full items, and will star, annotate, or save a list as a collection when you ask. km mcp exposes the same read-only tools over MCP, so Claude Code can search the archive from any session.
  • Local first, because fifteen years of my reading history is in this thing and I did not want to hand that to someone else’s server just to make it searchable. The web UI binds to 127.0.0.1 behind a DNS-rebinding guard, nothing is ingested until you review a manifest, and the AI layer is opt-in with your own key and only ever sends the text of an item.
  • Python, FastAPI, a prebuilt React UI, and one SQLite file for everything including the vectors. The scrapers are Playwright against a dedicated browser profile, so your daily browser is never touched.

arvnote. ARVnote

arvnote.com · run one free, no signup

Mostly to teach myself the business side of things. You give it a US address and it returns as-is and after-repair-value comps for real estate investors, built the way an appraiser would, in a couple of minutes.

  • It searches dozens of recent sales, picks the six most comparable on proximity, size, recency, and condition, and adjusts each one for square footage, lot, beds, baths, garage, and pool. You see every adjustment, not one number to trust.
  • You get an ARV, a confidence score, and the reasoning behind both, with the deal math on the same page: wholesale MAO, flip projections, BRRRR, and an AI repair estimator.
  • The arithmetic was the easy part. Almost all of the difficulty is comp selection, since the data sources disagree constantly and much of the work is deciding which one to believe for a given property.
  • It works in Texas and the other non-disclosure states, where the county never publishes a sale price and most tools show “price unknown” on half your comps. It runs on agent-reported sold data, so the closed prices are real in all 50 states. That part took the longest.
  • Rails 8, Postgres, Stripe for billing, and the OpenAI API for the written analysis. Every report is a structured PDF generated server side with Prawn from the comp data, never a screenshot.

Larpin LarpIn

larpin.io · source

Just for fun. A parody LinkedIn where everyone admits they are indeed larping.

  • No signup. You get a generated persona when you arrive, and there is one global feed.
  • Every post is scored on buzzword density, from “NPC (for now)” up to “Final Boss of LinkedIn”.
  • A button fills in the “You need to be X-maxxing” format for you. That is the part I actually keep using.
  • Rails 8.1, SQLite, Hotwire, one box, no JS build step.