Created: 2012-03-24 23:45
Updated: 2017-06-17 01:36


Bookmarking, note taking and todo-ing in Python/Flask/MongoDB

See it in action:


  • Keep your notes, bookmarks, and to-do's organized under the same open sourced web-app.
  • You can fully control the application using keyboard shortcuts for speed and efficiency.
  • Full notes, bookmarks and to-do's synchronization with your Dropbox account so you can access your notes on all your devices.
  • Simple web scraping to keep an archive of all your bookmarks.
  • RSS feeds.
  • Email notes.
  • And much more!


  • flask
  • mongoengine
  • BeautifulSoup (for HTML scraping)
  • dropbox (for Dropbox integration - also you'd need to register your app, get app key and secret)


  • Install all requirements.
  • Clone the repo and create a MongoDB database for the application called 'jabjot' (you can change the name, just remember to change it on db/ as well).

Set up a username and password for the database and copy them to db/

db_user = 'jabjot'
db_password = 'mongo_db_password'
db = connect('jabjot', username=db_user, password=db_password)
  • Modify modules/users/ function init_users() (line 257):

Change the line:



if(not is_admin()):

Just so it allows you to run this function just this one time. Remember to change it back after running it.

  • On a terminal, run ./ (remember to chmod +x it). Then point your browser to to init the admin user. You should see the following text:

    Created user: admin

  • You should now be able to login at Remember to change the admin user's password, email, etc. to your preferred settings.

Other settings to change

Other things you might want to change eventually, all of them in modules/functions/

  • get_app_title() to your app's title
  • get_app_url() to your app's URL
  • get_app_email() to your app's Email
  • dropbox_app_key() dropbox_app_secret() if you set up your app with Dropbox and want Dropbox integration.

If you want to test sending mails on your local box but don't have a mail sender installed (we use Gmail in that case):

  • gmail_user() and gmail_pwd() to your Gmail's accounts settings.


Finally, there are two crons that need to be setup in order for the app to run to its fullest potential. syncs the users' notes with their Dropbox accounts if they chose to in their settings (I do just to have a backup and a way to edit notes, todos and bookmarks offline), and which scrapes HTML off bookmarks very simply, just to have an archive available for the users. They're both in the crons folder. I have them set up to run every 5 minutes, and it works great but I leave that up to you.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more