AI prompts
base on Build your own second brain with supermemory. It's a ChatGPT for your bookmarks. Import tweets or save websites and content using the chrome extension. ![og image](https://supermemory.ai/og-image.png)
# SuperMemory
Interested in helping build the best second brain for everyone? Join the discord https://discord.gg/2X2XsKz5AU. Contributions welcome.
<div align="center">
<a href="https://github.com/Dhravya/Supermemory/stargazers">
<img src="https://img.shields.io/github/stars/Dhravya/Supermemory?style=flat-square&logo=github" alt="GitHub stars">
</a>
<a href="https://github.com/Dhravya/Supermemory/network/members">
<img src="https://img.shields.io/github/forks/Dhravya/supermemory?style=flat-square&logo=github&color=8ae8ff" alt="GitHub forks">
</a>
<a href="https://github.com/Dhravya/Supermemory/graphs/contributors">
<img src="https://img.shields.io/github/contributors/Dhravya/Supermemory?style=flat-square&logo=github" alt="GitHub contributors">
</a>
<a href="https://chrome.google.com/webstore/detail/supermemory/afpgkkipfdpeaflnpoaffkcankadgjfc">
<img src="https://img.shields.io/chrome-web-store/v/afpgkkipfdpeaflnpoaffkcankadgjfc?style=flat-square&color=yellow" alt="Chrome Web Store">
</a>
</div>
## 👀 What is this?
Build your own second brain with supermemory. It's a ChatGPT for your bookmarks. Import tweets or save websites and content using the [Chrome extension](https://chromewebstore.google.com/detail/supermemory/afpgkkipfdpeaflnpoaffkcankadgjfc?hl=en-GB&authuser=0)
Well, here's the thing - me and @yxshv save a _lot_ of content on the internet.
Twitter bookmarks, websites, snippets, etc.
But we never look back to it - to us, it's like throwing information in the void.
Supermemory fixes this.
## Key Features
- 💡 **Ideation**: Capture and save ideas effortlessly.
- 🔖 **Bookmarks**: Import, organize, and resurface bookmarks when needed.
- 📇 **Contacts**: Store and manage information about people you know.
- 🐦 **Twitter Bookmarks**: Import and utilize your saved tweets.
- 🔍 **Powerful Search**: Quickly find any saved information.
- 💬 **Chat with Collections**: Interact with specific knowledge bases.
- 🖼️ **Knowledge Canvas**: Organize information visually in a 2D canvas.
- ✍️ **Writing Assistant**: Use a markdown editor with AI assistance for content creation.
- 🔒 **Privacy Focused**: Ensures data security and privacy.
- 🏠 **Self Hostable**: Open source and easy to deploy locally.
- 🔗 **Integrations**: Compatible with Telegram, Twitter, and more to come.
## How do I use this?
Just go to [supermemory.ai](https://supermemory.ai) and sign in with your google account.
To use the chrome extension,
> [!WARNING]
> You need to be signed in before installing the supermemory extension, or you may experience problems
1. Download from [Chrome Web Store](https://chromewebstore.google.com/detail/supermemory/afpgkkipfdpeaflnpoaffkcankadgjfc?authuser=0&hl=en-GB)
2. Now you can see on any page on bottom right (just click on it to save)
<img width="1058" alt="image" src="https://github.com/MaheshtheDev/supermemory/assets/38828053/f24b0988-cd2b-4216-a75b-e9ff0dbfaa6a">
### Import Twitter Bookmarks
1. Make sure you signed into supermemory and installed chrome extension
2. Open Twitter/X, you will see the save icon as follows
<img width="480" alt="image" src="https://github.com/MaheshtheDev/supermemory/assets/38828053/2efb06a5-912a-48e7-ad1c-d527e7ffbc94">
3. Click on save button and give it 10 - 20 secs, where supermemory extension will sync all your twitter bookmarks to supermemory.ai
4. Voila! Now your second brain has all your twitter bookmarks.
## 👨💻 The Stack
<div align="center">
<img src="https://tech-orbit.wontory.dev/api?title=SuperMemory&tech=React,Next.js,Tailwind%20CSS,shadcn/ui,Drizzle,Cloudflare,Cloudflare%20Pages,Cloudflare%20Workers&size=900&duration=20" alt="SuperMemory" width="400">
</div>
#### Architecture:
<img width="715" alt="image" src="https://github.com/user-attachments/assets/f2e38b28-8cfe-4331-9b84-a91902682ddd">
Supermemory has three main modules, managed by [turborepo](https://turbo.build):
#### `apps/web`: The main web UI.
The database, auth etc logic is here
![image](https://github.com/MaheshtheDev/supermemory/assets/38828053/0c44708d-600a-43a8-a641-835cb1f349fc)
Built with:
- [Nextjs 14](https://nextjs.org/)
- [Next Auth](https://next-auth.js.org/)
- [Drizzle ORM](https://drizzle.team/)
- [Cloudflare D1 database](https://developers.cloudflare.com/d1/get-started/)
- [Cloudflare ratelimiter](https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/)
- [TailwindCSS](https://tailwindcss.com)
- [shadcn-ui](https://ui.shadcn.com)
- And some other amazing open source projects like [Novel](https://novel.sh) and [vaul](https://vaul.emilkowal.ski/)
- Hosted on [Cloudflare Pages](https://pages.cloudflare.com/)
#### `apps/extension`: Chrome extension
The chrome extension is one of the most important part of the setup, but is not required.This is to easily add pages to your memory.
<img width="290" alt="image" src="https://github.com/MaheshtheDev/supermemory/assets/38828053/fa4993bb-c447-46a8-a301-9e0fa84d406a">
Built with:
- [CRXJS](https://crxjs.dev/vite-plugin/getting-started/react/create-project)
- [Vite](https://vitejs.dev/)
- [TailwindCSS](https://tailwindcss.com)
- [shadcn-ui](https://ui.shadcn.com)
- [React](https://react.dev/)
#### `apps/cf-ai-backend`: This module handles the vector store and AI response generation
This is where the magic happens!
Built with:
- [Cloudflare Workers](https://workers.cloudflare.com/)
- [Cloudflare AI](https://ai.cloudflare.com)
- [Cloudflare Vectorize](https://developers.cloudflare.com/vectorize/)
- [Cloudflare Queues](https://developers.cloudflare.com/queues/)
- [Cloudflare Browser Rendering](https://developers.cloudflare.com/browser-rendering/)
- [Cloudflare KV](https://developers.cloudflare.com/kv)
- [mem0](https://app.mem0.ai)
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=Dhravya/supermemory&type=Date)](https://star-history.com/#Dhravya/supermemory&Date)
## Contribute or self host
Supermemory is design to be set up easily locally and super duper easy to set up 💫
Please see the [SETUP-GUIDE.md](SETUP-GUIDE.md) for setup instructions.
### Contributing
Contributions are very welcome! A contribution can be as small as a ⭐ or even finding and creating issues.
<a href="https://github.com/Dhravya/SuperMemory/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Dhravya/SuperMemory" />
</a>
", Assign "at most 3 tags" to the expected json: {"id":"9363","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"