← all writing

Creating an AI powered note taking app

· 2 min read · Comments ↓

I shipped an open source local-first AI powered note taking app with sematic search, cloud sync, offline support and other features.

Listen to this post
0:00

I’m trying to do a weekly version of SHIPPED, basically me shipping something, small or big, every week. In this version of SHIPPED, I made an AI powered note taking app

The problem

I’m sitting in my room, staring at the blinking cursor for 10 minutes straight. I want to write a blog but stuck in writer’s block.

And that’s when I got a simple idea - convert https://Novel.sh from a single page thingy to a notes app with multi-device sync and additional AI features

… And during the same time, I was introduced to Embedchain and I was like HELL YEAH! I’LL ALSO ADD SEARCH

Notes

  • Should be extremely cheap to run
  • Local-first, should run offline (because it’s a website lol)
  • Minimal, smooth
  • Sync between multiple devices, but store on-device
  • Dark mode
  • ability for me to RAG search through notes
  • ease in writing notes

The solution

Tech stack:

  • Novel.sh
  • https://vaul.emilkowal.ski/
  • NextJS
  • Tailwind
  • Typescript
  • Embedchain
  • GPT 3.5
  • Cloudflare Workers
  • Cloudflare KV
  • FastAPI for embedchain server

I ran into problems with synchronisation, and I had to ask myself “What happens when local and cloud are both different?” - Give the user the option to choose one. “What should have more priority?” - Local.

there might be more stuff that i forgot, btw it’s opensource - https://github.com/dhravya/notty

soft launch #1 - no one saw this one lol

and then I started using it on my own and kept improving it

Explored different stuff

… Added RAG search using Embedchain

… and five days later, I finally started getting REAL traction

As of writing this, it has 107 stars.

Alright, perfect. Let’s go!

ANDDD LAUNCH!

here’s the public launch announcement

Here’s the instagram video https://www.instagram.com/reel/C3KsHLSurBf/

From start (10am, Jan 28) to MVP (12am, Jan 28) this took 14 hours, on a day of classes 🚀 And ofcourse, then a lot of minor fixes, changes and features.

PS: i’m building these things in middle of classes and assignments. Might as well write a small post about why I do all this even though there’s no “incentive” (very few users, none paying, etc etc)

In short, I do it for the spirit of building and learning.