Dream it, Pixel it - A feature-rich note-taking application and markdown editor with AI assistant
- 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+Sfor active note andCtrl/Cmd+Shift+Sfor 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
- 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
- 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
- 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
- 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
- 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=trueonly 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
- 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
-
Clone the repository
git clone https://github.com/pinkpixel-dev/notara.git cd notara -
Install dependencies
npm install # or yarn install -
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_TOKENwhen you have a Pollinations key and want the AI assistant to include anAuthorizationheader. Cloudflare Pages deployments should mirror this value viawrangler secret put POLLINATIONS_API_TOKEN. SetVITE_ENABLE_AUTH=true(and supply Supabase keys) only if you intend to use the legacy authentication flows. -
Start development server
npm run dev # or yarn dev -
Open your browser
Navigate to
http://localhost:3489
Direct download links for v1.1.0:
Available installation options:
- Tauri Linux packages:
.deb,.rpm, andAppImage - Windows NSIS installer
- Docker container for the web runtime
- Cloudflare Pages deployment for hosted web installs
npm run build:devnpm run buildnpm run tauri:devBuild Linux installers locally:
npm run tauri:build:linuxArtifacts 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.
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:latestThen 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.
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
npm run deployEnsure the following secrets exist in your Cloudflare Pages project before deploying:
POLLINATIONS_API_TOKEN(optional but recommended if you rely on authenticated Pollinations requests)
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 deployUseful website-local commands:
npm run cf:devbuilds the docs and serves the output through Cloudflare Pages locallynpm run deploycreates a Pages deployment for thenotara-docsprojectnpm run deploy:productiondeploys the docs to themainproduction branch
- 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
- 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
- React Context - Built-in state management
- React Query - Server state management and caching
- React Router - Client-side routing
- π 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
See CONTRIBUTING.md for detailed development setup and guidelines.
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- The Tauri desktop shell is configured and uses
public/icon.pngfor 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 equivalentXDG_DATA_HOMEpath. - 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.
- The Docker runtime serves the prebuilt frontend from
dist/. - A small Node server in
docker/server.mjshandles 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/.
- 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
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Website: pinkpixel.dev
- Email: admin@pinkpixel.dev
- GitHub Issues: Report bugs or request features
- Discord: @sizzlebop
Made with β€οΈ by Pink Pixel
Pink Pixel specializes in creating beautiful, modern applications that enhance productivity and creativity.
- π Website: pinkpixel.dev
- π GitHub: github.com/pinkpixel-dev
- β Support: Buy me a coffee
Dream it, Pixel it β¨