Crowkis vs building it yourself: a love letter to the repo you'll abandon
Every team builds the in-house semantic cache once. The prototype takes a week. The production version takes the year you didn't budget. We know — we budgeted it.
The weekend version is genuinely seductive: an embeddings call, a vector store, a similarity threshold, and a demo that makes everyone clap. We're not going to pretend otherwise — that demo is why Crowkis exists. The distance between that demo and production is the entire product, and it's invisible until users arrive.
Then the real backlog writes itself. Why did it serve a 'pause' answer for a 'cancel' query? (You need intent classes and structural matching.) Why is a hallucination being served to everyone? (You need write-time trust scoring and a ledger.) Why did the cache survive the restart but not the model upgrade? (You need persistence and migration leasing.) Why is tenant B seeing tenant A's answer? (You need isolation as a scored, hard boundary.) Each 'why' is a quarter of engineering.
Reuse only when meaning, structure, confidence, and trust all agree.
Crowkis is that backlog, finished: ~33,000 lines of Rust, 347 integration tests, a custom LSM engine, five-gate reads, five-stage writes, four protocol surfaces, a dashboard with receipts. It deploys in five minutes and is free at Community scale — strictly less effort than the prototype, including the clapping.
The bottom line
Build things that differentiate your product. A safe semantic cache differentiates ours. Pull the image, keep your year.