Skip to content

pinkpixel-dev/notara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Notara Logo

✨ Notara

Dream it, Pixel it - A feature-rich note-taking application and markdown editor with AI assistant

Version License Made with Love

Notara Screenshot

🌟 Features

πŸ“ Smart Note-Taking

  • Markdown Editor: Rich text editing with live preview
  • Formatting Toolbar: One-click headings, lists, quotes, code blocks, inline styles, colour accents, and highlights without leaving the keyboard
  • Enhanced Preview: GitHub-flavoured tables, syntax-highlighted code, clickable links, and embedded images right beside the editor
  • One-Click Saves: Save button and File menu write notes instantly, with Ctrl/Cmd+S for active note and Ctrl/Cmd+Shift+S for Save All
  • Tag Organization: Color-coded tags plus a Settings β–Έ Tags hub for adding, renaming, recolouring, and deleting tags with usage counts
  • Pinned Notes: Star your most important notes for quick access right from the editor header or note list
  • Search & Filter: Find notes instantly with powerful search

βœ… Todo Management

  • Hierarchical Tasks: Create todos with sub-items
  • Time Scheduling: Assign times to tasks and lists
  • Daily Organization: Organize todos by date
  • Progress Tracking: Check off completed items

🎨 Visual Organization

  • Vision Boards: Create visual mood boards with draggable, resizable image/text cards, inline text editing, and color grouping filters
  • Calendar View: Organize notes and todos temporally with Upcoming + Selected Date tabs and a quick Today jump
  • Constellations: Visualize connections between your content
  • Glass Theme: App-wide glass styling with adjustable transparency/frost intensity and modern Aurora mode
  • Refined Navigation: Starred notes live in the main nav with footer icon chips for settings, docs, and the markdown cheat sheet, plus a persistent header icon for quick tag management

πŸ€– AI Assistant

  • Writing Support: AI-powered content generation and editing
  • Generate Images: AI-generated images on demand for your notes, documents, and boards
  • Seamless Pollinations Proxy: Requests route through /api/pollinations/* so the browser avoids CORS issues and uses your configured API key/model selections
  • Note Summaries: Automatic summarization of long notes
  • Creative Prompts: Generate ideas and writing inspiration
  • Context Awareness: AI understands your existing content
  • Session Continuity: Active chat stays intact while navigating during a session
  • Save Workflows: Save chats to archive + markdown notes, and save generated images into Vision Boards/local media

πŸ’Ύ Local File Storage

  • Automatic Desktop Storage: Tauri builds now save into Notara's app-data workspace automatically, with no folder-picking required
  • Automatic & Manual Backups: Notes, tags, todos, and vision boards write through to disk as you work or whenever you press Save
  • Readable Local Files: Desktop data is stored as JSON and markdown files inside Notara's local workspace

πŸ”„ Local-First Workspace

  • On-Disk Sync: Desktop builds work against readable JSON files in Notara's local app-data workspace
  • Cloud-Agnostic: No external auth or Supabase project requiredβ€”set VITE_ENABLE_AUTH=true only if you purposely want Supabase sign-in
  • Browser Fallback: Web builds still use browser storage when local files are unavailable
  • Portable Data: Copy the Notara workspace directory anywhere to migrate your vault

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Git
  • Rust toolchain for desktop builds
  • Linux desktop build deps for Tauri on Debian/Ubuntu:
    sudo apt-get update
    sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf

Installation

  1. Clone the repository

    git clone https://github.com/pinkpixel-dev/notara.git
    cd notara
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Set up environment variables

    cp .env.example .env

    Only the Pollinations token is optional if you want authenticated AI image requests:

    VITE_POLLINATIONS_API_TOKEN=optional_pollinations_token
    VITE_ENABLE_AUTH=false

    Optional: Add VITE_POLLINATIONS_API_TOKEN when you have a Pollinations key and want the AI assistant to include an Authorization header. Cloudflare Pages deployments should mirror this value via wrangler secret put POLLINATIONS_API_TOKEN. Set VITE_ENABLE_AUTH=true (and supply Supabase keys) only if you intend to use the legacy authentication flows.

  4. Start development server

    npm run dev
    # or
    yarn dev
  5. Open your browser

    Navigate to http://localhost:3489

πŸ“¦ Downloads

Direct download links for v1.1.0:

Available installation options:

  • Tauri Linux packages: .deb, .rpm, and AppImage
  • Windows NSIS installer
  • Docker container for the web runtime
  • Cloudflare Pages deployment for hosted web installs

πŸ—οΈ Build & Deploy

Development Build

npm run build:dev

Production Build

npm run build

Desktop Development

npm run tauri:dev

Linux Desktop Bundles

Build Linux installers locally:

npm run tauri:build:linux

Artifacts are written to:

  • src-tauri/target/release/bundle/deb/
  • src-tauri/target/release/bundle/appimage/

Desktop data is written to Notara's Tauri app-data folder. On Linux this is typically:

  • ~/.local/share/dev.pinkpixel.notara/workspace/

If XDG_DATA_HOME is set, Tauri will use that location instead of ~/.local/share.

If you are building on a rolling-release Linux distro, AppImage packaging may fail because linuxdeploy can lag behind newer system linker formats. The included GitHub Actions workflow builds Linux bundles on ubuntu-22.04, which is the most reliable path for AppImage output.

Notara now sets NO_STRIP=YES for the Linux Tauri packaging script to work around linuxdeploy strip failures on newer distros such as Arch.

Docker

Build a Docker image:

docker build -t notara:latest .

Run the container:

docker run --rm -p 3489:3489 \
  -e POLLINATIONS_API_TOKEN=your_optional_pollinations_token \
  notara:latest

Then open:

  • http://localhost:3489

The Docker image serves the built SPA and also provides /api/pollinations/text and /api/pollinations/image, so the web app keeps its AI functionality inside the container. If you do not pass POLLINATIONS_API_TOKEN, users can still provide their own Pollinations key in Settings.

Windows Installer via GitHub Actions

This repository now includes a GitHub Actions workflow at .github/workflows/windows-installer.yml.

  • Trigger it manually from the Actions tab, or
  • Push a tag like v1.1.0

The workflow builds an NSIS Windows installer and uploads it as both:

  • a GitHub Actions artifact
  • a draft GitHub release asset for tagged builds

Deploy to Cloudflare

npm run deploy

Ensure the following secrets exist in your Cloudflare Pages project before deploying:

  • POLLINATIONS_API_TOKEN (optional but recommended if you rely on authenticated Pollinations requests)

Deploy docs website to Cloudflare Pages

The docs site in website/ now has its own Wrangler Pages config at website/wrangler.jsonc, so it can be built and deployed independently from the root app.

cd website
npx wrangler whoami
npm run deploy

Useful website-local commands:

  • npm run cf:dev builds the docs and serves the output through Cloudflare Pages locally
  • npm run deploy creates a Pages deployment for the notara-docs project
  • npm run deploy:production deploys the docs to the main production branch

πŸ› οΈ Technology Stack

Frontend

  • React 19.1.1 - Modern React with hooks
  • TypeScript - Type safety and developer experience
  • Vite - Fast build tool and dev server
  • React Router 7.9.2 - Client-side routing
  • TailwindCSS - Utility-first CSS framework
  • shadcn/ui - High-quality React components
  • Radix UI - Accessible component primitives
  • Prism React Renderer - Fast, themeable syntax highlighting for markdown code blocks

Storage & Integrations

  • Tauri AppData Storage - Desktop persistence in Notara's local workspace directory
  • Browser Storage API - Local IndexedDB fallback for web builds
  • Pollinations Proxy - Chat and image generation helper

State Management

  • React Context - Built-in state management
  • React Query - Server state management and caching

Routing & Navigation

  • React Router - Client-side routing

πŸ“± UI/UX Features

  • πŸŒ™ Glass Theme: Beautiful frosted glass effects
  • πŸ“± Responsive Design: Works perfectly on all devices
  • ⚑ Fast Performance: Optimized for speed and efficiency
  • 🎯 Intuitive Interface: Clean and focused user experience
  • πŸ” Smart Search: Instant search across all content
  • πŸ“ Resizable Panels: Customize your workspace layout
  • ⌨️ Keyboard Shortcuts: Quickly save (Ctrl/Cmd+S) or save everything (Ctrl/Cmd+Shift+S) without leaving the editor

πŸ”§ Development

See CONTRIBUTING.md for detailed development setup and guidelines.

Key Scripts

npm run dev        # Start development server
npm run build      # Build for production
npm run lint       # Run ESLint
npm run preview    # Preview production build
npm run tauri:dev  # Run the Tauri desktop app in development
npm run tauri:build:linux # Build .deb and AppImage bundles

Desktop Notes

  • The Tauri desktop shell is configured and uses public/icon.png for installer icons.
  • Desktop builds now persist data automatically in the Tauri app-data workspace at ~/.local/share/dev.pinkpixel.notara/workspace/ on Linux, or the equivalent XDG_DATA_HOME path.
  • Pollinations-backed AI text and image requests now use Tauri's native HTTP client in desktop builds, so the assistant is no longer blocked on the web proxy routes.
  • The to-do list dialogs use an in-app calendar picker in desktop builds to avoid native WebKit date-picker freezes.

Docker Notes

  • The Docker runtime serves the prebuilt frontend from dist/.
  • A small Node server in docker/server.mjs handles SPA routing and the Pollinations proxy endpoints.
  • Docker does not provide the Tauri desktop filesystem features; use the Tauri builds when you want local desktop app storage under ~/.local/share/dev.pinkpixel.notara/workspace/.

πŸ“‹ Roadmap

  • Offline Support: PWA capabilities with offline editing
  • Export Options: PDF, HTML, and other format exports
  • Collaboration: Share notes and collaborate in real-time
  • Plugin System: Extensible plugin architecture
  • Mobile App: Native iOS and Android applications
  • Cloud Sync: Bring-your-own backend integrations post-local-first launch
  • Advanced AI: More AI features and integrations

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ™‹β€β™‚οΈ Support

✨ About Pink Pixel

Made with ❀️ by Pink Pixel

Pink Pixel specializes in creating beautiful, modern applications that enhance productivity and creativity.


Dream it, Pixel it ✨