Blinko is a privacy-first, self-hosted AI note-taking application designed for individuals who need to quickly capture fleeting ideas and retrieve them using natural language queries. Built for developers, researchers, and knowledge workers, it solves the problem of fragmented notes by combining instant text capture with AI-powered retrieval, all while keeping data under the user’s complete control. The app is built with TypeScript, React, and Next.js on the frontend, Tauri for native desktop/mobile apps, and uses PostgreSQL for storage and OpenAI’s RAG for semantic search.
Blinko supports deployment via Docker or PikaPods, and offers a browser extension and Telegram bot for cross-platform note capture. Its architecture prioritizes performance and data ownership, storing all notes as plain text with Markdown formatting for portability and long-term accessibility.
What You Get
- AI-Enhanced Note Retrieval - Uses Retrieval-Augmented Generation (RAG) to enable natural language search across your notes, allowing queries like ‘What did I think about quantum computing last week?’ instead of keyword matching.
- Self-Hosted Data Ownership - All notes, embeddings, and metadata are stored in your own PostgreSQL database; no third-party cloud dependency or data leakage risk.
- Markdown Note Support - Notes are saved as plain text with full Markdown formatting, enabling easy export, version control, and compatibility with other tools like Obsidian or Notion.
- Native Multi-Platform Apps - Built with Tauri to deliver fast, lightweight native applications for macOS, Windows, Linux, and Android with system-level integration.
- Browser Extension - Capture web content with one click: summarize articles, highlight text, save screenshots, and extract snippets directly into Blinko from any browser.
- Telegram Bot Integration - Send notes via Telegram chat, ask AI questions about your notes, forward web links, set reminders, and sync content across devices using a private bot instance.
Common Use Cases
- Capturing research insights - A graduate student uses Blinko’s browser extension to save and summarize papers, then queries notes with natural language to find connections between sources.
- Running a personal knowledge base - A software engineer stores code snippets, meeting notes, and book highlights in Markdown, using RAG search to recall context weeks later without manual tagging.
- Managing ideas across devices - A writer uses the Android app to jot down ideas on the go, then retrieves and expands them on their Mac using the native Tauri app and Telegram bot for quick access.
- Building a private AI assistant - A consultant deploys Blinko self-hosted to create a secure, customized AI assistant that answers questions based on their personal notes without exposing data to external APIs.
Under The Hood
Architecture
- Monorepo structure with distinct frontend, backend, and shared type packages, coordinated via Turbo and TypeScript path aliases for clean cross-package dependencies
- MobX-based state management with a RootStore singleton pattern, enabling global state access but introducing tight coupling between UI components and store logic
- TRPC-based RPC layer with SuperJSON serialization and HTTP streaming, providing end-to-end type safety between client and server
- Backend services lack explicit service layer abstraction, with database operations directly embedded in route handlers and Prisma used without repository patterns
- Docker Compose configurations enable environment-aware deployments with network isolation and health checks, though database schema versioning is absent
Tech Stack
- React 18 and Next.js 14 frontend with TypeScript, leveraging path aliases for monorepo modularity and Tauri for native desktop integration
- Node.js backend powered by Prisma ORM for PostgreSQL, supplemented by tRPC for type-safe APIs and Express for legacy endpoints
- PostgreSQL 14 with CLI-driven migrations and seeding, orchestrated through Docker Compose for consistent dev/prod environments
- Build system centered on Bun, with Vite, Turbo, and TSUP handling bundling, task orchestration, and type generation
- Comprehensive tooling for linting, testing, and CI/CD pipelines that enforce code standards and validate critical paths
Code Quality
- Extensive test coverage across unit, integration, and E2E scenarios with precise assertions for edge cases like file sanitization and path traversal
- Robust error handling through custom boundaries, structured logging, and defensive programming in file operations
- Clear separation of concerns with modular components, decoupled services, and abstracted AI provider interfaces
- Strong TypeScript enforcement across the full stack, eliminating runtime type errors in state, APIs, and models
- Consistent naming conventions and well-structured file organization that enhance maintainability and onboarding
What Makes It Unique
- Native Tauri integration enables deep OS-level features—like system-wide sharing and audio recording—directly from a React/Next.js frontend
- Built-in AI post-processing engine that auto-generates metadata from notes without relying on external APIs
- Real-time drag-and-drop note reorganization with persistent MobX state, offering tactile, fluid editing of personal knowledge bases
- Android widget support and custom URI schemes create a seamless cross-platform experience from mobile to desktop
- Unified import system with server-side async generators for real-time progress streaming during data migration
- Custom checkbox component that blends semantic color states with toggleable chip UI, elevating functional clarity in note-taking workflows