Open source · v1.0.0 · MIT

Notes that schedule themselves.

SmartNote Scheduler is an AI-powered note app. Write in plain English — it reads your note, classifies it, sets the priority, pulls out the date and time, and reminds you before it's due.

Five auto-detected categories — Tasks, Deadlines, Schedule, Thoughts and Learning — with no folders to file.

GitHub stars MIT license Last commit Open issues Version 1.0.0 React 19 tRPC 11 MIT
AI analysis Reminders Push + email Export
Features

Capture fast. Let the machine do the filing.

Everything below is implemented in the current release — no roadmap promises dressed up as features.

AI note analysis

An LLM classifies each note into Tasks, Deadlines, Schedule, Thoughts or Learning, detects priority (Low/Medium/High), writes a title and extracts natural-language dates like “tomorrow at 3pm”.

Reminder scheduling

Reminders fire one hour before a deadline or scheduled time, driven by a durable heartbeat endpoint at POST /api/scheduled/process-reminders.

Multi-channel notifications

Push notifications plus optional email through a provider-neutral webhook. Every attempt is logged as sent, failed or skipped — nothing fails silently.

Search & filtering

Full-text search across titles and content, category tabs, a “hide completed” toggle, and sorting by date, priority or category.

Dashboard stats

Totals, completed, pending and overdue counts, with per-category summaries and overdue highlighting so the slipping items are obvious.

Backup & export

JSON backup export and import, plus CSV and Markdown exports and reusable filter presets. Your notes stay portable.

How it works

Three steps, then it's off your mind.

No forms, no date pickers, no category dropdowns. Write the sentence you'd say out loud.

1

Write it plainly

Type a note the way you'd say it — “renew the insurance by Friday” or “standup tomorrow at 9am”.

2

It reads and files it

The LLM categorises the note, sets a priority, generates a title and extracts the date and time in the same pass.

3

You get reminded

A reminder is scheduled one hour ahead and delivered by push or email — logged every time it fires.

Screens & demo

What the dashboard looks like.

An illustrative reconstruction of the notes dashboard: category tabs, priority pills and the overdue-first ordering.

Every note carries its own metadata

The screenshot above is a stylised mock, not a live capture — the repository does not publish a hosted demo URL, so this is how the real dashboard is laid out.

  • Category, priority, due date and scheduled time shown on the card.
  • Overdue items highlighted first, so nothing quietly rots.
  • Notification history records every push and email attempt.
  • Fully responsive — Chromium smoke checks passed at 1280px and 375px.

Read the full feature list

Get started

Run it locally in a few commands.

SmartNote Scheduler is a Node + React application, not a static page — it needs a MySQL-compatible database and a few environment variables.

Prerequisites

  • Node.js ≥ 20 and pnpm
  • A MySQL-compatible database (e.g. TiDB / MySQL 8)
  • DATABASE_URL, JWT_SECRET, OAUTH_SERVER_URL and VITE_APP_ID in a .env

Then

Install dependencies, push the Drizzle migrations, and start the dev server. Email delivery is optional — leave EMAIL_WEBHOOK_URL unset and deliveries are recorded as skipped instead of failing.

Full setup guide

bash
# clone
git clone https://github.com/drsamonline/SmartNotes.git
cd SmartNotes

# install
pnpm install

# configure .env, then migrate the database
pnpm db:push

# development (server + Vite HMR)
pnpm dev

# tests / type check / production build
pnpm test
pnpm check
pnpm build && pnpm start
FAQ

Questions worth answering

What exactly does the AI do?

It reads a note you wrote in plain language and, in one pass, categorises it into Tasks, Deadlines, Schedule, Thoughts or Learning, detects a priority of Low, Medium or High, generates a title, and extracts any date or time such as “tomorrow at 3pm”.

How do reminders reach me?

Reminders fire one hour before a deadline or scheduled time. Delivery is by push notification and, optionally, email through a provider-neutral webhook. Each delivery attempt is recorded as sent, failed or skipped in the notification history.

Do I need a database?

Yes. SmartNote Scheduler stores notes, reminders and notification logs in a MySQL-compatible database via Drizzle ORM, and ships schema migrations you apply with pnpm db:push.

What is the “durable heartbeat” for?

Reminders are processed by an external scheduler that calls POST /api/scheduled/process-reminders. After deployment you wire up a one-minute heartbeat job pointing at that endpoint. Reminders that only failed or were skipped stay pending and are retried once an email provider is configured.

Can I get my notes out?

Yes — JSON backup export and import, plus CSV and Markdown exports, along with reusable filter presets.

How is it licensed?

MIT. The source, changelog, architecture notes and API reference all live in the repository.