Skip to content

Grs2080w/kntap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Kntap - Minimalist Note-Taking App

Kntap Logo

A modern, minimalist note-taking application designed for focus and productivity. Organize your ideas with powerful features without the clutter.

License Version

This app is currently in the testing phase. A public version will be available soon.


🎯 Overview

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.


✨ Features

Core Features

  • 🧘 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.

Advanced Features

  • πŸ€– 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.

πŸ› οΈ Tech Stack

Frontend Framework & Libraries

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

State Management & Forms

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

Rich Text & Content

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

Drawing & Canvas

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

Database & Backend

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

Authentication & Security

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

AI & LLM Integration

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

Cloud & Storage

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

UI/UX Enhancements

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

Development Tools

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

Utilities & Helpers

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

Additional Libraries

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

πŸ“¦ Project Structure

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

πŸ” Authentication

Kntap uses NextAuth.js with Supabase for authentication. Supported providers:

  • Email/Password (via Supabase)
  • GitHub
  • Google

Users can sign up with email and manage their account through the settings page.


πŸ’Ύ Database

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.


πŸ€– AI Features

Supported AI Providers

  • OpenAI - GPT-4, GPT-3.5, etc.
  • Google - Gemini, PaLM, etc.

Setup

  1. Get API keys from OpenAI and/or Google
  2. Add to .env.local:
    OPENAI_API_KEY=your_key_here
    GOOGLE_AI_API_KEY=your_key_here
    

🎨 UI Components

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

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:ui

βš–οΈ License and Terms of Use

This project is Source Available. It is licensed under the PolyForm Noncommercial License 1.0.0.

What does this mean in practice?

  • βœ… 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.


🀝 Contribute and Be Rewarded

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.

Why contribute?

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.

How to get started?

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.

✨ Our Contributors

Your name could be here!

🌟 Key Highlights

Performance

  • Server-side rendering with Next.js
  • Optimized bundle size
  • Caching with React Query
  • Efficient database queries with Drizzle ORM

User Experience

  • Minimalist, distraction-free interface
  • Real-time synchronization
  • Offline support
  • Dark/Light theme support
  • Multi-language support

Security

  • End-to-end encryption
  • Secure authentication
  • Password hashing with bcryptjs
  • HTTPS enforced
  • Rate limiting with Upstash

Developer Experience

  • TypeScript for type safety
  • Monorepo structure with shared packages
  • Vitest for fast unit testing
  • Biome for code formatting
  • Clear project structure

πŸ“Š Architecture

Frontend Architecture

  • Next.js 16 - React framework with App Router
  • Zustand - Lightweight state management
  • React Hook Form - Performant form handling
  • React Query - Server state management

Backend Architecture

  • Next.js API Routes - Serverless functions
  • Drizzle ORM - Type-safe database queries
  • PostgreSQL - Primary data store
  • Upstash - Redis and rate limiting

External Services

  • Supabase - Authentication and some APIs
  • Vercel Blob - File storage
  • Google APIs - Drive backup and AI
  • OpenAI/Google AI - Language models

πŸ› Bug Reports & Features

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.


πŸ“ž Support


πŸŽ“ Learning Resources

Interested in how Kntap is built? Check out:


Made with ❀️ by the Kntap Team

Website β€’ GitHub β€’ Twitter β€’ Discord


Copyright Β© 2026 Kntap. All rights reserved.

About

A modern, minimalist note-taking application designed for focus and productivity. Organize your ideas with powerful features without the clutter.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors