Skip to content

sung01299/notlify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notlify

Notlify is a MacOS productivity tool that allows users to capture multi-media contents and generates notes into their Notion workspace by clicking a simple shortcut.

Features

  • 🎯 Global Shortcut: Simple shortcut ⌘⌃' to capture articles from browsers (TODO: Youtube videos, PDFs, Podcasts)
  • 🔄 Notion Auto Sync: Automatically save AI summarized markdown-styled notes to selected database from Notion workspace
  • 🌐 Browser compatibility: Supports Safari and Chrome (TODO: make it browser independent)
  • 🤖 AI Content Analysis / Categorization: AI automatically analyzes content, summarize, and categorize

Tech Stack

  • Desktop App: Electron + React + TypeScript
  • Backend: FastAPI + Python + SQLAlchemy
  • AI Processing: Gemini 2.5 flash Lite
  • Database: MySQL
  • Integrations: Notion API via notion-client-py

Installation & Setup

Prerequisites

  • Node.js (v18 or later)
  • Python 3.11+
  • macOS (required for global shortcuts and AppleScript)

Backend Setup

cd server

# Setup virtual environment
uv venv
source .venv/bin/activate

# Install dependencies
uv pip install -r requirements.txt

# Start development server
uv run python -m app # Starts server on http://localhost:8000

Test Users Created:

  • Email: test@notlify.com | Password: testpass123

Desktop App Setup

cd desktop
npm install
npm run dev          # Development mode
# OR
npm run build        # Build for production
npm start           # Run built app

Usage

  1. Start the backend server (see setup above)
  2. Launch the desktop app
  3. Use the global shortcut ⌘⌃' anywhere on macOS
  4. Content will be automatically captured from your active browser tab
  5. View the captured content in the app interface

Environment Variables

# Notlify Backend Environment Variables

# Database Configuration
NOTLIFY_DB_HOST=
NOTLIFY_DB_USER=
NOTLIFY_DB_PASSWORD=
NOTLIFY_DB_NAME=

# JWT Authentication
NOTLIFY_JWT_SECRET_KEY=
NOTLIFY_JWT_ALGORITHM=HS256
NOTLIFY_JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
NOTLIFY_JWT_REFRESH_TOKEN_EXPIRE_MINUTES=43200

# Notion OAuth Configuration
NOTLIFY_NOTION_OAUTH_CLIENT_ID=
NOTLIFY_NOTION_OAUTH_CLIENT_SECRET=
NOTLIFY_NOTION_OAUTH_REDIRECT_URI=

# Encryption for storing sensitive data (must be exactly 32 bytes)
NOTLIFY_ENCRYPTION_KEY=notlify-encryption-key-32bytes!

# Gemini AI Configuration
NOTLIFY_GEMINI_API_KEY=
NOTLIFY_GEMINI_MODEL=

# Application Settings
DEBUG=True
ENV=dev
NOTLIFY_CORS_ALLOWED_ORIGIN=["http://localhost:3000","http://localhost:8080","http://127.0.0.1:3000"]

# Mailgun Configuration
NOTLIFY_MAILGUN_API_KEY=
NOTLIFY_MAILGUN_DOMAIN=

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published