Skip to content

Atlas is a local-first second brain built with Next.js App Router, TypeScript, Tailwind CSS, and shadcn/ui primitives. It keeps Areas, Tasks (with recurrence), Habits, Notes, an Archive.

Notifications You must be signed in to change notification settings

mdev26/Atlas-Planner

Repository files navigation

Atlas - Second Brain

Atlas is a local-first second brain built with Next.js App Router, TypeScript, Tailwind CSS, and shadcn/ui primitives. It keeps Areas, Tasks (with recurrence), Habits, Notes, an Archive, and a persistent settings store in one minimal workspace that runs entirely in the browser using Zustand + localStorage persistence.

Note: This was a personal experiment and isn’t actively maintained. Feel free to fork, remix, or borrow ideas.

alt text

Tech Stack

  • Next.js 14 (App Router) + React 18 + TypeScript
  • Tailwind CSS with custom tokens + shadcn/ui components
  • Zustand stores with a swap-ready localStorage adapter (future IndexedDB)
  • Radix UI primitives, Lucide Icons, and date-fns helpers

Features

  • Dashboard with quick capture, a first-run welcome guide, daily agenda, time-aware task snapshot (with “Next up”), habit streak highlights, daily scratchpad, and recent notes rail.
  • Tasks: Kanban statuses (To Do / In Progress / Done), recurrence (daily/weekday/weekly), optional start/end times + durations, priority levels, local reminders, and duplication controls.
  • Habits: daily/weekly/custom cadences, a weekly completion micro-chart, seven-day logging timeline, quick log buttons for the last few days, and streak tracking.
  • Notes: freeform editor with metadata (related area/task, last edited timestamp), inline tags, pinning, and automatic daily scratchpad storage.
  • Areas: custom color accents or emoji icons plus detail pages summarizing tasks by status, habit streaks, and related notes.
  • Dark mode: light/dark palette toggle persisted via the settings store using a data-theme attribute.
  • AI assistant (optional): connect an OpenAI API key to draft tasks from natural-language briefs.
  • Archive: retrieve archived tasks, habits, and notes at any time.

Everything is stored locally in the browser. No accounts, sync, or external services.

Getting Started

npm install
npm run dev

Visit http://localhost:3000 to start using the workspace. The UI and data live entirely on-device; clearing browser storage will reset the workspace.

Project Structure

  • app/ - App Router pages for dashboard and entity views
  • components/ - Layout shell, dashboard widgets, and shadcn-based primitives
  • stores/ - Zustand stores for areas, tasks, habits, notes, and settings
  • lib/ - Utilities for persistence, recurrence calculations, theming helpers
  • types/ - Domain models shared across stores and components

Scripts

  • npm run dev - start the Next.js dev server
  • npm run build - create a production build
  • npm run start - run the production server
  • npm run lint - validate with ESLint
  • npm run format - format with Prettier + Tailwind plugin

AI Assistant (optional)

  1. Create an OpenAI API key and add it to .env.local:

    OPENAI_API_KEY=sk-xxxx
    
  2. Restart npm run dev.

  3. Enable the assistant in the Tasks view, write a brief, and Atlas will draft suggestions that you can import as real tasks. The rest of the workspace remains local-first.

Packaging as a Desktop App

Atlas is a standard Next.js project, so you can wrap it as a desktop executable with tools like:

  • Tauri (preferred for local-first apps): run npm run build, then point a Tauri shell at the .next output. Tauri bundles a lightweight Rust host with a WebView and offers installers for Windows/macOS/Linux.
  • Electron: serve the production build via next start and load it in an Electron window. Use electron-builder or electron-forge to create installers.

Both approaches let you keep localStorage/Zustand persistence. For best results, expose only the built app and disable network permissions if you want an offline-first bundle (excluding the optional AI route).

Notes

  • This project is an experiment and not actively maintained, but feel free to fork or build on it.

Sample Data for Screenshots

  1. Run node scripts/seed.ts. This writes a .seed file with JSON snapshots for every persisted store.
  2. Start the dev server (npm run dev), open DevTools → Console, and paste each value via localStorage.setItem("second-brain-areas", "<value from .seed>"), second-brain-tasks, etc.
  3. Refresh the page. The fake areas, tasks, habits, and notes load instantly for demo screenshots.

You can edit scripts/seed.ts if you want different demo content.

About

Atlas is a local-first second brain built with Next.js App Router, TypeScript, Tailwind CSS, and shadcn/ui primitives. It keeps Areas, Tasks (with recurrence), Habits, Notes, an Archive.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages