I built sticky notes that hide in your Windows screen edge with Tauri 2 (+ 6 lessons learned)

by•

Hi Tauri folks 👋


I'm a solo developer, and I just finished HideNStick Notes, a Windows sticky-notes widget built with Tauri 2 + React. Your notes live in a slim rail hidden in the screen edge: bump the edge twice and they slide out, move away and they tuck back in.

What it does:

• Bump the screen edge (or Ctrl+Alt+N) to open your notes

• Pin any note on top of any app, then dock it back in the rail

• Ctrl+Alt+C captures selected text from any app into a note

• Tabs inside notes, rich formatting, search with Ctrl+F

• Works offline, no account. Notes are saved in a local file

A few Tauri / WebView2 lessons from building it:

1. Resizing the window to fit the rail made it blink.

I tried shrinking the transparent window down to the rail when nothing was open. WebView2 flickered and the rail jumped a few pixels on every resize. A window region wasn't better either, it brought back a classic title-bar close button in the corner. What worked: keep the window one size and make it click-through whenever the cursor isn't over the rail.

2. Hiding and showing it was worse.

Every time I showed the hidden window again, Windows flashed an old frame with the rail sitting about 11px off the edge, then replayed a throttled slide-in. Now the window is never hidden. Collapsed just means transparent and click-through, and background throttling is off.

3. My second window wouldn't open.

Pinned notes open in their own windows, and WebView2 refused to create them until their additional_browser_args matched the main window's exactly. Windows that share a WebView2 profile need identical flags. I keep them in one constant now.

4. Creating a window from a sync command deadlocked.

The app just froze. Making the command async fixed it. It's in the Tauri docs, but I only found it after the fact.

5. Killing the dev app sometimes broke the next launch.

Leftover msedgewebview2.exe processes kept the data folder busy and the next start failed with 0x800700AA (resource in use). Waiting a couple of seconds, or ending those processes, sorted it out.

6. Click-through put the widget back in Alt+Tab.

set_ignore_cursor_events rewrites the window's extended style, which dropped WS_EX_TOOLWINDOW. So the rail started showing up in Alt+Tab. I re-apply the style after every toggle.

It's coming soon to the Microsoft Store (MSIX).

🎬 Demo:

🌐

I'd love feedback, especially from anyone who's built desktop widgets with Tauri. Happy to answer questions about any of this 🙏

24 views

Add a comment

Replies

Be the first to reply

Have a question or a thought to share? Add a comment above to start the conversation.