Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Quick Notes Board

Alessandro VettorelAlessandro Vettorel2k downloads

A desktop board for creating, organizing, and managing quick Markdown notes — categories, groups, labels, alarms, and more — all saved in a single file.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates19

Quick Notes Board

Quick Notes Board is a free, open-source Obsidian plugin for managing small notes fast, practically, and in a genuinely organized way. Instead of scattering quick thoughts across separate files, you get a dedicated board where notes live as draggable cards, sorted into categories and groups you define yourself — with instant search to put whatever you need right at your fingertips, no digging required.

It goes well beyond simple sticky notes: built-in alarms and reminders (including recurring ones and multiple times a day), password-protected encrypted notes for anything sensitive, and cross-cutting labels for finding and managing notes by what they have in common, regardless of which category they live in. Everything — every note, every setting — is saved in a single file, with optional data compression to keep it remarkably small on disk.

Customizable sounds for dozens of actions and smooth window animations round it out, for an experience that feels as good as it is fast — all of it, completely free.

☕ Enjoying Quick Notes Board? You can buy me a coffee to support its development — thank you!


Screenshot

Quick Notes Board screenshot


Table of contents

  1. Installation
  2. Opening and closing the board
  3. The toolbar
  4. Quick notes
  5. Customizing note action icons
  6. Text formatting
  7. Categories
  8. Groups and subgroups
  9. Labels
  10. Board Activity
  11. Goals
  12. Alarms and reminders
  13. Note widgets
  14. Note Explorer
  15. Board Structure diagram
  16. Trash
  17. Archive
  18. Password lock (encryption)
  19. Board appearance
  20. Data file compression
  21. Sound effects
  22. Language
  23. What's new after an update
  24. Data file format
  25. Screenshots
  26. Version history
  27. Support the project
  28. Development

Installation

Requires Node.js.

npm install
npm run build

This produces main.js in the project folder. Copy these three files into <vault>/.obsidian/plugins/quick-notes-board/ in your vault:

  • main.js
  • manifest.json
  • styles.css

Reload third-party plugins in Obsidian (or restart the app) and enable "Quick Notes Board" from the installed plugins list.


Opening and closing the board

  • Ribbon icon (left sidebar): opens the board. If it's already open, clicking it again closes it — it works as a toggle, both from the icon and from the matching command.
  • The board opens in a full-width pane, like a regular note.
  • Closing the board (from the dedicated toolbar button, the tab's "X", or the ribbon icon again) restores everything to normal, including automatically reopening any side panels that were closed for fullscreen mode.
  • While it is open, the board keeps the keyboard focus, and clicking anywhere on it gives the focus back to it. Pressing Esc never takes you away from the board: it only does what it means there (leaves the editing of a note's text or title, clears the selection, closes the groups menu). To leave the board, close it or click another tab.

The toolbar

The top bar contains, from left to right:

Element Function
New note Opens the creation window for a new quick note (title, category, optional group).
All Shows/hides all active notes at once (not trashed nor archived). Automatically disables itself when there's nothing to show or hide.
Category buttons One per registered category, colored like the category itself. Click to show/hide only that category's notes. If the category has groups, a small arrow next to it opens a menu with the individual groups.
Reorder Tidies up the visible notes into a grid. Cycles through six modes on each click, in sequence: current position (reading order), smallest→largest horizontal, largest→smallest horizontal, smallest→largest vertical, largest→smallest vertical, and cascade. Size-based modes always stay within the visible width — only vertical scrolling is ever needed, never horizontal. In cascade mode the notes are stacked from the oldest (at the back) to the newest (in front), each shifted down by one title bar and slightly to the right, so every note's title stays readable; if the stack doesn't fit the visible height, a new cascade starts to the right of the previous one. Stacking order isn't saved, so after a restart it depends on the order notes are loaded (the positions are kept). A short message after each click tells you which mode was just applied.
Labels Opens the labels window: create, rename, recolor, reorder (by dragging) and delete labels straight from the board, with the same options as the settings.
Info Opens a summary window: total notes, categories, trashed/archived/encrypted notes, file size (and, when compression is on, the real vs. compressed size and the resulting savings).
Activity Opens the Board Activity window: a resizable bar chart of notes created and characters written per day, browsable by month.
Alarms Opens the alarm list — every note with an alarm set, at a glance.
Explore notes Opens the Note Explorer — a searchable, collapsible overview of every note by category/group/subgroup.
Board structure Opens the Board Structure diagram — a read-only flowchart of your categories, groups and subgroups.
Goals Opens the Goals window: your daily, weekly, monthly and yearly goals with their progress, and your medals. It shows today's completed daily goals (for example 2/4). Can be turned off in the settings.
Archive Opens the archive window.
Trash Opens the trash window.
Close Quick Notes Board Closes the board (same as clicking the ribbon icon again).

Category/group/"All" buttons automatically disable themselves (appear faded, not clickable) when there are no relevant notes to show or hide.

If you've defined any labels, a second row appears below the category buttons with a colored chip per label, for filtering notes by label.


Quick notes

Each note is a small draggable card with:

  • A colored header, matching its category, with the category's icon (if any) and the note's title.
  • A text body in Markdown, previewed exactly like a real Obsidian note — or a live widget (clock, calendar, countdown, stopwatch, pomodoro) in its place.
  • A row of action icons — fully reorderable and individually hideable, see Customizing note action icons. The default order:
Icon Action
Pencil Renames the note's title (inline editing, in place).
Tag Changes the note's category (and, if applicable, group).
"A" (typography) Opens the Text appearance panel: size, font, text color, background color (see below).
Eye / pencil Toggles between rendered preview and raw-text editing.
Archive box Moves the note to the archive.
File-plus Converts the quick note into a real note file in your vault, opening it afterwards.
Lock Locks/unlocks the note with a password (see Password lock).
Trash Moves the note to the trash.
Star Marks the note as a favorite (only shown if favorites are enabled in settings).
Alarm clock Sets or edits the note's alarm.
Maximize/restore Expands the note to fill the whole board (or restores it to its original position and size). Never moves or resizes the note's saved data — it's a purely visual, reversible overlay.
Pin Pins the note so it always shows up front, ignoring the usual show/hide-by-category behavior.
Tags Opens the panel to assign/remove labels for this note.
X (fixed, always last) Minimizes (hides) the note without deleting it. Comes back into view by re-clicking its category (or group) button in the toolbar, from the Note Explorer, or from a matching label filter.

Performance: a note scrolled out of the board's visible area stops being rendered (and animated, if its category has an animated gradient) by the browser until you scroll back — invisible in normal use, but it keeps a crowded board light. Notes hidden by a category or individually closed cost nothing at all, already: they're never even added to the page in the first place.

Dragging: move a note by holding down its header. The last note you touched (moved, opened, edited) always comes to the front.

Resizing: from the left, right, and bottom edges, and the two bottom corners (not the top, which is reserved for dragging).

Zooming a single note's text: hover over a note's body and use Ctrl + mouse wheel (or pinch-to-zoom on a Mac trackpad) to grow or shrink just that note's font size, one step at a time, within the same 10–32px range as the appearance panel's slider. Saved automatically after a short pause. Normal scrolling (without Ctrl) is unaffected.

Positioning the cursor precisely: clicking (or double-clicking, depending on your settings) into a note's text places the cursor exactly where you clicked — not always at the end — and scrolls the note so that line is visible. Exact for plain text, headings, quotes, bullet/task lists, tables and inline formatting (bold, italic, strikethrough, highlight, inline code); a close approximation on deeply nested lists, numbered lists past the ninth item, and hand-padded table columns; links, wiki-links and fenced code blocks fall back to the previous, less precise behavior.

Compact icons (optional, from settings): when enabled, action icons stay hidden until you hover over the note, edit it, or drag it — for a cleaner look with many notes on the board. While hidden, the icon row also collapses to no width, so the title gets that space back and shows more of itself instead of staying cut short next to empty room; hovering smoothly brings the icons back and the title yields space to them again. Can be turned off at any time.

Footer bar: a thin strip at the bottom of a note, above the resize handles, appears whenever the note has at least one label assigned, showing its colored dots left-aligned. Designed to be extensible for future small additions.


Customizing note action icons

From Settings → Note icons, you can:

  • Drag to reorder the 13 action icons (all except the fixed "X" close button) using the handle on the left of each row — same drag-and-drop mechanism used for reordering groups.
  • Toggle visibility of each one individually — hide the icons you never use.

Changes apply immediately to every open note on the board.


Text formatting

The note's body supports the same Markdown as regular Obsidian notes:

  • Bold and italic (shortcuts Ctrl/Cmd+B and Ctrl/Cmd+I while editing).
  • Internal links [[note name]]: clickable (open the note; Ctrl/Cmd+click opens it in a new tab) with hover preview, just like in a regular note. While editing, typing [[ (or Ctrl/Cmd+K) opens an autocomplete suggester that combines matching vault notes and other quick notes on the board — picking a quick note inserts a special link that, when clicked, brings that note into view and highlights it (even if it was hidden or archived).
  • Embedded images ![[image.jpg]], resizable by dragging a handle on their corner.
  • Tables, with borders and a highlighted header row; they resize correctly when you change the note's font size, can be pasted straight from Excel, see Pasting a table from Excel, and can be edited as a grid with a button, with colors for the first row, rows and columns, see Editing tables.
  • Checkboxes - [ ]: clickable, and the click genuinely updates and saves the note's text. A progress bar can optionally be shown above each checklist, with a customizable color gradient and a distinct color/text once it reaches 100%.

While editing, the text stays a plain editable area (no live formatting as you type), to keep it light and reliable; once you leave editing mode, everything renders correctly.

Pasting a table from Excel

Copy a range of cells in Excel (or any spreadsheet) and paste it while editing a note: it turns into a Markdown table on its own lines, with the first row as the header and the columns aligned. A cell with several lines keeps them as line breaks, and a | inside a cell is escaped. If what you paste does not look like a table (a single row or a single column, rows with different numbers of cells, text indented with tabs), it is pasted as it is. Once pasted, the table can be edited with the editor below.

Inserting an empty table

While editing a note, right-click the text and choose Insert 2×2 table: a Markdown table with two columns (titles "Column 1" and "Column 2") and two empty rows is written at the cursor, on its own lines. Leave editing mode and use the table icon to fill it in with the table editor, or type directly in the text. The same menu has Cut, Copy, Paste and Paste as text; note that this menu replaces the system one, so spelling suggestions are not offered there.

Editing tables

Above every table in a note's preview there is a small table icon (left-aligned, a little faded until you point at it). Click it to open the table editor: a window with only that table, shown as a grid. The rest of the note does not appear, and the window has the title bar of the note's category, like the other note windows. The icon is not shown on locked notes, and not on very large tables (over 4000 cells): edit those in text mode.

Table editor screenshot

The window, button by button

Where Button What it does
Beside the header row 🎨 Opens the color window for the header row, and takes the color chosen. The color is solid, and the text color adjusts automatically for contrast.
Above each column ◀ / ▶ Moves that column left / right. Disabled on the first / last column.
Above each column ✕ Deletes that column. Disabled when it is the only one left.
Above each column + Inserts an empty column to the right of that column.
Above each column 🎨 Opens the color window for the whole column. The button takes the column's color.
Beside each row ↑ / ↓ Moves that row up / down. Disabled on the first / last row of data.
Beside each row ✕ Deletes that row.
Beside each row + Inserts an empty row right below it. On the header row it adds the first row of data.
Beside each row 🎨 The same window for the whole row. On the header row the palette opens the header color, as the button at the top.
Bottom right corner handle Drag it to make the window wider or taller; the grid takes the extra space, which is handy for wide tables.
Bottom Delete table Removes the whole table from the note, after a confirmation. It is applied at once (no need to press Save table) and cannot be undone from the editor.
Bottom Undo Takes back the last change (deletion, move, insertion, color or typed text), one step per press, up to 50 steps. Disabled when there is nothing to undo.
Bottom Cancel (or Esc) Closes the window and discards every change.
Bottom Save table Writes the changes into the note.

The header row has no arrows and no cross: it cannot be moved or deleted, only edited. Colors of rows and columns are shown softly, so the text stays readable in light and dark themes; where a row and a column cross, the row's color wins, and the first row keeps its solid color. Colors follow their row or column when you move, insert or delete it, and they show in the note's preview too.

The color window

The 🎨 buttons (including the one of the header row) open a small window dedicated to the color:

  • Preview: the first cells of that row or column, colored as they will appear in the table.
  • Colors: the last ones you used (the most recent first), completed with a few suggested ones; click one to choose it.
  • Color field: type a code such as #ffd966 (the # is optional, and the short form #fd6 works too). More colors… opens the system color picker for a new color.
  • Confirm (or Enter) applies the color; Cancel (or Esc) closes without changing anything. Remove color takes the color off the row or column.
  • The window starts from the color the row or column already has; if it has none, from the last color you chose, which is remembered even after a restart.

Working in the grid

  • Cells: click and type. Enter moves to the cell below, Tab to the next one.
  • Selection: the row and the column of the cell you are in are highlighted, and a line under the grid says which ones they are.
  • Nothing changes until you press Save table. Then only that table is rewritten, tidy and with its columns aligned; the rest of the text is not touched, and other tables in the same note stay as they are.
  • A | typed in a cell is saved as \|, and a cell cannot contain line breaks (a Markdown limit).

The header color is saved in an invisible comment on the line right above the table, for example <!-- qnb-table header=#4a90d9 cols=2:#ffd966 rows=1:#f4cccc --> (the colors of rows and columns are saved there too, counting from 1): it does not show in the preview, and the table stays a normal Markdown table. If you see that line in text mode, leave it as it is; if you add or remove rows or columns by hand, the colors can shift by one position.

Good to know:

  • A | typed in a cell is saved as \|, and a cell cannot contain line breaks (a Markdown limit).
  • Tables inside code blocks are ignored.
  • If a note has a table inside a quote or a list, the button is not shown for that note's tables: edit them in text mode.
  • The button does not appear on locked notes.

Text appearance (per note)

From the "A" panel on each note:

  • Size (slider, 10–32px — also adjustable with Ctrl+scroll wheel directly on the note, see above).
  • Font: 6 generic families (default, sans-serif, serif, monospace, decorative script, decorative display) plus 10 common named fonts with safe fallbacks (Arial, Georgia, Times New Roman, Courier New, Verdana, Trebuchet MS, Palatino, Garamond, Comic Sans MS, Impact).
  • Text color and background color for that single note, with a "Default" button to return to automatic behavior.

All changes apply live as you adjust them.


Categories

Categories are managed from Settings → Quick Notes Board, and most of their options can also be changed straight from the board, from the category structure window. For each one you can define:

  • Name (editable at any time; notes belonging to it update automatically). You can also rename a category from its structure window, without opening the settings.
  • Background color for the note header, optionally as a gradient: turn on Background gradient and pick an end color and a direction (left→right, right→left, top→bottom, bottom→top, or either 45° diagonal). Right under the end color, a Title bar animation toggle makes the gradient slide smoothly back and forth instead of staying still, at a duration you set from 1 to 10 seconds; with it off the bar is static exactly as before, and turning it back on picks up the duration and hover setting you last used. A further "Animate only while hovering or editing" toggle keeps the bar static until you hover the note, edit it, or drag it (the same moments the compact icons setting reveals the action icons) — off by default, so the gradient animates all the time unless you turn this on. It's a plain CSS animation (no background timer), and it's skipped automatically if you have your system's "reduce motion" setting on. The category color is the gradient's start, and with the gradient toggle off the header is a single color exactly as before. Right under the colors, a live preview bar (a mock note title with the category name and icon, in the text and icon colors it will really have) always shows the result — single color, still gradient, or animated — and updates as you change colors, icon or gradient. The gradient (animated or not) applies to the note header bars only; everywhere else the category color is still used as a single color.
  • Title text color, with a "Default" option (contrast automatically computed from the background color).
  • Icon, shown before the title of every note in that category, and before its name everywhere else it appears (toolbar, Note Explorer, Board Structure): a gallery of 24 ready-to-use common icons, plus a free-text field to type the name of any icon from the Lucide library (with a live preview and a button that opens lucide.dev/icons to search), and a dedicated color for the icon itself.
  • Category order (reflected in the toolbar) can be dragged and reordered using the handle on the left of each row.

At least one category must always remain.

Category structure window

Right-click a category button in the toolbar to open the structure of that category. The title bar of this window, like that of the Category colors and Rename category windows below, is drawn exactly like the title of a note of that category: its color or gradient (animated too), its icon and icon color, and its text color. The bar sits flush against the top edge of the window, across its full width, and the window's close button (X) is inside it, on the same line as the title, like the buttons in a note's header. That way it is always clear at a glance which category you are working on. The window shows: its groups and subgroups as a tree, with the number of notes in each branch, and the totals for the whole category (notes and characters; encrypted notes are left out of the character count).

At the bottom left, opposite Close, the Rename category button opens a small window with the current name. Type the new one and press Enter or Rename; Cancel leaves everything as it was. The new name applies to the category and to all its notes, archived and trashed ones included, exactly as when you rename it from the settings, and the structure window shows it right away. An empty name, or one already used by another category (capital letters don't count), is refused with a message.

Next to it, the Category colors button opens a window with all the look options of that category, the same ones you find in the settings:

  • Background color and text color of the title bar, with a Default button for the text. The window's own title bar doubles as a live preview while you change the options.
  • Background gradient, with its end color, the Title bar animation (its duration, and whether it moves only on hover or while editing) and the direction.
  • The icon shown before the note title (the gallery of ready-to-use icons, or any Lucide icon typed by name) and the icon color.

This is meant to let you change a category's whole look straight from the board, without leaving it and without going through the settings. Every choice is saved right away and you see it on the board behind the window. The color pickers save when you release them: while you drag, only the preview in the window moves, so the board is not redrawn at every shade.

Note windows

The windows opened from a note have the same title bar as the category windows, with the colors of the category the note belongs to: its color or gradient (animated too), its icon and icon color, and its text color. They are the info panel (right-click the note's title), Alarm and reminder, Change category, Text appearance, Lock and Unlock, Labels, and the window of a ringing alarm. The title shown in the bar is the one the window already had (for the info panel, the note's title). This gives the board a consistent look and makes it clear at a glance which category a window belongs to.

  • If the window is opened for several selected notes (change category, text appearance), the bar uses the category of the first note.
  • A note whose category no longer exists keeps the plain title, as before.
  • The windows of the toolbar (Archive, Trash, Board info, Activity, Alarms, Explore notes, Board structure) and New note don't belong to a single category, so they keep their usual title.

Groups and subgroups

Each category can have its own internal breakdown into groups (and nested subgroups), managed in the dedicated section under each category in settings (name, add, rename, delete, drag to reorder). A group always inherits its parent category's color and icon — it has no appearance of its own.

When creating a note or changing its category, if the chosen category has groups defined, a second menu appears to assign it to one of them (or none). Changing a note's category automatically resets its group.

In the toolbar, categories with groups show a small arrow: it opens a popup menu with the groups, each individually showable/hideable, independently from the rest of the category.


Labels

Labels are a flat, cross-cutting tagging system, independent from categories/groups/subgroups — a note can carry several labels at once, useful for finding notes that share something in common regardless of where they're organized (e.g. "Urgent" and "Waiting on someone else" together, across completely different categories).

  • Managed from Settings → Labels, or straight from the board with the toolbar's Labels button (right after Reorder), without opening the settings: name, color, add/delete, drag to reorder. In that window a name is saved when you press Enter or leave the field, and a color when you release the picker; an empty name goes back to the previous one. A new label is added at the end, with its name already selected so you can type it right away. Deleting a label is immediate, as in the settings.
  • Assign labels to a note from its dedicated Tags icon, via checkboxes (as many as you like at once).
  • Assigned labels show as small colored dots in the note's footer bar, and (read-only) in the note's info panel (right-click the title), which also has Duplicate note, Archive and Trash buttons, in that order (left of Close): the same actions as the matching icons on the note itself, always applied to this specific note regardless of any other notes selected elsewhere on the board. Duplicate note makes a full copy (text, category, group, colors, font, labels, alarm...) with a new id, placed 24px down and to the right of the original and brought to the front; the duplicate starts with no pending snooze and no repetitions counted, even if the original had some. Having Archive and Trash here too means you can hide those two action icons from the note header if you'd like a cleaner, less crowded title bar — the info panel keeps both one right-click away regardless.
  • The toolbar's label filter row lets you click one or more label chips: selecting more than one intersects them (AND) — only notes carrying every selected label are shown, not just any one of them. Active exactly like the search box: it temporarily reveals matching notes even if their category is currently closed, without ever changing their underlying hidden/shown state.
  • The toolbar search box and Note Explorer also match against label names, not just note titles.

Board Activity

Board Activity screenshot

The toolbar's "Activity" button opens a resizable window with two bar charts, browsable month by month: notes created per day and characters written per day, plus the running totals for the selected month. It's a quick way to see, at a glance, how many notes and how many characters you've actually created and typed in the current month — a simple but effective way to track your writing/working pace over time, spot your most productive days, or just confirm you're keeping up a steady habit. Hovering over a bar shows the exact value for that day; the colors of both charts are customizable from settings.

At the bottom-left of the window, the "Hide days with no activity" toggle removes every day with no notes created and no characters written from both charts, so they show only the days you actually worked (bars are capped to a sensible width when few days remain, and a message is shown if the month has no activity at all). The totals are unaffected, and the toggle's state is remembered.

Next to it, the "Show modified notes" toggle swaps the first chart for notes modified per day, on the same calendar (the characters chart stays as is, and the monthly total changes accordingly). Like the other toggle, its state is remembered between openings. Modifications come from a dedicated daily activity log — not from each note's last-modified date, which would only remember the latest edit — so a note edited on several different days appears on every one of them. Each note counts once per day, however many times it's saved; saving changed text, ticking a checklist item, and resizing an embedded image count, while locking, moving, or recategorizing a note doesn't. History from before this version can't be reconstructed: the log starts from each existing note's last known modification, and is accurate from then on. The log lives in the plugin's data.json (not in the notes file), and keeps past activity even if a note is later trashed.


Goals

Goals list and goal creation window

Goals are not a game: they are a simple way to spur you on to do better. The idea came from reading a book about dopamine. Having a target to reach motivates us to put effort into whatever we do, and reaching it is a reward that makes us want to keep going. Here it works like this: you set your targets, the board keeps count by itself, and every goal you reach earns you a medal. They are there to give you a small push to write and keep your notes in order, a little every day.

The Goals button in the toolbar opens the window, with one tab per period (Today, Week, Month, Year) and a Medals tab. The window can be resized with the handle in its bottom-right corner (the board remembers its size), so you can place it wherever suits you best. Each goal shows a progress bar, the count (for example 3/5) and a check mark when it is done. On the button itself you see today's daily goals completed, such as 2/4; when all are done it turns gold.

Creating a goal

Press New and choose:

Field Meaning
Name Optional. If left empty, the goal is named automatically, for example "Create new notes: 5 per day".
What do I have to do? A cascading menu with four groups. Notes: create new notes, edit different notes, write characters, delete notes, archive notes, add notes to favorites, duplicate notes, change the category of notes, move notes, resize notes, close notes. Labels: assign labels, add labels, delete labels, organize labels. Alarms: create an alarm, have alarms ring, delete alarms, turn off an alarm, turn an alarm back on. Activity: finish a Pomodoro, days with activity (a day counts if you did any of these), empty the trash, restore notes from the archive, do searches, tidy up the notes, check the board activity, use a widget. The button shows the group and the choice, for example Alarms › Turn off an alarm.
How many…? The number to reach, from 1 to 9,999,999. The question changes with the action: "How many characters?" for writing, "How many notes?", "How many labels?" and so on.
In which period? Per day, per week (Monday to Sunday), per month or per year.
Only for the category Optional, for creating and editing notes: count only the notes of one category.
Only for the label Optional, for assigning labels: count only one label (for example "assign 3 Urgent labels per day"); left on "Any", every label counts.

You can create as many goals as you like, edit them with the pencil and delete them with the bin (press it twice to confirm). If you change a goal in the middle of a period, the progress already made stays.

What counts

  • Create new notes counts the notes created in the period that are still on the board (a note sent to the trash is not counted).
  • Edit different notes counts how many different notes you changed in the period: editing the same note ten times counts once.
  • Write characters counts the characters you add to your notes: those of a new note when you create it, and the characters added each time you finish editing a note (deleted text is not subtracted, and encrypted notes are not counted).
  • Delete notes counts the notes you send to the trash.
  • Assign labels counts each time you turn a label on for a note.
  • Create an alarm counts the notes that get an alarm for the first time (changing an alarm that already exists does not count).
  • Turn off an alarm counts each time you turn an alarm off with the Turn alarm off button, and Turn an alarm back on each time you press Turn alarm on on an alarm that was off.
  • Move notes, Resize notes and Close notes count each time you drag a note on the board, resize it with its handles, or close it with the X button of its title bar (the note is minimized, not deleted). They only count when something really changed: a click that does not move or resize the note does not count. With several notes selected, every note moved or closed counts.
  • Archive notes and Finish a Pomodoro count each time you do it.
  • Add notes to favorites counts each time you turn the star of a note on (turning it off does not count; it needs the favorites option to be on).
  • Empty the trash counts each time you press Empty trash, and Restore notes from the archive each note you restore with the restore button of the archive window.
  • Do searches counts a search when you stop typing for one second in the search field of the board or in the note explorer. The same text is not counted twice in a row: clear the field to search for it again. Letters typed in between do not count.
  • Tidy up the notes counts each press of the Tidy up button that arranges at least one note, and Check the board activity each time you open the activity chart window.
  • Have alarms ring counts each time an alarm actually fires (a repeating alarm counts every time it rings). Delete alarms counts each time you press Remove alarm in the alarm panel (turning an alarm off does not count).
  • Add labels and Delete labels count the labels you create or remove in the labels list. Organize labels counts each time you change their order by dragging; renaming a label or changing its color does not count.
  • Duplicate notes counts each note you duplicate (from the note's info panel). Change the category of notes counts each note whose category or group you really change, one by one or in bulk on a selection; choosing the same one again does not count.
  • Use a widget counts each press of a button of a widget (start, pause, reset, calendar navigation...).
  • Progress is worked out from what you did in the current period, even before you created the goal, as far as the board has a record of it: notes created and edited. The other actions (characters, deleted notes, labels, label changes, alarms, alarms rung or deleted, archived notes, Pomodoros, notes moved, resized or closed, favorites, trash, archive, searches, tidy-ups, chart views, widget uses, duplicated notes and category changes) are counted from the moment this feature is in place.

Medals and streaks

Reaching a goal in a period earns one medal for that goal and that period, and the board celebrates it: a large card opens above everything else, with the background blurred and the keyboard focus on it, only while the Quick Notes Board is in front, with the medal, the name of the goal, fireworks and the celebration sound; you close it with the Congratulations button. Every goal has its own celebration, one at a time (always after the action that earned it is finished and shown on the board): if you reach several, they wait in a queue and the next one starts right after you close the previous one. The celebrations never appear outside the board: if you reach a goal while you are in another note or plugin (for example when an alarm rings), the medal is saved at once but the celebration waits, with no window and no sound, and starts as soon as the board is in front again. If you switch away in the middle of one, it resumes from where it was when you come back. The queue is kept even if you close Obsidian. The medal is bronze for daily goals, silver for weekly, gold for monthly and a trophy for yearly ones. Each goal can be earned again in every new period.

Goal reached screenshot

The Medals tab shows how many you have of each kind, your streak (the consecutive days, up to today, in which you completed at least one daily goal; if you skip a day, it starts again) and your best streak, and a few milestones that unlock along the way (first goal, 10 and 100 goals, streaks of 3, 7 and 30 days). Medals stay even if you delete or change the goal.

The Medals tab tiles are clickable: pressing Bronze, Silver, Gold or Trophy shows which goals earned that kind of medal, how many times each, and the day, week, month or year of each one (most recent first); hover a line to see the exact date and time. If a goal was deleted, its last name is kept next to the medals it earned (medals earned before this feature show as Deleted goal). The milestones are clickable too: a reached one shows when it unlocked and what produced it (the medals in order for the totals, the days in a row and the goals completed each day for the streaks); a locked one shows your progress and how much is missing.

Managing goals

The Manage button at the bottom left of the Goals window offers four options, each asking for confirmation and telling you how many items are involved:

Option Effect
Delete this tab's goals Deletes the goals of the period you are looking at (not shown on the Medals tab). Medals stay.
Delete all goals Deletes every goal. Medals stay.
Reset medals and streak Removes all medals and the streak, and keeps your goals. Goals already completed in the current period do not earn a new medal.
Reset everything Deletes the goals, the medals, the streak and the counters. It cannot be undone.

Settings

In the settings, the Goals section lets you turn the whole feature off (the button disappears and nothing is counted or saved), hide the counter on the button, turn off the celebration, and turn off the built-in sound. That sound is included in the plugin, so it needs no file; in Sound effects you can choose your own sound for reaching a goal instead (it takes priority), and one for opening the window.

Goals, medals and the daily counters are saved in the plugin's data.json, not in your notes file, and they are light: nothing runs in the background; the progress is calculated only when you do something that can change it or when you open the window.


Alarms and reminders

Alarms and reminders screenshot

Set from the alarm clock icon on a note. The panel lets you configure:

  • Alarm date (the deadline).
  • Reminder start date (when the alarm window begins — can be before the deadline, for advance notice).
  • Reminder start time, or, if you enable "Multiple times in the same day", a whole list of times instead of just one (e.g. 8:00, 14:00 and 22:00 for a recurring medication reminder) — each one rings independently on the same day.
  • Repeat interval (every N minutes) the alarm keeps re-ringing after being stopped, for single-time alarms.
  • Repeat: none, daily, weekly, monthly, or yearly, with an "every N [days/weeks/months]" option. Only moves forward when you explicitly click "Postpone to next alarm" — never automatically.
  • Skip Saturday and Sunday: when enabled, the alarm sends no notification or sound, and the note shows no blinking border, on weekends — resuming on its own the following Monday. Applies to every scheduled time together. Postponing respects it too: if the next date falls on a Saturday or Sunday, the alarm is moved to the following Monday.

How it behaves: once the alarm window opens, the note gets a blinking colored border (customizable in settings) and a looping sound alarm starts, together with an alarm dialog window — it keeps ringing until you stop it, using the dialog's Stop button (closing the dialog with the X or Esc counts as Stop) or the note's alarm icon. With a single daily time, stopping it means it will ring again after the configured interval if you don't fully resolve it. With multiple times in the same day, stopping it resolves every time slot due so far at once, and it then stays silent until the next scheduled time arrives — it never resumes nagging in between. Border and sound are always checked on the same 5-second cadence, so they never fall out of sync with each other.

Turn an alarm off: in the note's alarm panel, the Turn alarm off button (between Save and Remove alarm) switches the alarm off without deleting it. A turned-off alarm keeps its date, times, repeat, "Skip Saturday and Sunday" setting and its Repetitions and Last alarm counters, but it does not ring, does not make the note's border blink, does not send notifications and does not move forward on its own, not even after Obsidian was closed for days. A banner at the top of the panel says so, and the button becomes Turn alarm on; the click is saved at once and the panel stays open. On the note, the alarm icon turns into a crossed-out alarm clock, and in the alarm list the row is greyed out with Off in the new Status column. When you turn an alarm back on and its date has already passed, it does not ring for what you missed: if it repeats, it jumps to its next date (counting from the date it had; moved on if it falls on a weekend with "Skip Saturday and Sunday" on), and a message shows the new date; if it does not repeat, it moves to today and rings as an overdue alarm would. Editing the alarm and pressing Save keeps it off; Remove alarm deletes it for good, off or not. Turning an alarm off can also be a goal ("Turn off an alarm").

Quick snooze: while an alarm is ringing, the alarm dialog shows the note's name, a duration dropdown (1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 45 minutes or 1 hour), a Snooze button and a Stop button; the dropdown remembers the last duration you used. If the alarm has a repeat set, a third button, Postpone to next schedule, is also shown — the same action as the button of that name in the note's own alarm panel, without having to open it: it moves the alarm straight to its next due date and time (moved on to Monday if that date falls on a weekend and "Skip Saturday and Sunday" is on), doesn't touch the Repetitions counter, and doesn't schedule anything to happen again in a few minutes like the duration dropdown does. The dialog is a regular window, so while it's open it takes the focus — if it fires while you're typing, close it or pick an option before carrying on. Clicking the note's alarm icon while it rings opens the same choices as a menu, plus "Stop" and "Open alarm panel". Sound, blinking border and dialog pause together and come back when the time is up — the scheduled date doesn't change (except with "Postpone to next schedule", which is precisely about changing it). For notes with several times in the same day, the time isn't marked as done, so it rings again after the snooze. If a snooze would go past midnight and the alarm's window ends today, the alarm moves to the next available day (respecting "Skip Saturday and Sunday") and a message tells you. Choosing "Snooze" is saved with the note, so it survives a restart of Obsidian; the alarm list shows "Snoozed until HH:MM" instead of the countdown, and editing, postponing or removing the alarm cancels any pending snooze.

Repetitions counter: every time an alarm actually fires (notification and sound start), the note's counter goes up by one — including re-rings after the configured interval, and each individual time of a multi-time day. Alarms missed while Obsidian was closed are not counted, since they never rang. The counter is kept when you postpone to the next alarm or edit the alarm, and is reset only when you remove the alarm from the note.

Last time it rang: the Last alarm column of the alarm list, right after Repetitions, shows the date and time the alarm last fired (or a dash if it never has), so you can always tell whether a given time rang or not. Like the counter, it is saved with the note and reset only when you remove the alarm.

Skipped times notice: if Obsidian was not running when a time of today's alarm came due (for example you open Obsidian at 10:00 and the 07:30 time has already passed), that time still does not ring late — but the next time you open the board, the "Missed reminders" window lists it, so a skipped time never goes unnoticed. A time that already rang before a restart is not reported, and neither is an alarm you set today for a time that has already passed.

Alarm list: the toolbar's "Alarms" button shows every note with an alarm set, grouped by category/group/subgroup, with its due date, time(s), a live "time remaining" countdown (days/hours/minutes, or "Overdue"), and a Repetitions column showing how many times that alarm has actually rung so far, a Last alarm column with the date and time it last rang, and a Status column (On or Off, see Turn an alarm off above). Alarms that are turned off are greyed out, show "—" instead of the countdown, and a line above the table says how many there are. Clicking a row opens that note's alarm panel directly. The window can be moved by dragging its title and resized with the handle in its bottom-right corner (the board remembers the size, not the position: it opens centered every time); the table scrolls inside it when there are many alarms.


Note widgets

A widget is a note that, instead of text, shows a small live tool: a clock, a calendar, a countdown, a stopwatch or a pomodoro timer. Widgets are meant as mini, self-contained utilities that help you keep an eye on things right from the board, working in the background while you do something else.

There are five widgets: Clock, Calendar, Countdown, Stopwatch and Pomodoro.

Note widgets screenshot

Creating a widget

From the New note window: right under the title there is a Widget toggle. Turn it on and a dropdown appears to choose the widget type. Press Create: the note is created with the widget already written and ready to use, with default values (stopwatch and pomodoro also get their own id, see below). If you leave the title empty, the note takes the widget's name.

By hand: a widget is just a fenced code block, with QNBWidget as its language, inside any note. Each line is an option written as name: value; the only required one is type:

```QNBWidget
type: clock
```

To change a widget, open the note for editing: you'll see this text, and you can change any option. When you leave editing, the widget is drawn again with the new options.

Rules that apply to every widget

  • Options: one per line, as name: value. Names are not case sensitive. Blank lines are ignored, and so are lines starting with #, which you can use for comments. Every option except type is optional: whatever you leave out takes its default value.
  • Mistakes are explained: if the type doesn't exist, or an option has an invalid value (a wrong date, an unknown time zone), the widget shows a short message in red saying what is wrong and how to write it, instead of failing silently.
  • Several widgets in one note, mixed with normal text, are fine: just write one block after the other.
  • Clicking: the buttons inside a widget (Start, Pause, the calendar arrows...) work without opening the note for editing, even if you chose to require a double click to edit. Clicking anywhere else on the widget works as on any other note.
  • Language: button labels, month and day names and messages follow the plugin's language. Dates use the form "Monday, October 05, 2026".
  • Accent lines: the Clock, Countdown, Stopwatch and Pomodoro widgets have a line above and below them, for a cleaner, more distinctive look (the Calendar has none). By default it is light blue and 3 pixels thick. In Settings, the Widget accent lines toggle (on by default) turns it on or off, and when it is on you can also choose the line color and the line thickness, from 1 to 8 pixels. Open boards update right away, while a widget shown in a regular Obsidian note picks up the change the next time it is drawn.
  • Light on resources: a single shared timer updates every widget that is on screen. A widget that is not displayed (a closed or hidden note) costs nothing.
  • Also outside the board: while the plugin is enabled, a QNBWidget block is also drawn in your regular Obsidian notes.

Clock

Time and date, updated in real time.

```QNBWidget
type: clock
seconds: true
hour12: false
date: true
timezone: Europe/Rome
label: Rome
```
Option Values Default What it does
seconds true / false true Shows or hides the seconds.
hour12 true / false false true for the 12-hour format with AM/PM, false for 24 hours.
date true / false true Shows or hides the date line under the time.
timezone a time zone name, such as Europe/Rome, America/New_York, Asia/Tokyo your computer's Shows the time of another city. The zone name is shown under the date.
label any text none A title above the clock, handy to tell several clocks apart.

To see the time in several cities, put several clock blocks in the same note, each with its own timezone and label.

Calendar

A month calendar with today highlighted.

```QNBWidget
type: calendar
weekstart: monday
month: 2026-10
```
Option Values Default What it does
weekstart monday / sunday monday The first day of the week.
month YYYY-MM, such as 2026-10 the current month The month shown when the widget is drawn.
  • It always shows six weeks, so the widget keeps the same height from one month to the next; the days of the neighboring months are dimmed, and weekends are slightly softer.
  • Today is highlighted, and the highlight moves on by itself at midnight.
  • The ‹ and › buttons go to the previous and next month. Clicking the month name brings you back to the current month. Navigation is not saved: when the note is drawn again, the calendar shows the month set in the block (or the current one).

Countdown

Days, hours, minutes and seconds left to a date.

```QNBWidget
type: countdown
label: Christmas
target: 2026-12-25 18:00
done: Merry Christmas!
seconds: true
```
Option Values Default What it does
target YYYY-MM-DD or YYYY-MM-DD HH:MM (also HH:MM:SS), local time required The moment to count down to. With the date only, the countdown ends at the start (00:00) of that day.
label any text none A title above the numbers.
done any text "Expired" What is shown once the date has passed.
seconds true / false true Shows or hides the seconds box.
  • Under the numbers, the target date (and time) is shown in full.
  • Labels agree with the numbers ("1 day", "2 days").
  • The calculation uses the real clock, so it is always exact, even if Obsidian was closed for a while. A date that has already passed shows the done message right away.

Stopwatch

A stopwatch with laps, that keeps counting even if you close the board.

```QNBWidget
type: stopwatch
id: work
laps: true
label: Report
```
Option Values Default What it does
id a short name, without spaces none Gives the stopwatch a name under which its state is saved (see below).
laps true / false true Shows the Lap button and the list of laps.
label any text none A title above the time.
  • Buttons: Start, which becomes Pause while running and Resume after a pause; Lap, active only while running; Reset, which brings everything back to zero.
  • Display: MM:SS.d (with tenths of a second), or H:MM:SS.d after one hour.
  • Laps: the last five are listed, newest first, each with its number, the time of that single lap and the total time. The widget keeps up to 100 laps.
  • The state is saved: with an id, a running stopwatch keeps counting even if you close the board or Obsidian, because it counts from the moment it started, not with a counter. When you come back, the elapsed time is right. The state is saved only when you press a button.
  • Without an id, the state is kept only while Obsidian stays open, and two identical blocks share it. Give every stopwatch its own id. A note created from the New note window already has a random one. If you duplicate a note, the copy keeps the same id, and so shares the same stopwatch: change it by hand to make it independent.

Pomodoro

A timer for the Pomodoro technique: work periods and breaks, with a notification when each one ends.

```QNBWidget
type: pomodoro
id: study
work: 25
break: 5
longbreak: 15
cycles: 4
label: Study
```
Option Values Default What it does
id a short name, without spaces none The name under which its state is saved (see below).
work minutes, 1 to 600 25 Length of a work period.
break minutes, 1 to 600 5 Length of a short break.
longbreak minutes, 1 to 600 15 Length of the long break.
cycles 1 to 12 4 How many work periods before the long break.
label any text none A title above the timer; it is also shown in the end-of-phase notification.
  • How it goes: work, then a short break, then work again, and so on. After cycles completed work periods comes the long break, and the count starts over.
  • Display: the name of the phase (Work, Break, Long break, each in its own color), the time left as MM:SS, a progress bar, a row of dots showing the work periods completed in the current round (all filled during the long break), and the total number of pomodoros completed.
  • Buttons: Start, which becomes Pause while running and Resume after a pause; Reset, which goes back to the beginning of the first work period and clears the counters; Skip phase, which moves on to the next phase without counting a skipped work period as completed.
  • When a phase ends, the timer stops and waits: a notification appears and stays on screen until you close it, and a sound plays once. Then you press Start for the next phase.
  • Even with the board closed: the end of a phase is announced as long as Obsidian is open, wherever you are in it. If Obsidian was closed when the phase ended, the notification appears the next time you open it, with the time the phase ended.
  • Your own sound: in Settings → Sound effects, in the Widgets group, choose a sound for Pomodoro phase end. As for every other sound, copy your audio file (mp3, wav, ogg or m4a) into the plugin's folder (.obsidian/plugins/quick-notes-board/), press Refresh if Obsidian is already open, pick the file from the dropdown, and use the Play button to hear it. Left empty, the pomodoro plays the alarm sound (the one of Alarm notification), so it never ends in silence unless you also leave that one empty.
  • Changing the durations in the block: if the current phase has not started yet, it takes the new length immediately; if it is under way, the new lengths apply from the next phase.
  • The state is saved: with an id, the timer survives closing the board and closing Obsidian (a running phase ends at its exact time). The state is saved only when you press a button or a phase ends.
  • Without an id, the state is kept only while Obsidian stays open, and two identical blocks share it. As for the stopwatch, give each pomodoro its own id, and change it by hand in a duplicated note.

Good to know

  • The state of stopwatches and pomodoros with an id is saved in the plugin's data.json. Deleting a widget note leaves its small saved state behind, which is harmless.
  • Widgets never use the internet.

Note Explorer

The toolbar's "Explore notes" button opens a complete overview of every quick note (trash and archive excluded), organized by category → group → subgroup, with each category's icon shown before its name (and before every group/subgroup under it) for quick visual orientation. A search box at the top filters by title or label name.

All categories start collapsed — only category names are visible until you click one to expand it. Searching automatically expands any category containing a match, and once expanded that way it stays expanded even after you clear the search (no memory between separate openings of the window, though).

Clicking a note brings it into view on the board, highlighted — even if it was hidden or archived.


Board Structure diagram

Board Structure diagram screenshot

The toolbar's "Board structure" button opens a resizable, read-only flowchart: a box per category (full color) with its groups and subgroups branching below it (progressively lighter shades of the same color, so you can tell the depth apart at a glance), connected by lines — no notes shown, just the organizational skeleton, for getting your bearings when you have many categories and groups. Nothing is clickable; it's purely informational.


Trash

Clicking the trash icon on a note does not delete it permanently: it moves to the "Trash" window, reachable from the toolbar, where for each note you can:

  • Restore it (back to the board, in its original category/position).
  • Delete it permanently.

Each entry shows its size in bytes (exactly as it would be written to disk), and the window's footer shows the total space that would be reclaimed by emptying the trash. The "Empty trash" button deletes everything trashed in one go.


Archive

Works similarly to the trash, but for a different purpose: archiving a note hides it from the board without marking it "to be deleted". From the "Archive" window, each note can be:

  • Restored to the board.
  • Sent to the trash (from there, eventually, deleted permanently).

Archived notes are always excluded from the board's normal filters and views.


Password lock (encryption)

Any note can be individually protected with a password, via the lock icon.

  • Algorithm: AES-256-GCM (authenticated encryption: a wrong password or tampered data explicitly fails decryption, instead of returning garbled text).
  • Key derivation: PBKDF2-SHA256, with a random salt generated per note and 250,000 iterations.
  • Locking: requires a password with confirmation; the content is encrypted and replaced on disk.
  • Show the password: the eye button next to the password field shows it in plain text, together with the confirmation field, so you can spot typing mistakes before locking; click it again to hide it. It works when unlocking too. The window always opens with the password hidden, and the choice is never saved.
  • Unlocking: requires the password; if wrong, a warning stays visible and you can try again, without altering the saved data in any way.
  • A locked note shows a closed-padlock icon before its title and placeholder text instead of its content; it can't be edited until unlocked.
  • The password is never saved anywhere: if forgotten, the encrypted content cannot be recovered in any way. The note's title and category always stay in plain text (needed for lists, trash, archive); only the note's text body is encrypted.

Board appearance

From settings you can also customize the background behind the notes:

  • Default: a dotted background.
  • Image: an image file chosen from disk (copied into the plugin's folder), with a fit mode (cover/contain/repeat) and a darkening slider to keep notes readable over it.
  • Solid color: any color, including from a preset palette.

Fullscreen mode (optional): when enabled, opening the board closes Obsidian's side panels for more room, and reopens them automatically when you close the board — but only the ones that were actually open beforehand.


Data file compression

Data file compression screenshot

From Settings, you can enable compressing the data file on disk (typically a 70–90% size reduction, since the file's repetitive metadata compresses especially well).

  • Off by default. Toggling it recompresses (or decompresses) the file immediately — never left half-done waiting for the next unrelated save.
  • Always safely auto-detected on read, via a marker at the start of the file — never based on the current setting. This means changing the toggle can never cause an existing file to be misread, whether it's on or off at the time.
  • If a compressed file turns out to be corrupted (unreadable), the plugin refuses to save over it — it stops and shows a persistent warning instead of silently overwriting your data.
  • With compression on, the Info window shows the compressed size, the real (uncompressed) size, and the resulting percentage saved.

⚠️ While compressed, the data file is no longer readable or editable with a plain text editor — only the plugin can interpret it. Keep this in mind before enabling it if you value being able to open the file by hand.


Sound effects

The plugin can play a customizable sound for dozens of distinct events, organized by group in Settings → Sound effects:

  • Note buttons: rename, change category, text appearance, view/edit, maximize/restore, archive, delete, lock, unlock, wrong password, labels.
  • Toolbar: open board, new note, toggle category, show/hide all, toggle label filter, open archive, open trash, open alarm list, open note explorer, open board structure, close board.
  • Window openings: each of the plugin's dialog windows.
  • Confirmation and trash/archive buttons: create note, apply category, close appearance window, restore, delete permanently, empty trash, send to trash from archive.
  • Alarms: due-date reminder ringing, opening the due-date panel.
  • Widgets: the end of each Pomodoro phase (Pomodoro phase end). If you leave it empty, the alarm sound plays instead.

How it works: audio files (mp3, wav, ogg, m4a) must be copied manually into the plugin's folder (.obsidian/plugins/quick-notes-board/). Each row in the Sound effects section is a dropdown listing the files found there — no file picker, no automatic copying: several events can share the same file this way without duplicates. The "Refresh" button re-scans the folder if you add files while Obsidian is open.


Language

The plugin's interface (buttons, labels, windows, messages) is available in Italian (default) and English, selectable from settings and applied immediately, no need to restart Obsidian. The data file's format and the names you assign yourself (categories, groups, labels, note titles) are never automatically translated: they always stay exactly as you wrote them.

What's new after an update

When Quick Notes Board is updated to a new version, a window opens once with the news of that version — the same text you find in the Version history below. The window lists the whole version history, newest first: the versions that are new to you are open at the top, the older ones are collapsed and expand with a click. If you skip several versions, all the ones you missed are open. It never appears on a fresh install, and never again for a version you have already seen.

  • Turn it off: in Settings, the What's new after an update toggle (on by default). With it off, no window opens after updates.
  • Open it whenever you like: the Show what's new button in Settings, right below the toggle, reopens the window with the version you have installed open.
  • From the command palette: Quick Notes Board: Show what's new does the same, and like any command you can assign it a keyboard shortcut.

The news text is written in English, while the labels of the toggle, button and command follow the plugin's language.


Data file format

All active, trashed, and archived notes are saved in a single, human-readable file, Quick notes board.md, inside the plugin's folder — organized by category, with each note's position, size, and every other property (font, colors, encrypted state, group, labels, alarm settings, etc.) encoded in a %% QNB ... %% block next to its title and text. The file is designed to be easy to read, but it's best not to edit it by hand, to avoid breaking its structure. The state of widgets that keep one (stopwatches and pomodoros with an id) is not in this file: it lives in the plugin's data.json, together with the settings.

If data compression is enabled, the file instead starts with a %% QNB-COMPRESSED v1 %% marker followed by compressed, base64-encoded content — no longer human-readable directly, but still auto-detected correctly regardless of the current setting.


Screenshots

Quick Notes Board screenshot 6


Version history

1.1.8

  • New: in the table editor the columns of the grid are now as wide as their content (with a minimum, so you can type into an empty cell, and a maximum, so a very long text does not take over the window), and they adapt as you type. The window takes less space; a wide table scrolls sideways as before.
  • Changed: in the table editor the color of the header row is now chosen with the palette button beside the header row, like the other rows; the First row color line at the top is gone.
  • New: the Goals celebrations now belong only to Quick Notes Board. They no longer open as an Obsidian window on top of whatever you are doing: they appear above everything else, with the background blurred and the focus on the celebration, and only while the board is the tab in front, with the celebration sound. Each goal reached has its own celebration (medal, name, fireworks and sound), always shown after the action that earned it is finished (for example the note is already in the trash), one at a time and closed with Congratulations; if several goals are reached, the next one starts right after. Goals reached while you are in another note or plugin are not announced there: the medal is saved at once and the celebration waits in a queue (kept even if you close Obsidian) until you are back on the board. If you leave the board during a celebration, it resumes when you return.

1.1.7

  • Fix: code-quality corrections requested by the Obsidian plugin review (how windows are made movable and how saved goals are read). Nothing changes in how the plugin works.

1.1.6

  • New: in the Medals tab you can press Bronze, Silver, Gold or Trophy to see which goals earned that kind of medal, how many times each and in which day, week, month or year. The name of a goal is kept even after you delete it. The milestones below are clickable as well: they show when each one unlocked and what led to it, or your progress if it is still locked.
  • New: Turn alarm off button in the alarm panel, between Save and Remove alarm. It switches the alarm off without deleting it: the date, times, repeat and counters stay saved, but it stops ringing, blinking and sending notifications, and it does not move forward on its own. The button becomes Turn alarm on. The alarm list has a new Status column (On/Off) with turned-off alarms greyed out and counted above the table, and the alarm icon on the note shows a crossed-out clock. Turning an alarm back on when its date has passed jumps a repeating alarm to its next date without ringing, and moves a non-repeating one to today. New Goals action: Turn off an alarm.
  • New: the alarm list window can now be moved (drag its title) and resized (handle in the bottom-right corner; the size is remembered), and the table scrolls inside it. The date column no longer breaks over two lines.
  • New: the What do I have to do? field of a goal is now a cascading menu with groups (Notes, Labels, Alarms, Activity). New actions: Turn an alarm back on, Move notes, Resize notes and Close notes (the X of the note), Add notes to favorites, Empty the trash, Restore notes from the archive, Do searches, Tidy up the notes and Check the board activity. The Goals window, the table editor, the activity chart and the board structure window can now also be moved by dragging their title, like the alarm list.
  • Fix: code-quality warnings from the plugin review: the fireworks animation now uses window.requestAnimationFrame (correct behavior in popout windows) and the confirmation button in the Goals window uses the current destructive-button style.

1.1.5

  • New: Goals, a small reward system. The new Goals button in the toolbar opens a window where you create your own goals: what to do (create new notes, edit different notes, write characters, delete notes, archive notes, assign labels, create an alarm, finish a Pomodoro, days with activity), how many times, and per day, week, month or year, optionally only for one category. The window can be resized, and it remembers its size. The Manage button deletes goals or resets medals, always asking for confirmation. The board counts by itself, shows a progress bar for each goal and, when you reach one, shows a large celebration window with fireworks (closed with Congratulations), a celebration sound, and gives you a medal (bronze for daily goals, silver for weekly, gold for monthly, trophy for yearly). The Medals tab shows your medals, your streak of consecutive days and a few milestones. The button shows today's completed daily goals (for example 2/4). It is light: nothing runs in the background, and in the settings (Goals) you can turn it all off, hide the counter or the celebration window; two sounds can be chosen in Sound effects. See the Goals section of the README.
  • New: Undo button in the table editor, at the bottom next to Cancel and Save table. Each press takes back the last change: a deletion, a move, an inserted row or column, a color, or the text typed in a cell (what you type in the same cell counts as one step). You can press it several times to go back further (up to 50 steps); it is disabled when there is nothing left to undo. It never asks for confirmation, and Cancel still discards everything.

1.1.4

  • New: Row and column colors in the table editor. The palette button above each column and beside each row opens a small window: a preview of the cells, the colors you used last (the last one chosen is offered first, even after a restart), a field for a color code, More colors… for the system color picker, Remove color, Cancel and Confirm (Enter confirms). The first row's color is chosen in the same window, with the Choose… button next to it. The color is shown softly, so the text stays readable in both light and dark themes, while the first row keeps its solid color; where a row and a column cross, the row's color wins. Colors follow their row or column when you move, insert or delete it, and show in the note's preview as well. They are saved in the same invisible comment above the table, for example <!-- qnb-table header=#4a90d9 cols=2:#ffd966 rows=1:#f4cccc -->; if you add or remove rows by hand in text mode, the colors can shift by one position.
  • New: Paste from Excel: when you paste cells copied from Excel (or any spreadsheet) while editing a note, they become a Markdown table on their own lines, with the first row as the header and the columns aligned. A cell with several lines keeps them as line breaks, and a | in a cell is escaped. Text that does not look like a table (a single row or column, rows with different numbers of cells, indented text) is pasted as it is.

1.1.3

  • New: Edit table button above every table in a note's preview (not available on locked notes). It opens a window with the table as a grid: edit the cells, insert a column to the right of any column with the + above it, insert a row below any row with the + beside it, move columns left or right, move rows up or down, and delete columns or rows. The window can be resized with the handle in its bottom-right corner, and the grid takes the extra space. The row and the column of the selected cell are highlighted. Nothing changes until you press Save table; then only that table is rewritten, tidy and with its columns aligned, and the rest of the note is left untouched. Cancel (or Esc) discards everything.
  • New: First row color in the same window, to color the table's header row; No color removes it. The color is kept in an invisible comment on the line right above the table (<!-- qnb-table header=#4a90d9 -->) and shows in the preview. In text mode you will see that line: leave it as it is.
  • Good to know: a | typed in a cell is saved as \|, and a cell cannot contain line breaks (a Markdown limit). Tables inside code blocks are ignored. If a note has a table inside a quote or a list, the button is not shown for that note's tables: edit them in text mode.
  • Fixed: moving or resizing a note, or dragging the selection rectangle, now ends correctly even if the mouse button is released outside the board or over another window; and the selection rectangle no longer leaves a leftover handler that slowed the board down after many uses. A note can no longer be dragged completely out of the visible board: at least a strip of it always stays in view. A right or middle click on the board background no longer starts a selection rectangle, and two gestures can no longer run at the same time.
  • Fixed: a note could grow by 2 pixels each time the board was opened; a maximized note could save the size of the whole board as its own; resizing from the left edge past the board border made the note grow to the right; and two saves close together could leave the older positions in the file. Saves now run one at a time, in order.

1.1.2

  • New: Rename category button in the category structure window (right-click a category button in the toolbar), at the bottom left, opposite Close. It opens a small window with the current name; Enter or Rename confirms. The new name is applied to the category and to all its notes, archived and trashed ones included, without going to the settings. An empty name, or one already used by another category, is refused with a message.
  • New: Category colors button in the category structure window, next to Rename category. It opens a window with all the look options of a category — background and text colors, background gradient with its end color, title bar animation and direction, icon and icon color — so you can change everything straight from the board, without leaving it and without going through the settings. Every choice is saved right away and is visible on the board behind the window.
  • Improved: the windows of a category (structure, colors and rename) now have a title bar that looks like the title of a note of that category — same color or gradient (animated too), icon and icon color, and text color — flush against the top edge of the window, with the close button (X) inside the bar, on the same line as the title. In Category colors this bar also works as a live preview.
  • Improved: the windows opened from a note — info panel, alarm and reminder, change category, text appearance, lock and unlock, labels, and the window of a ringing alarm — now have the same title bar as the category windows, with the color or gradient, icon and text color of the note's category, for a consistent look and a clear sense of which category they belong to. A note whose category no longer exists keeps the plain title.
  • Fixed: pressing Esc in the board took you back to the note opened before it. The board now keeps the keyboard focus, so Esc stays in the board; to leave it, close it or click another tab.
  • Fixed: pressing Esc while renaming a note's title saved what you had typed instead of cancelling. Now it cancels, and Enter confirms as before.
  • New: Show the password button (an eye) in the window that locks and unlocks a note: it shows the password and its confirmation in plain text, to avoid typing mistakes. It starts hidden every time and nothing about it is saved.
  • New: Labels button in the toolbar, right after Reorder. It opens a window with the same options the settings have for labels — create, rename, change color, reorder by dragging, delete — so you can manage them straight from the board, without leaving it and without going through the settings.

1.1.1

  • Fixed: code-quality warnings flagged by Obsidian's automated review — no behavior change for users.

1.1.0

  • New: Note widgets — small live tools inside a note. In the New note window, the Widget toggle (right under the title) shows a dropdown to choose the type, and the note is created ready to use. There are five widgets: Clock (time and date, in any time zone), Calendar (month view with month navigation), Countdown (days, hours, minutes and seconds to a date), Stopwatch (with laps) and Pomodoro (work and break cycles). A widget is written in the note as a QNBWidget code block with a few option: value lines, so you can also create or adjust them by hand. See the Note widgets section of the README for every option.
    • Stopwatch and Pomodoro keep their state when they have an id, even if you close the board or Obsidian.
    • At the end of each Pomodoro phase a notification appears and a sound plays, even with the board closed. You can choose your own sound in Settings → Sound effects → Widgets → Pomodoro phase end; left empty, the alarm sound plays.
    • The buttons inside a widget never open the note for editing.
    • Clock, Countdown, Stopwatch and Pomodoro have a light-blue accent line above and below them. In Settings, the Widget accent lines toggle (on by default) turns it off, and you can choose its color and its thickness (1 to 8 pixels).
  • New: What's new window. After Quick Notes Board is updated, a window opens once with the news of the new version (if you skip several versions, those of all of them open together). It never appears on a fresh install, and never again for the same version.
    • The window lists the whole version history, newest first: the new versions are open, the older ones are collapsed — click a version to expand it.
    • In Settings, the What's new after an update toggle (on by default) turns it off; the Show what's new button next to it reopens the window whenever you like, with the version you have installed open.
    • The same action is available from the command palette as Quick Notes Board: Show what's new, so you can also give it a keyboard shortcut.
    • The text is written in English.
  • New: the Alarms list has a new Last alarm column, right after Repetitions, showing the date and time each alarm last rang. It is saved with the note and reset only when you remove the alarm.
  • New: skipped alarm times are now reported. If Obsidian was not running when a time of today's alarm came due, the time is skipped as before, but the "Missed reminders" window now lists it the next time you open the board, instead of leaving you wondering whether it rang.

1.0.9

  • Fixed: "Skip Saturday and Sunday" was ignored when postponing an alarm. With the option on, both "Postpone to next alarm" (in the note's alarm panel) and "Postpone to next schedule" (in the dialog of a ringing alarm) could still move the alarm onto a Saturday or a Sunday. In that case the alarm never rang at all: it stayed silent over the weekend, and by Monday its deadline had already passed. Now, if the next date falls on a weekend, the alarm is moved on to the following Monday.
    • Example: a daily alarm postponed on a Friday now goes to Monday (it used to go to Saturday).
    • Works with every repeat type: daily, weekly, monthly and yearly.
    • The gap between reminder start date and alarm date stays the same, and so do the times.
    • With a monthly or yearly repeat, if the date lands on a weekend the alarm moves to Monday, and the following repeats are counted from that Monday.
    • With the option off, nothing changes: weekends are valid dates as before.
  • Fixed: for alarms with multiple times in the same day and "Skip Saturday and Sunday" on, Saturdays and Sundays no longer show up among the missed alarms, and when the alarm moves on to the next day it never stops on a weekend.
  • Improved: the two postpone buttons now behave exactly the same way.

1.0.8

  • Fixed: three code-quality warnings flagged by Obsidian's automated review (unsafe type handling and a couple of unhandled async calls) — no behavior change for users.

1.0.7

  • New: Archive and Trash buttons in the note's info panel (right-click the title), next to Duplicate note — always act on that specific note, even with other notes selected elsewhere. Meant to make the note header's own Archive/Trash icons safe to hide for a cleaner title bar: with these here, both actions stay one right-click away either way.

  • Improved: notes scrolled out of the visible area of the board are no longer rendered or animated by the browser until you scroll back to them — helps on crowded boards, especially with several animated category gradients running at once.

  • New: Title bar animation toggle for category gradients, with a 1-10 second duration — makes the gradient slide back and forth instead of staying still. Off by default; a plain CSS animation with no background timer, skipped when your system's "reduce motion" is on. A further toggle restricts the animation to when you're hovering the note, editing it, or dragging it, instead of always.

  • New: Duplicate note button in the note's info panel (right-click the title), left of Close — a full copy of the note, placed right next to the original.

  • Fixed: with Compact icons on, the note title stayed visually cut off even once the icons had faded away, because they kept reserving their full width. The hidden icon row now collapses to no width as well, so the title expands to use the freed space.

  • New: optional background gradient for categories. In Settings → Categories, right after the colors, a Background gradient toggle turns the note title bar of that category from a single color into a gradient running from the category color to an end color you choose, in one of six directions (left→right, right→left, top→bottom, bottom→top, and the two 45° diagonals). A live preview bar under the category colors — always visible, for a single color too — shows the result while you adjust colors, icon or gradient. With the toggle off nothing changes at all; turning it off doesn't erase the end color and direction, so they come back when you turn it on again. Title and icon text color are chosen from the average of the two colors — override it with the category's title color if a very light-to-dark gradient makes it hard to read.

  • New: quick snooze for alarms. When an alarm rings, a proper dialog window now opens (instead of the dark notification) with the note's name, a duration dropdown (1–5, 10, 15, 20, 25, 30, 45 minutes, 1 hour) and Snooze and Stop buttons; the alarm icon of a ringing note opens the same choices as a menu. The last duration used is preselected next time, snoozes survive a restart, the alarm list shows when a snoozed alarm resumes, and a snooze that would go past midnight moves the alarm to the next available day.

  • Improved: stopping or snoozing an alarm from the note's icon now also closes its dialog, and a second dialog can no longer pile up for the same note.

  • New: the alarm dialog gets a "Postpone to next schedule" button for alarms that repeat (daily, weekly, monthly, yearly) — the same action as the note's own alarm panel, without having to open it.

1.0.6

  • New: Reorder has a sixth mode, cascade: notes stacked oldest-to-newest with only their title bars showing, like overlapping windows.

1.0.5

  • Fix: the Board Activity window's "Show modified notes" toggle now remembers its state between openings, the same way "Hide days with no activity" already did.
  • Improved: clicking into a note's text to edit it now places the cursor precisely on headings, quotes, bullet/task lists, tables and inline formatting (bold, italic, strikethrough, highlight, inline code), not just on plain text as before. For tables, the header/data separator row (| :--: | ... |) — invisible once rendered, and of unpredictable length since its dashes can be padded to any width — is now read back from the actual note text instead of guessed, so rows after the header land exactly. Links, wiki-links, deeply nested/numbered lists and fenced code blocks keep the previous, best-effort behavior — never worse than before, just not yet exact.

1.0.4

New features for the Alarms list and the Board Activity charts.

  • New: the Alarms list has a new Repetitions column, right after "Time left", showing how many times each alarm has rung. The counter increases every time the alarm fires (notification and sound), is saved together with the note in the data file, survives restarts, and is reset only when the alarm is removed from the note. Existing alarms start from 0.
  • New: the Board Activity window has a "Hide days with no activity" toggle (bottom-left, opposite the Close button). When on, both charts show only the days where something was actually done; the choice is remembered between openings.
  • New: the Board Activity window has a "Show modified notes" toggle that replaces the "notes created per day" chart with notes modified per day, based on a new persistent daily activity log (so edits to already-existing notes are finally counted, each note once per day).

1.0.3

Bug fixes and a new feature for multi-time daily reminders.

  • Fixed a CSS warning flagged by Obsidian's plugin review (:has() selector, which can cause performance issues) — replaced with an explicit class with no behavior change.
  • Fixed the category button and its group-expand arrow having slightly different heights, which made their shared border not line up cleanly.
  • Fixed an inconsistency where the active/inactive border color didn't match between a category button and its group-expand arrow — both now behave identically: white border while inactive, category-colored border and background while active.
  • Fixed cursor placement when clicking inside a note's rendered text to switch to edit mode: on notes with several lines, the cursor could land on the wrong line entirely, because line/paragraph breaks in the rendered text weren't being counted. It now lands on the correct line; minor precision may still be off by a few characters on lines that contain markdown formatting (bold, links, etc.).
  • New: a dedicated "Missed reminders" window. If one or more scheduled alarm times passed while Obsidian was closed, this window lists what was missed, shown the next time you open the board (instead of a quick, easy-to-miss popup notification).
  • New: reminders with multiple daily times now automatically advance to the next scheduled day once every time for the current day has passed, instead of going silent forever — shown in the "Missed reminders" window together with what was missed. This also catches up correctly if Obsidian hasn't been opened for several days in a row, and re-checks every time the board is opened (not just the first time each day), so a day that finishes being missed later on is still caught.
  • Added a promotional image at the top of the README (Screenshot00.jpg) — no code changes.

1.0.2

Bug fixes and visual polish, no new features.

  • Fixed note resizing from the left edge: after moving (dragging) a note and then resizing it from its left handle, the left border could stay stuck in place instead of moving, while the right border moved instead — caused by a positioning inconsistency between dragging and resizing. Dragging now uses the same positioning method as resizing, so this can no longer happen.
  • Fixed the Alarms list's "time remaining" countdown showing "0d 0h 0m" for alarms less than a minute away (most noticeable with multiple daily times set only a few minutes apart) — now shows "Less than 1 minute" instead.
  • Fixed the toolbar's Trash/Archive buttons showing their icon stacked above the text instead of beside it.
  • Fixed the small arrow that expands a category's groups/subgroups losing its icon after the above fix.
  • Fixed the categories row sitting too close to the toolbar's top border, and the group-expand arrow visually overlapping the category button next to it — both are now properly spaced and cleanly merged into a single control.
  • Category buttons in the toolbar now use a fixed white border/text color while inactive, for consistent readability regardless of the category's own color (which some users found hard to read); active categories are unaffected and still show their own color as before.
  • Added a GitHub Actions workflow that automatically builds, attests, and publishes a release (with main.js, manifest.json, styles.css) whenever a version tag is pushed.

1.0.1

Maintenance release: no user-facing feature changes, but requires Obsidian 1.13.0 or later (was 1.7.2).

  • Settings now use Obsidian's new declarative settings API, so every option is findable from the global Settings search.
  • Fixed a bug where, with multiple daily alarm times on the same note, reopening Obsidian after one time had already passed (but before the next) could trigger a sound/notification at an unrelated, unexpected moment instead of staying silent until the next scheduled time.
  • Fixed the Alarms list's "time remaining" countdown for notes with multiple daily times: it now counts down to the next upcoming time instead of staying anchored to the first one of the day (which showed "Overdue" as soon as that first alarm had rung, even with a later one still pending).
  • Various internal fixes flagged by Obsidian's plugin review (deprecated API usage, minor code cleanup) — no behavior change.

1.0.0

First public release. Highlights include:

  • Labels: a flat, cross-cutting tagging system independent from categories/groups, with multi-select assignment, colored dots on notes, and an intersecting (AND) filter row in the toolbar.
  • Note Explorer: a searchable, collapsible overview of every note organized by category → group → subgroup.
  • Board Structure diagram: a read-only flowchart visualizing the whole category/group/subgroup hierarchy.

Support the project

Quick Notes Board is free and open source. If it makes your day a little easier and you would like to support its development, you can ☕ buy me a coffee. Thank you!


Development

npm run dev

Automatically rebuilds on every change to the source files (main.ts, view.ts, settings.ts, modal.ts, i18n.ts, crypto.ts, tables.ts).

Project structure

File Contents
main.ts The main plugin class: loading/saving data and settings, categories/groups/labels/sounds/background management, the alarm-checking engine, data file compression.
view.ts The board itself: toolbar, notes, dragging, resizing, rendering, note action icons.
settings.ts The settings panel.
modal.ts The dialog windows (new note, change category, text appearance, lock/unlock, trash, archive, alarm list, note explorer, board structure, due-date panel, label assignment, and more).
crypto.ts Encryption/decryption of note content.
changelog.ts The news shown in the "What's new" window after an update, and the logic deciding which versions to show (no dependency on Obsidian).
widgets.ts The note widgets: option parsing, the five widgets, their saved state and the shared timer (no dependency on Obsidian).
tables.ts Markdown tables of the notes: finding them in the text, reading, rewriting and the row/column operations (no dependency on Obsidian).
goals.ts The goals: periods, progress, medals and streaks (no dependency on Obsidian).
goalsModal.ts The Goals window and the window to create or edit a goal.
goalsCelebration.ts The celebration shown inside the board when a goal is reached.
fireworks.ts The fireworks animation of that celebration (no dependency on Obsidian).
goalsSound.ts, goalsSoundData.ts The celebration sound included in the plugin (embedded in the code, because only main.js, manifest.json and styles.css are installed).
windowTools.ts Dragging and resizing of the plugin's windows (no dependency on Obsidian).
snooze.ts The quick-snooze durations and the deadline calculation (no dependency on Obsidian).
gradient.ts The category background-gradient directions, color validation and CSS generation (no dependency on Obsidian).
i18n.ts Translation dictionaries (IT/EN) and the translation function.
styles.css All of the plugin's visual styling.
HealthExcellent
ReviewPassed
About
Create and organize small notes as draggable cards on a dedicated board pane without opening or creating separate vault files. Store all notes in a single human-readable Quick notes board.md and browse, categorize, group, label, archive, and set reminders directly from the board.
InterfaceFilesDates
Details
Current version
1.1.8
Last updated
5 days ago
Created
2 months ago
Updates
19 releases
Downloads
2k
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Support
Author
Alessandro VettorelAlessandro Vettorelavettorel71
GitHubavettorel71
  1. Community
  2. Plugins
  3. Interface
  4. Quick Notes Board

Related plugins

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Front Matter Title

Define a title in frontmatter to be displayed as the filename.

Vault Changelog

Maintain a changelog of recently edited notes.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Hider

Hide interface elements such as tooltips, status bar, titlebar, and more.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Advanced URI

Control everything with URI.

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.