Inspiration

LLM hallucinations are a problem. I fight them everyday as a developer, and so do many others across many disciplines. For a while we all played the prompt engineering game or just crossed our fingers that the next best model would do better. Then with the increased context window of modern models came a new unlock: grounding with context stuffing.

The more targeted context you can provide a model that better it's performance will be. Previously there were a few ways to do this. RAG, which has quality and scaling issues and can be difficult to implement and maintain. Manual context searching, creation and maintenance combined with our old friends ctrl-c and ctrl-v is wildly inefficient. And now, many recent agentic systems can automatically ground themselves with context via web searches, which is general opaque, leading to serious trust, reliability, and consistency issues. But now we have unlock number two, MCP.

With MCP tooling, all of a sudden it became possible for the existence of a centralized repository of wide-ranging, curated context automatically available to any llm, agent, or system that connects to it.

I realized this, so I built it.. and it works!

What it does

UseContext is a web application with an external API and MCP-server. It hosts contexts across any and all topics. For now, it is heavily weighted towards programming related contexts, but in theory could be a source of "truth" for any and all topics. Leveraging the power of the crowd to curate and vet contexts and collections of context through voting and usage, the cream of the crop will rise to the top. UseContext allows users to create and maintain contexts and collections of contexts. Contexts and collections can be public OR private -- and can be fully managed through the web site, API or MCP calls.

How I built it

Started with the basic idea in Bolt.new and let it cook. The skeleton of the app quickly came into place... and it looked really good! Next we (bolt and I), got connected to Supabase for the backend, and again, surprisingly quickly got to a POC for much of the functionality. We got ourselves a nice domain from Entri and got hosting and deployment sorted out via the Netlify integration. Once we were happy with the web we got an external API in place with scoped API keys and all that kind of stuff. Then using the API as a reference we built the MCP-server, also on Supabase. At this stage things were getting pretty complex so a lot of the heavy lifting moved to Cursor and Claude Code while bolt.new remained our web aesthetics director. The last week or so has mostly been feature improvements, testing, polish and security/performance audits.

Challenges I ran into

  1. AI hallucinations - became less of a problem once we got the MCP-server and some contexts for various technologies in place.
  2. As complexity grew so did the spaghetti nature of the code - alleviated through old fashion engineering and hefty portion of agent orchestration.
  3. Implementing an MCP-server on Supabase Edge Functions.
  4. Day-job also had to happen.

Accomplishments that I'm proud of

  1. Just how much I was able to get built in 1 month. This thing is pretty damn near ready to really start marketting.
  2. Building a tool that helped build itself
  3. Finishing a product

What I learned

Plan. Implement. Review. Tweak*. Repeat.

  • Tweak == clean up the AI spaghetti

What's next for UseContext

  1. Bootstrapping the context library
  2. Releasing to the wild
  3. Finish the huge feature backlog
  4. Glory and great success

Built With

  • bolt.new
  • claude
  • cursor
  • entri
  • netlify
  • openai
  • openrouter
  • purelymail
  • react
  • supabase
  • tailwind
  • typesense
  • zod
Share this project:

Updates