Achilng/floral-notepaper: a Tauri 2 and React sticky-note app with Markdown preview
花笺,轻量优雅的跨平台桌面便签工具,支持 Markdown 编辑与预览
At a glance
- What is it?
- Floral Notepaper is a local desktop sticky-note tool built on Tauri 2 and React 19, with GFM Markdown editing, a tray and global hotkey, tile mode and .md import and export. It is small in scope, and that is the point.
- Who is it for?
- Adopt Floral Notepaper if you want a tray-resident scratchpad that renders Markdown and never asks for an account. Do not adopt it if you need Linux, sync, or a notes database.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 20 days ago.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem Floral Notepaper picks, and the one it refuses
The README states the motivation directly: existing note and sticky-note software is either heavy with a steep learning curve, or dated and long unmaintained. Floral Notepaper answers the second half of that complaint by being small and current. It is a tray-resident window you summon, type into, and dismiss.
The audience is narrow on purpose. The README lists the scenarios: a visible clipboard for staging text, jotting something down while a game or a video is running, capturing a passing thought, and a desktop to-do list. Every one of those is a short-lived interaction. Nothing in the README mentions notebooks, tags, backlinks, a graph view, or search across a corpus. If your notes need structure that outlives the day, this is the wrong shape of tool.
The refusal is the interesting part. A sticky note that stays out of the way is a different product from a knowledge base, and the feature list stays inside that boundary: Markdown editing and preview, a hotkey, tile mode, and .md import and export.
How the Tauri 2 shell and the React renderer divide the work
The repository layout makes the split visible. src-tauri/ holds the Rust side, src/ holds the front end, and the two are joined by the Tauri 2 IPC layer through the @tauri-apps/api package. The front end is React 19 with TypeScript, built by Vite.
The Markdown pipeline is declared in package.json and it is more than a textarea. react-markdown does the rendering, remark-gfm adds GitHub Flavored Markdown, remark-math and rehype-katex handle math, rehype-raw allows raw HTML, and rehype-sanitize cleans it, with rehype-slug generating heading anchors. That combination matters: raw HTML is permitted, then sanitized, so the preview renders a wider subset of Markdown than a plain renderer while still passing content through a sanitizer.
Native capabilities come in as Tauri plugins rather than hand-written bindings. The dependency list includes @tauri-apps/plugin-clipboard-manager, @tauri-apps/plugin-dialog and @tauri-apps/plugin-opener. Those three map onto the advertised behaviour: copy text out of a note, pick a .md file to import or a destination to export to, and open a link in the system browser. i18next and react-i18next sit alongside them, which lines up with the three README files in the repository (Simplified Chinese, Traditional Chinese and English).
Installing Floral Notepaper on Windows or macOS
There is nothing to compile for normal use. The README points at three distribution routes: the project's GitHub Releases page, the Mirror酱 mirror, and the Microsoft Store, where the listing ID is 9NRCC0ZSG81R. The README notes that the Mirror酱 route also acts as a way to sponsor the developer.
The release assets follow a naming pattern that tells you which file you want. On Windows x64 the recommended installer is floral-notepaper_<version>_x64-setup.exe, with a portable floral-notepaper_<version>.exe and an MSIX package as the alternatives. On macOS you pick by architecture: floral-notepaper_<version>_aarch64.dmg for Apple Silicon and floral-notepaper_<version>_x64.dmg for Intel.
# after downloading the installer for your platform, verify the file name matches your architecture
# Windows x64: floral-notepaper_1.2.0_x64-setup.exe
# macOS Apple Silicon: floral-notepaper_1.2.0_aarch64.dmg
# macOS Intel: floral-notepaper_1.2.0_x64.dmgOnce installed, the first real use is the hotkey. The README states the default global shortcut is Ctrl+Space, and that the same window can be summoned from the system tray. Press it, type Markdown, and toggle between edit and preview to check the rendering.
If you prefer to build from source, the README does not put the steps in the main file. It directs you to CONTRIBUTING.md, and the package.json scripts show what that build involves: npm run tauri drives the Tauri CLI, npm run dev runs a contributor-fetch script before Vite, and npm run build runs the same script, then tsc, then vite build.
npm install
npm run tauri devThe repository also carries a test script (vitest run), a lint script (oxlint) and a format script (oxfmt), with husky and lint-staged wired so that staged Rust files are formatted through cargo fmt --manifest-path src-tauri/Cargo.toml.
Tile mode, the hotkey, and what the README leaves unsaid
Tile mode pins a note to a spot on the desktop for quick reading and copying, and the README's screenshot section shows multiple small windows open at once. Combined with the hotkey, that is the whole interaction model: summon, read or write, pin, dismiss.
What the README does not document is where your notes actually live. There is no stated storage format, no path, no backup instruction, and no description of what happens to a note between sessions. For a local-first tool that is a real gap, because the answer determines whether you can copy a file to another machine or recover after a bad edit. The import and export feature covers .md files, which gives you a manual escape hatch, but the README does not say whether an exported file is a faithful round trip of the note's Markdown source or a rendering of it.
There is also no documented sync, no mobile client, and no Linux build. The topics list on the repository names macos, windows and tauri, and every download row in the README is Windows or macOS. If you work across Linux and macOS, this app covers only half your machines.
The update story has one documented exception. The README warns that MSIX installs, whether from the Microsoft Store or a sideloaded .msix file, do not support in-app updates, and that you should get new versions from the Store or from GitHub Releases. That is a maintenance cost you accept by choosing that package format.
How this differs from a Markdown editor with a file tree
The closest alternative in spirit is a general Markdown editor such as Obsidian or a plain editor like Typora, and the difference is where the note lives. Those tools treat your vault or folder as the primary object: you open a directory, browse a file tree, and edit documents inside it. Floral Notepaper inverts that. The note window is the primary object and the file system is peripheral, reachable only through explicit .md import and export.
That inversion has consequences. You get a hotkey and a tray icon instead of a file picker, and you give up directory-level operations, bulk rename, and any guarantee that your notes are individually addressable files on disk. For a scratchpad that is a fair trade. For a long-lived archive it is not.
The second difference is the runtime. Because the shell is Tauri 2 rather than Electron, the Rust side handles native calls and the bundle does not carry a full browser runtime. The README does not publish a binary size or a memory figure, so treat any number you see quoted elsewhere as unverified. What the repository does show is the dependency surface: three Tauri plugins, a React 19 renderer, and a Markdown pipeline of seven packages.
Release cadence, licence and the cost of staying current
The project is not archived and the last push was on 2026-09-11, so the codebase is being touched. Release history shows v1.0.4 on 2026-05-21, v1.1.0 on 2026-06-13 and v1.2.0 on 2026-09-03, which is roughly a minor release per quarter with patch releases in between. That is a pace you can follow without much effort.
Upgrade cost is low for the GitHub and Mirror酱 builds, where the app updates itself, and higher for MSIX, where it does not. There is no documented migration step between versions, and no changelog detail in the README beyond a link to the Releases page, so read that page before jumping a minor version if you keep notes you care about.
The licence is MIT, declared in the repository and shown as a badge in the README. MIT is permissive: it allows commercial and private use, modification and redistribution, and it comes with no warranty. The repository also carries a THIRD_PARTY_NOTICES.md file and a PRIVACY file, so if you redistribute a build you should read both rather than assume the MIT grant covers every bundled dependency. This is a description of what the files say, not legal advice; if redistribution is part of your plan, have someone qualified read the notices.
Where Floral Notepaper stops being the right tool
The failure mode is scale. A pile of pinned windows is a fine interface for five notes and a poor one for five hundred. The README documents no search across notes, no tagging, no linking, and no index. Once your notes outgrow what you can see on screen, retrieval becomes manual, and the .md export is the only path out.
The second failure mode is trust in the preview. The pipeline includes rehype-raw, which permits raw HTML in Markdown, followed by rehype-sanitize. That ordering is the safe one, but it means the preview is a sanitized rendering, not a browser. Notes that rely on scripts, embedded frames or custom styling will not behave the way they would in a full web view, and the README does not document which tags the sanitizer strips.
The third is platform. No Linux package is offered, and no mobile client is mentioned. If your workflow spans those, this app is a partial solution at best.
Editorial conclusion
Adopt Floral Notepaper if you want a tray-resident scratchpad that renders Markdown and never asks for an account. Do not adopt it if you need Linux, sync, or a notes database. Check the release page for your architecture first, and if you install the MSIX, remember that in-app updates do not work there.
Frequently asked questions
What is Floral Notepaper and who is it for?
It is a local desktop sticky-note tool built on Tauri 2 and React, aimed at people who want a fast scratchpad rather than a full note-taking system. The README lists use cases such as a visible clipboard, jotting notes while watching video, and a desktop to-do list.
Which platforms does Floral Notepaper support?
The README offers Windows x64, Windows AArch64 and macOS builds for both Apple Silicon and Intel. No Linux package is listed, and the repository topics name only macos, windows and tauri.
Does Floral Notepaper support Markdown?
Yes. The README states it supports GitHub Flavored Markdown with a live switch between edit and preview mode, and package.json shows remark-gfm, remark-math with rehype-katex, and rehype-sanitize in the rendering pipeline.
What is the default keyboard shortcut in Floral Notepaper?
The README states the default global shortcut is Ctrl+Space, and that the same note window can also be summoned from the system tray.
Why does Floral Notepaper not update itself after an MSIX install?
The README explicitly warns that MSIX installs, whether from the Microsoft Store or a sideloaded .msix file, do not support in-app updates. It directs users to get new versions through the Microsoft Store or GitHub Releases instead.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/achilng-floral-notepaper)