I built Mindweave to solve a problem I kept running into — I'd save bookmarks, notes, and links across different apps, then never find them again when I actually needed them.
Mindweave lets you capture notes, links, and files in one place. The interesting part is what happens after:
- Semantic search — find content by meaning, not just keywords. "That article about improving deep work" finds it even if those words don't appear in the content. Powered by pgvector cosine similarity on Gemini embeddings.
- AI auto-tagging — Gemini generates tags on save, so you don't have to organize anything manually.
- Knowledge Q&A — ask questions about your saved content using RAG. Retrieves relevant pieces, feeds them as context to Gemini, returns a grounded answer.
Stack: Next.js 15 (App Router, Server Actions), PostgreSQL 16 + pgvector, Google Gemini (text-embedding-004, 768d), Drizzle ORM, Auth.js v5, Tailwind/shadcn. Deployed on Cloud Run. A few things I found interesting while building this:
- pgvector inside Postgres is surprisingly capable for this scale. No need for a separate vector DB.
- The biggest UX challenge was handling edge cases in similarity scores — zero-magnitude embeddings produce NaN from cosine distance, and PostgreSQL treats float8 NaN as greater than all numbers, so they pass through WHERE
filters silently.
- AI tagging removes more friction than I expected. The difference between "I'll tag this later" and "it's already tagged" is the difference between a system you use and one you abandon.Live at www.mindweave.space. Source at https://github.com/abhid1234/MindWeave
LinkedIn: https://www.linkedin.com/posts/activity-7428965058388590592-...
Would love feedback, especially on the semantic search UX and the RAG implementation.