Skip to content

sajdakabir/meow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

meow

Stay focused. Stay cozy.

A menu-bar productivity app with a Pomodoro timer, ambient sounds, cute animal companions, and eye-break reminders to keep you company while you work.

meow — hover the cat, everything's there

Demo

Watch the demo on YouTube

Apps

App Description
apps/desktop Tauri (Rust) + Next.js desktop app
apps/landing Next.js marketing/landing page

Features

  • Pomodoro Timer — 25/5/15 minute cycles with visual progress ring and auto-cycling between focus and break sessions
  • Ambient Sounds — 8 mixable soundscapes (Rain, Forest, Ocean, Fireplace, Cafe, Wind, Birds, Thunder) with individual volume controls
  • Focus Pals — Animated animal companions (Luna, Rusty, Hoot, Bamboo, Clover) that react to your timer state
  • Eye Break Reminders — 20-20-20 rule nudges to rest your eyes, with optional strict mode that covers the screen
  • Session History — Every focus session logged locally
  • System Tray — Lives in your menu bar with quick controls
  • Always on Top — Stays visible while you work
  • Desktop Notifications — Alerts when sessions complete
  • Keyboard ShortcutCmd+Shift+F to toggle the window
  • Customizable — Adjust timer durations, toggle companion/timer visibility, auto-start behavior

Tech Stack

  • Tauri (Rust) — Desktop shell
  • Next.js — UI framework (static export for desktop, app router for landing)
  • Tailwind CSS v4 — Styling
  • Framer Motion — Animations
  • Howler.js — Audio playback

Getting Started

Prerequisites

  • Node.js 18+
  • Rust (latest stable via rustup)
  • npm

Install

npm install

Development

Run the desktop app with hot reload:

npm run dev:desktop

Run the landing page:

npm run dev:landing

Production

Build the desktop app:

npm run build:desktop

Build the landing page:

npm run build:landing

The desktop build produces a distributable .dmg (macOS) or .exe (Windows) in apps/desktop/src-tauri/target/release/bundle/.

Project Structure

meow/
├── apps/
│   ├── desktop/                   # Tauri + Next.js desktop app
│   │   ├── src-tauri/             # Rust backend (Tauri)
│   │   │   ├── src/
│   │   │   │   ├── main.rs        # Tauri app entry point
│   │   │   │   ├── lib.rs         # App setup and plugin registration
│   │   │   │   ├── windows.rs     # Window management and popover logic
│   │   │   │   ├── tray.rs        # System tray setup
│   │   │   │   ├── commands.rs    # Tauri commands (IPC handlers)
│   │   │   │   ├── mouse_tracker.rs # Cursor tracking for auto-collapse
│   │   │   │   └── platform/      # macOS-specific APIs
│   │   │   └── tauri.conf.json    # Tauri configuration
│   │   ├── renderer/              # Next.js app (UI)
│   │   │   ├── app/
│   │   │   │   ├── layout.js      # Root layout
│   │   │   │   ├── page.js        # Main app page
│   │   │   │   └── globals.css    # Tailwind + custom animations
│   │   │   └── components/
│   │   │       ├── Timer.jsx      # Circular progress timer
│   │   │       ├── Controls.jsx   # Play/Pause/Reset/Skip buttons
│   │   │       ├── AmbientSounds.jsx  # Sound mixer panel
│   │   │       ├── FocusPal.jsx   # Animated animal companions
│   │   │       ├── Settings.jsx   # Settings panel
│   │   │       └── TitleBar.jsx   # Custom window title bar
│   │   └── package.json
│   └── landing/                   # Next.js marketing site
│       ├── app/
│       │   ├── layout.js
│       │   ├── page.js
│       │   └── globals.css
│       ├── public/
│       └── package.json
├── scripts/
│   └── generate-sounds.js         # Script to regenerate sound files
└── package.json                   # Root workspace config

Keyboard Shortcuts

Shortcut Action
Cmd+Shift+F Show/Hide window
Click tray icon Toggle window

License

MIT

About

A little menu-bar app that pairs ambient sounds with a pomodoro timer, a furry friend, and gentle eye-break reminders.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors