A modern, minimalist note-taking application designed for focus and productivity. Organize your ideas with powerful features without the clutter.
This app is currently in the testing phase. A public version will be available soon.
Kntap is a feature-rich note-taking application built with modern web technologies. It combines a clean, distraction-free interface with powerful organizational tools, AI capabilities, and seamless cloud synchronization. Whether you're a student, professional, or creative writer, Kntap provides the tools you need to capture, organize, and manage your ideas.
- π§ Zen Mode - Hide sidebars and focus exclusively on your content. Distraction-free writing experience.
- π Flexible View - Organize notes into lists, folders, or individual files based on your preference.
- π― Kanban Boards - Manage projects with Kanban-style task cards and progress tracking.
- π¨ Canvas & Drawing - Create diagrams and sketches directly with integrated Excalidraw.
- π·οΈ Tag System - Organize and categorize notes with flexible tagging.
- π€ AI Chat Area - Integrated AI assistant for writing suggestions and conversation.
- π Lecture Area - Dedicated space for managing educational content and study materials.
- βοΈ Cloud Synchronization - Real-time sync across all your devices.
- π End-to-End Encryption - Your notes are encrypted and secure.
- π‘ Offline Mode - Work without internet connection and sync when back online.
- π Advanced Metadata Search - Powerful search with filters and metadata support.
- πΎ Automatic Backup - Auto-backup to Google Drive and GitHub.
- π€ Advanced Export - Export to HTML, Markdown, PDF, and DOCX formats.
- π Multi-Language Support - Available in multiple languages.
| Category | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16 | React meta-framework with SSR/SSG |
| React | React 18.2 | UI library |
| Styling | Tailwind CSS 3.4 | Utility-first CSS framework |
| UI Components | Radix UI | Accessible, unstyled component primitives |
| Animations | Framer Motion 12 | React animation library |
| Icons | Lucide React | Beautiful icon library |
| Technology | Purpose |
|---|---|
| Zustand 5 | Lightweight state management |
| React Hook Form 7.6 | Performant form management |
| Hookform Resolvers | Form validation with multiple backends |
| Zod 3.25 | TypeScript-first schema validation |
| React Query 5.85 | Data fetching and caching |
| Technology | Purpose |
|---|---|
| Novel (custom) | Advanced note editor with rich formatting |
| Marked 16.4 | Markdown parser and compiler |
| React Markdown 9 | React component for markdown |
| Highlight.js 11.9 | Syntax highlighting |
| KaTeX 0.16.25 | Mathematical typesetting |
| Recharts 2.15 | Data visualization library |
| Technology | Purpose |
|---|---|
| Excalidraw | Free drawing and diagramming tool |
| @excalidraw/element | Excalidraw element utilities |
| @excalidraw/common | Excalidraw common functions |
| @excalidraw/math | Excalidraw mathematical functions |
| OGL 1.0.11 | WebGL rendering library |
| Technology | Purpose |
|---|---|
| Drizzle ORM 0.45 | Type-safe SQL ORM |
| PostgreSQL | Relational database |
| pg 8.18 | PostgreSQL client for Node.js |
| Drizzle Kit 0.31 | Drizzle CLI for migrations |
| Technology | Purpose |
|---|---|
| NextAuth.js 5 | Authentication for Next.js |
| @auth/supabase-adapter | Supabase adapter for NextAuth |
| bcryptjs 3.0.2 | Password hashing |
| Supabase JS SDK 2.75 | Backend-as-a-service client |
| Supabase SSR 0.6.1 | SSR utilities for Supabase |
| Technology | Purpose |
|---|---|
| Vercel AI SDK | Framework for AI model integration |
| @ai-sdk/openai | OpenAI integration |
| @ai-sdk/google | Google AI integration |
| @ai-sdk/react | React hooks for AI models |
| Technology | Purpose |
|---|---|
| Vercel Blob 0.22.1 | File storage service |
| Google APIs 105 | Google Drive and other services |
| Upstash Redis 1.35.3 | Serverless Redis database |
| Upstash Rate Limit 1.0.1 | Rate limiting service |
| Redis 5.10 | In-memory data store |
| Technology | Purpose |
|---|---|
| Embla Carousel | Carousel/slider component |
| Sonner | Toast notifications |
| NProgress 0.2 | Progress bar |
| Tippy.js 6.3.7 | Popper tooltips |
| Cmdk 1.0.4 | Command menu component |
| Technology | Purpose |
|---|---|
| TypeScript 5.4 | Type safety |
| Biome 1.9.4 | Code formatting and linting |
| ESLint 9.33 | JavaScript linting |
| Vitest 4.0.18 | Unit testing framework |
| Testing Library | React component testing utilities |
| Vite | Build tool |
| Technology | Purpose |
|---|---|
| Nanoid 5.1.6 | Tiny, secure, URL-friendly unique string generator |
| UUID 13.0.0 | UUID generation |
| Class Variance Authority | CSS-in-JS utility library |
| Clsx 2.1 | Conditional className utility |
| Tailwind Merge 2.2 | Merge Tailwind CSS classes |
| ts-pattern 5.0.8 | Pattern matching for TypeScript |
| ts-key-enum 3.0.13 | TypeScript enum utilities |
| Use Debounce 10.0 | Debounce hook |
| P-limit 7.1.1 | Concurrency limiter |
| Pako 2.1 | Compression library |
| Technology | Purpose |
|---|---|
| React YouTube 10.1 | YouTube player component |
| YouTube Transcript Plus | Extract YouTube transcripts |
| EmbedPDF | PDF embedding and rendering |
| Headless Tree | Tree component utilities |
| MSG Pack 3.1.2 | Binary serialization format |
| IDB Keyval | Simple IndexedDB wrapper |
| Tunnel Rat | React portal utilities |
kntap/
βββ app/ # Next.js app directory
β βββ (routes)/ # Route groups
β β βββ ai/ # AI chat area
β β βββ home/ # Main note-taking interface
β β β βββ (note)/
β β β βββ d/w/[id]/ # Drawing/write mode with Excalidraw
β β β βββ d/r/[id]/ # Drawing/read mode
β β β βββ k/r/[id]/ # Kanban view
β β βββ lecture/ # Lecture/learning area
β β βββ settings/ # User settings
β β βββ sign-in/ # Authentication
β β βββ sign-up/ # Registration
β β βββ api/ # API routes
β β βββ s/ # Short routes/sharing
β βββ components/ # Global components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions
β βββ styles/ # Global styles
β βββ types/ # TypeScript types
β βββ utils/ # Utility functions
β βββ layout.tsx # Root layout
βββ packages/ # Monorepo packages
β βββ novel/ # Custom rich text editor
β βββ excalidraw/ # Drawing tool
β βββ common/ # Shared utilities
β βββ element/ # Element utilities
β βββ math/ # Math functions
β βββ utils/ # General utilities
βββ components/ # UI components library
βββ drizzle/ # Database migrations
βββ tests/ # Test files
βββ scripts/ # Utility scripts
βββ public/ # Static assets
βββ docs/ # Documentation
Kntap uses NextAuth.js with Supabase for authentication. Supported providers:
- Email/Password (via Supabase)
- GitHub
Users can sign up with email and manage their account through the settings page.
The project uses Drizzle ORM with PostgreSQL. Database schema includes:
- Users and authentication
- Notes and note versions
- Kanban boards and cards
- Tags and tagging system
- Sharing and collaboration data
Run yarn drizzle-kit studio to view and manage your database.
- OpenAI - GPT-4, GPT-3.5, etc.
- Google - Gemini, PaLM, etc.
- Get API keys from OpenAI and/or Google
- Add to
.env.local:OPENAI_API_KEY=your_key_here GOOGLE_AI_API_KEY=your_key_here
The project uses Radix UI primitives combined with Tailwind CSS for styling. Custom components include:
- Note Editor
- Kanban Board
- Drawing Canvas
- File Explorer
- Tag Manager
- Chat Interface
Testing is set up with Vitest and Testing Library:
# Run all tests
yarn test
# Run tests in watch mode
yarn test:run
# Run with UI
yarn test:uiThis project is Source Available. It is licensed under the PolyForm Noncommercial License 1.0.0.
-
β Personal Use: Feel free to download, study, and use it for hobby or learning purposes.
-
β Commercial Use: The use of this software in corporate environments, businesses, or for any activity aimed at profit is strictly prohibited.
-
β Commercial Redistribution: You may not sell, host this software as a service (SaaS), or use parts of it in commercial products.
You can see more about the license at LICENSE.md.
For commercial use or custom integrations, please contact: contact-license@kntap.com.br.
Kntap is not just an open-source project; This is a community that values ββthe time and talent of developers. We've created a Social Capital model where those who help the project grow along with it.
When a Pull Request is accepted, you unlock exclusive benefits:
-
π₯ Lifetime License: Gain free access forever to the Premium version of Kntap.
-
π‘οΈ Wall of Heroes: Your face and link featured in our repository and on our official landing page.
-
π° Bounties: Participation in the distribution of 5% of the project's monthly profit (according to user base growth).
-
π VIP Access: Opportunity to access the private repository and participate in decisions regarding the Pro version.
You can help by fixing bugs in the Core, improving documentation, or suggesting new features.
π Check out the complete guide at CONTRIBUTING.md to understand the rules and how we ensure your work is valued.
Your name could be here!
- Server-side rendering with Next.js
- Optimized bundle size
- Caching with React Query
- Efficient database queries with Drizzle ORM
- Minimalist, distraction-free interface
- Real-time synchronization
- Offline support
- Dark/Light theme support
- Multi-language support
- End-to-end encryption
- Secure authentication
- Password hashing with bcryptjs
- HTTPS enforced
- Rate limiting with Upstash
- TypeScript for type safety
- Monorepo structure with shared packages
- Vitest for fast unit testing
- Biome for code formatting
- Clear project structure
- Next.js 16 - React framework with App Router
- Zustand - Lightweight state management
- React Hook Form - Performant form handling
- React Query - Server state management
- Next.js API Routes - Serverless functions
- Drizzle ORM - Type-safe database queries
- PostgreSQL - Primary data store
- Upstash - Redis and rate limiting
- Supabase - Authentication and some APIs
- Vercel Blob - File storage
- Google APIs - Drive backup and AI
- OpenAI/Google AI - Language models
Found a bug or have a feature request? Please create an issue on GitHub.
For security issues, please email security@kntap.com.br instead of using issues.
- Documentation: Check our docs folder
- Issues: GitHub Issues
- Email: support@kntap.com.br
- Website: www.kntap.com.br
Interested in how Kntap is built? Check out:
- Drizzle ORM documentation
- Next.js documentation
- Radix UI documentation
- Tailwind CSS documentation
