Skip to content

Repository files navigation

FlowDesk

FlowDesk is a polished, responsive task-management dashboard built with Next.js and TypeScript. Its interface takes visual inspiration from modern developer tools, combining muted surfaces, subtle borders, and a focused green accent.

Demo

Desktop landing page

FlowDesk landing page on desktop

Compact landing page

FlowDesk landing page in a compact viewport

Features

  • Create, edit, complete, restore, and delete tasks
  • Add descriptions, priorities, due dates, projects, and tags
  • Search task titles, descriptions, projects, and tags
  • Interpret natural-language searches such as show urgent tasks due next week
  • Convert interpreted search intent into removable filter chips
  • Recent searches and / or Ctrl/Cmd + K keyboard shortcuts
  • Filter tasks by status, priority, and project
  • Sort by creation date, due date, priority, or title
  • Dedicated Today, Upcoming, and Completed views
  • Project creation and management
  • Dashboard statistics and completion progress
  • Dark and light themes
  • Responsive desktop, tablet, and mobile layouts
  • Collapsible desktop sidebar and mobile navigation drawer
  • Confirmation dialogs, empty states, and toast notifications
  • Authenticated, cross-device task and project persistence through Supabase
  • Keyboard focus states and reduced-motion support

Tech Stack

Getting Started

Prerequisites

  • Node.js 18.18 or newer
  • npm
  • A Supabase project with the repository migrations applied

Installation

npm install

Development

npm run dev

Open http://localhost:3000 in your browser.

Production Build

npm run build
npm start

Supabase OAuth on Vercel

In Supabase Dashboard → Authentication → URL Configuration, set:

  • Site URL: your production Vercel URL, for example https://flowdesk.example.com
  • Redirect URLs: https://flowdesk.example.com/auth/callback
  • For Vercel preview deployments, optionally add https://*-<team-or-account-slug>.vercel.app/**
  • Keep http://localhost:3000/auth/callback as an additional redirect only for local development

The application builds the OAuth callback from the domain currently open in the browser. The callback also honors Vercel's forwarded host and protocol headers, so production login returns to the same deployed domain.

Linting

npm run lint

Project Structure

src/
├── app/
│   ├── globals.css       # Theme tokens, layout, components, and responsive styles
│   ├── layout.tsx        # Root layout and metadata
│   └── page.tsx          # Application entry point
├── components/
│   └── TodoApp.tsx       # Dashboard views and task-management interactions
└── lib/
    ├── data.ts           # Initial sample projects and tasks
    └── types.ts          # Shared task, project, priority, and view types

Data Persistence

Authenticated projects and tasks are stored in Supabase and protected by row-level security. Workspace data persists across refreshes and devices for the signed-in account.

Device-specific preferences such as the selected theme and recent searches remain in browser localStorage.

Optional AI Search

Natural-language search works locally without configuration. To enhance intent parsing with OpenAI, add a server-side environment variable:

OPENAI_API_KEY=your_api_key

An optional model override is also supported:

OPENAI_SEARCH_MODEL=gpt-5.6-sol

API keys are read only by the server route and are never included in client-side code. If the service is unavailable, times out, or returns malformed data, FlowDesk automatically uses its local intent parser.

Responsive Design

FlowDesk supports:

  • Mobile layouts from approximately 320px
  • Tablet layouts
  • Standard desktop layouts
  • Wide displays at 1440px and above

Task rows automatically become mobile-friendly cards, while the desktop sidebar changes into a slide-out navigation drawer.

Accessibility

The application includes semantic controls, visible focus indicators, accessible labels, keyboard-friendly dialogs, comfortable mobile touch targets, and reduced-motion support.

Scripts

Command Description
npm run dev Start the local development server
npm run build Create an optimized production build
npm start Serve the production build
npm run lint Run ESLint checks

License

This project is intended for personal and portfolio use.

About

FlowDesk is a modern team project management app built with Next.js and Supabase, designed to help teams carry projects from start to finish through organized stages, task tracking, and project trends.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages