Your Notes, Truly Private
End-to-end encrypted notepad with zero-knowledge architecture
Features β’ Tech Stack β’ Architecture β’ Getting Started β’ API β’ Screenshots
Cryptora is a privacy-first encrypted notepad where your notes are protected with bank-level security. Unlike other note apps, your password never leaves your deviceβall encryption happens in your browser before anything touches our servers.
π‘οΈ Zero-Knowledge: We literally cannot read your notes, even if we wanted to.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT BROWSER β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β React + TypeScript + Tailwind + Framer Motion β β
β β βββββββββββββββ βββββββββββββββ ββββββββββββββ β β
β β β Editor β β Encryption β β Notes β β β
β β β Component βββββΆβ (AES-256) βββββΆβ List β β β
β β βββββββββββββββ βββββββββββββββ ββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β Encrypted Data Only β
β βΌ β
ββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BACKEND SERVER β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FastAPI + Python + SQLAlchemy β β
β β βββββββββββββββ βββββββββββββββ ββββββββββββββ β β
β β β REST β β Business β β ORM β β β
β β β API βββββΆβ Logic βββββΆβ Layer β β β
β β βββββββββββββββ βββββββββββββββ ββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PostgreSQL Database β β
β β Stores only encrypted blobs - Zero Knowledge β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Python 3.8+
- Node.js 18+
- PostgreSQL 12+
# Clone the repository
git clone https://github.com/divinixx/Cryptora.git
cd Cryptoracd backend
# Create virtual environment
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your PostgreSQL credentials
# Run migrations
alembic upgrade head
# Start server
uvicorn app.main:app --reload --port 8000cd frontend
# Install dependencies
npm install
# Start development server
npm run dev| Service | URL |
|---|---|
| π Frontend | http://localhost:5173 |
| π Backend API | http://localhost:8000 |
| π API Docs (Swagger) | http://localhost:8000/docs |
| π API Docs (ReDoc) | http://localhost:8000/redoc |
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Health check |
POST |
/api/v1/auth/register |
Create new user |
POST |
/api/v1/auth/login |
Authenticate user |
GET |
/api/v1/{alias}/notes |
Get all notes |
POST |
/api/v1/{alias}/notes |
Create new note |
GET |
/api/v1/{alias}/notes/{id} |
Get specific note |
PUT |
/api/v1/{alias}/notes/{id} |
Update note |
DELETE |
/api/v1/{alias}/notes/{id} |
Delete note |
# Create encrypted note
curl -X POST http://localhost:8000/api/v1/myalias/notes \
-H "Content-Type: application/json" \
-H "X-Password: your-master-password" \
-d '{
"title": "My Secret Note",
"content": "This gets encrypted before storage"
}'Cryptora/
βββ π backend/
β βββ π app/
β β βββ π models/ # SQLAlchemy models
β β βββ π schemas/ # Pydantic schemas
β β βββ π routers/ # API endpoints
β β βββ π services/ # Business logic
β β βββ π config.py # Configuration
β β βββ π database.py # DB connection
β β βββ π main.py # FastAPI app
β βββ π alembic/ # Migrations
β βββ π requirements.txt
β βββ π run.py
β
βββ π frontend/
β βββ π src/
β β βββ π components/ # React components
β β β βββ π ui/ # ShadCN components
β β β βββ π notes/ # Note components
β β βββ π pages/ # Page components
β β βββ π context/ # React context
β β βββ π lib/ # Utilities
β β βββ π App.tsx
β β βββ π main.tsx
β βββ π package.json
β βββ π vite.config.ts
β
βββ π README.md
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β YOUR BROWSER β
β β
β Password βββΆ Derive Key βββΆ Encrypt βββΆ Send β
β π π π π€ β
β β
β β
Password stays here β
β β
Key derived locally β
β β
Only encrypted data leaves β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OUR SERVER β
β β
β β Never sees password β
β β Cannot decrypt content β
β β
Stores encrypted blobs only β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Dashboard - Your Encrypted Notepad
Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built with β€οΈ for everyone who values privacy
Your thoughts deserve to stay yours.

