• 2.2.0 e46cd0533a

    2.2.0 Stable

    kerem released this 2025-06-26 21:26:41 +03:00 | 27 commits to main since this release

    📅 Originally published on GitHub: Thu, 26 Jun 2025 18:37:24 GMT
    🏷️ Git tag created: Thu, 26 Jun 2025 18:26:41 GMT

    Release Info

    Item SHA-256 Desc
    📄 ntfy-desktop-2.2.0-win32-arm64.zip de62a4762adbbd253d635331012595667388b9d88d34173d5d313d196996c5d1 Windows arm64 (64-bit) binaries
    📄 ntfy-desktop-2.2.0-win32-ia32.zip 262787447910e8e080d0326ac0bdd83bcbc94f02aa5867b5a64c5941aff1f83f Windows ia32 (32-bit) binaries
    📄 ntfy-desktop-2.2.0-win32-amd64.zip 9d7ce3f6df9dde7a79e0f9a3e95745591b2ab5c69211425f319c6728e6a8eafa Windows x64 (64-bit) binaries
    📄 ntfy-desktop-2.2.0-linux-arm64.zip 06359a6d48f948ab54788180a6158d6f066db02e7e85d238971c79a7ea8415ca Linux arm64 (64-bit) binaries
    📄 ntfy-desktop-2.2.0-linux-armv7l.zip c91c6092d4b8354eba733826d392805cc19a6812fb757d2baa2507a2502d76c6 Linux armv7l (32-bit) binaries
    📄 ntfy-desktop-2.2.0-linux-amd64.zip 4c98fe1a773bde72bf3e0725c5e62afa4781a28363b341d103175c3adf72815e Linux x64 (64-bit) binaries
    📄 ntfy-desktop-2.2.0-darwin-arm64.zip 298750372e775f8c92505956a7abebfac95fe99f621a880d48190ddcd13db79a Darwin / macOS arm64 (64-bit) binaries
    📄 ntfy-desktop-2.2.0-darwin-amd64.zip f82ee7ea0a763a561723c685dd4df85a398cfd7cbef0801c055c1edf6cc07d92 Darwin / macOS x64 (64-bit) binaries
    📄 sha256sum.txt.asc Signed SHA256 hash digest
    📄 sha1sum.txt.asc Signed SHA1 hash digest
    🏷️ GUID 22ce449b-259e-57f4-bf70-d94d669cc4b0
    🏷️ UUID ae6d8eea-511d-53a8-bb01-6231ecfb9298
    🕟 Stamp 2.1.2-2025-06-09T18:44:32.000Z 🔺 2.1.3-2025-06-25T03:04:15.000Z
    📅 Last Release 15 days ago



    What's New

    This release contains the following changes:


    Note

    This major releases focuses on a complete re-write of the entire app. It also utilizes a proper file structure, separating the application files from other git repo or template files. Additionally, this release focuses on security and utilizing proper practices within Electron to ensure the end-user is not exposed to potential harmful attacks later through open processes that could be intercepted. We have no idea if people are using this app to transmit sensitive information, but it's better to be safe than sorry. Numerous performance enhancing changes have also been made, including proper graceful shutdowns for all operating systems, including MacOSX.

    There are plans for more features, but this re-write needed to come first in order to establish a proper structure.


    • feat: New Notification Badge #27 #88
      • When the user receives a new message, a numerical value is shown in the OS taskbar indicating how many un-read messages the user has.
      • Unread will clear once the user interacts with the menu
    • feat: New Inter-Process Communication
      • Electron's different processes now communicate safely with one another without the risk of exposing sensitive info
      • Main process and renderer are completely segregated from one another
    • feat: Action Triggers
      • Ntfy Desktop now can interpret what buttons you are clicking on the interface; which opens the door to many new features based on a user's navigation
      • Introduced with new badge notification counter
    • improvement: Class Segregation
      • All classes now reside in a dedicated folder, instead of in the main app code
    • improvement: Application Restructured
      • For the most part, the app has been entirely re-written
      • Ntfy app files now reside in src/ folder instead of app and repo files being mingled together
    • improvement: Migrated Electron Menus
      • Instead of residing in the main app file; menus have been migrated to their own independent class
    • improvement: Rewrote Windows and Linux Build Scripts
      • Can utilize both local and global node packages
      • Changed the compression functionality for MacOSX users
    • improvement: Switched to Node Imports
    • improvement: Re-wrote isValidUrl Functionality
      • Now supports both external and internal (localhost) instances of Ntfy
    • improvement: Electron Preloader and Renderer
      • Added preloader.js and renderer.js to handle the different processes
    • improvement: Consistent API Token Handling
      • Safer fallback for empty API tokens
    • improvement: Topics Validation
      • Check for empty/missing topics before attempting requests
    • improvement: Proper Interval Management
      • Store and cleanup polling intervals properly
    • improvement: Shutdown State Management
      • Prevent operations during app shutdown
    • improvement: Enhanced User-Agent
      • Include app version in requests
    • improvement: Shutdown Checks
      • Skip operations when app is shutting down
    • improvement: Null Response Handling
      • Handle cases where requests return null
    • improvement: Poll Rate Clamping
      • Automatically fix out-of-bounds poll rates
    • improvement: Proper macOS Support
      • Handle window lifecycle correctly on macOS
    • improvement: Enhanced URL Validation
      • Better localhost detection and fallback handling
    • pref: Request Timeout Handling
      • Added 30-second timeout for message requests with proper cleanup
    • pref: Concurrent Polling Prevention
      • Added isPolling flag to prevent multiple simultaneous requests
    • pref: Graceful Shutdown System
      • Implemented proper cleanup when app closes
    • pref: Poll Rate Validation
      • Added bounds checking (5s minimum, 1 hour maximum)
    • pref: Better Error Handling
      • Distinguish between timeout and network errors
    • pref: Improved Logging
      • More detailed error messages and URI information
    • pref: Menu Initialization
      • Menus now wait until Ntfy is completely initialized before loading
    • fix(security): Disabled Node Integration #117
      • Changed nodeIntegration: false to prevent renderer from accessing Node.js APIs
    • fix(security): Enabled Context Isolation #117
      • Ensures proper isolation between main and renderer processes
    • fix(security): Disabled Remote Module #117
      • Prevents potential security vulnerabilities
    • fix(security): Enabled Web Security #117
      • Blocks insecure content and experimental features
    • fix(security): Sandboxed About Window #117
      • Added sandbox mode for the about dialog
    • fix(build): Windows .batch Build Script
      • windows batch build script provided with app failed to build if build/ folders didn't already exist
    • fix(build): MacOS Binaries Build Failed on Windows
      • when attempting to build macOSX binaries on Windows, script would fail due to windows compression
      • changed to tar.gz
    • tests: New Test Suite
      • Each release will now run an extensive set of tests to ensure Ntfy functionality works properly
      • Utilizes both Vitest and Playwright



    Statistics

    How the files have changed:

    • Changed files : 16
    • Changes : 2474
    • Commits : 36
    • Additions : 1965
    • Deletions : 509
    • PRs (categorized) : 24
    • PRs (uncategorized) : 12
    • PRs (open) : 0




    Pull Requests

    This release is associated with the following pull requests:


    🪛 Continuous integration

    • update workflow working directory for node commands : 737080d2d7 @Aetherinox
    • update .env file working path : 3787357680 @Aetherinox
    • update working directory for package.json : e902918a93 @Aetherinox
    • change working directory on npm-tests workflow : d9b4ae12a4 @Aetherinox

    🚀 Features

    • add back and forward functionality to view menu : 338782370a @Aetherinox
    • add new electron preload.js #116 : 90db478e2c @Aetherinox
    • add new electron renderer.js #116 : 455ef7446a @Aetherinox
    • add preload.js to main dialog #116 : b1f3f961b5 @Aetherinox
    • add badge indicator to taskbar icon #27 : 9f66220461 @Aetherinox
    • add graceful shutdown functionality when app closed : 68cbe33601 @Aetherinox
    • force maximum retries on IsValidUrl : 899207546b @Aetherinox
    • add polling rate when getting messages from ntfy server : 38fdf83448 @Aetherinox
    • add proper ipc communication from main process to renderer #117 : 58a1e1620f @Aetherinox
    • add AbortController when fetching messages from ntfy server : 225050bc65 @Aetherinox
    • add graceful shutdown for all supported operating systems : 07c7d10ed9 @Aetherinox

    🐛 Bugfixes

    • (security) set nodeIntegration: false to prevent renderer from accessing node api #117 : 69fc3ca22e @Aetherinox
    • (security) ensure proper isolation between main and renderer processes #117 : 72074cd9a7 @Aetherinox
    • (security) prevent potential security vulnerabilities #117 : 90bc6f6f13 @Aetherinox
    • (security) block insecure content and experimental features #117 : 3eaf5133db @Aetherinox
    • class Log.js importing package in wrong dir, add package.json import : 494970251e @Aetherinox

    🔧 Changes

    • clean parent directory; migrate app to src #116 : 0aa9fbdf11 @Aetherinox
    • update .gitignore : 0d667e3484 @Aetherinox
    • assign new classes from classes folder to main process : c7ef861afe @Aetherinox

    n#### Optimizations

    • menus now wait on app to initialize before loading into memory : 1812db52a9 @Aetherinox

    🧹 Housekeeping

    • re-write build scripts, fix macos bugs with archive compression #116 : 2e11ecd633 @Aetherinox
    • break up classes into separate folder classes #116 : 94a7e828cc @Aetherinox
    • update eslint rules and dependencies #116 : 2e108b2ebb @Aetherinox
    • update webpage templates #116 : 05e3e3687e @Aetherinox
    • electron menus migrated to class, and out of main.js #116 : faa2c47b33 @Aetherinox
    • update comments : c218b2852e @Aetherinox
    • update url verification function to support localhost / self-hosted instances #116 : 1d89168070 @Aetherinox
    • add helper for variable getters : c38242fc93 @Aetherinox
    • update linter issues : 99e1c92f67 @Aetherinox

    📦 Build & Dependencies

    • stop tracking package-lock.json : 9624c81a4b @Aetherinox
    • add package.json imports for loader : 41a0f53fcf @Aetherinox
    • update package dependencies : 75af12678a @Aetherinox
    • define electron types : 8f2659f7ae @Aetherinox
    • (tests) add test suite to project : 50f6e1c6a5 @Aetherinox
    • update package.json scripts to use npx : 07b902d9bd @Aetherinox
    • bump project version to v2.2.0 : 95310006cb @Aetherinox



    Downloads
  • 2.1.3 858a176e21

    2.1.3 Stable

    kerem released this 2025-06-25 06:04:15 +03:00 | 74 commits to main since this release

    📅 Originally published on GitHub: Wed, 25 Jun 2025 03:16:29 GMT
    🏷️ Git tag created: Wed, 25 Jun 2025 03:04:15 GMT

    Release Info

    Item SHA-256 Desc
    📄 ntfy-desktop-2.1.3-win32-arm64.zip 154af760b589d4175b387f683051d625db62d1a3b4cd23c1fc7503c4db40ec5a Windows arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.3-win32-ia32.zip c38f0a9c658d7dc0294844b4420296b82ab3e62374749c942c76e7fb0c56a0c0 Windows ia32 (32-bit) binaries
    📄 ntfy-desktop-2.1.3-win32-amd64.zip 849b2ccb9382acfb0f7010c8b7e0e6715e174b6ca6551b06c1bc3075bae2e343 Windows x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.3-linux-arm64.zip 2a78e84af9325e9e1492bc2e5fddbbaf849f2b1ce6783479ef703bee12a54ef4 Linux arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.3-linux-armv7l.zip ab6f14889ae16ac459414c33d8f35a25f25781bef3eab1eddd8db62098203cd5 Linux armv7l (32-bit) binaries
    📄 ntfy-desktop-2.1.3-linux-amd64.zip cf82b48552492f519ff4dc0ca8f256cea67509bd5566599ff306badd69422078 Linux x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.3-darwin-arm64.zip fad809ceded932c73183a4c8abaf587362afb66006da76d3fac40b16c33c0ef4 Darwin / macOS arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.3-darwin-amd64.zip f32f67a478d3a2ef4e47306f9e2be80f17b3e89c09180664c0f67152ea79369e Darwin / macOS x64 (64-bit) binaries
    📄 sha256sum.txt.asc Signed SHA256 hash digest
    📄 sha1sum.txt.asc Signed SHA1 hash digest
    🏷️ GUID 22ce449b-259e-57f4-bf70-d94d669cc4b0
    🏷️ UUID c56413f7-ff9b-5701-b098-48500f62e9cf
    🕟 Stamp 2.1.1-2025-06-09T13:19:03.000Z 🔺 2.1.2-2025-06-09T18:44:32.000Z
    📅 Last Release 0 days ago



    What's New

    This release contains the following changes:

    Note

    This release moves electron out of beta to the stable branch. Users should notice a performance increase when loading the app as
    many optimizations were made.


    • refactor: increase refresh rate by +5 seconds to ensure we don't hit ntfy official service rate limits
      • self-hosted servers can still set the refresh rate to 1 second
    • build(deps): bump electron out of beta branch to stable
    • build(deps-dev): bump @types/node from 24.0.0 to 24.0.4



    Statistics

    How the files have changed:

    • Changed files : 7
    • Changes : 2022
    • Commits : 18
    • Additions : 1248
    • Deletions : 774
    • PRs (categorized) : 18
    • PRs (uncategorized) : 0
    • PRs (open) : 0




    Pull Requests

    This release is associated with the following pull requests:


    🪛 Continuous integration

    • update workflows : c11368a8a3 @aetherinox
    • update workflow checksum : a5ec27e26f @aetherinox
    • update key usage workflow : 5512a0ad96 @aetherinox
    • rename gpg test file : 24fe4925ba @aetherinox
    • add newline to tests : 13b2adb79e @aetherinox
    • add linebreak seperators to workflow output : 6f48b68a79 @aetherinox
    • bump node version from 20.x to 22.x : d33b61ecae @aetherinox

    🚀 Features

    • add new view and edit menu categories to control websites : 67c254d5cf @aetherinox

    🧹 Housekeeping

    • stylize error notification when issue occurs in bottom of page : 1fc9305863 @aetherinox
    • use app title instead of app name : cd02b48450 @aetherinox

    📦 Build & Dependencies

    • bump version 2.1.2 : b98c60809f @aetherinox
    • (deps) bump electron from 37.0.0-beta.3 to 37.0.0-beta.4 : 7cf0282f58 @aetherinox
    • (deps-dev) bump @types/testing-library__jest-dom from 5.14.9 to 6.0.0 : 2973905e88 @aetherinox

    ✏️ Docs

    • (readme) update build and test badges : ebbc840eef @aetherinox
    • (readme) add instructions for validating signed release files and sha256sum.txt.asc : 2b687460fc @aetherinox
    • (readme) update signature instructions : 4e6e4721ac @aetherinox



    Downloads
  • 2.1.2 d33b61ecae

    2.1.2 Stable

    kerem released this 2025-06-09 21:44:32 +03:00 | 110 commits to main since this release

    📅 Originally published on GitHub: Mon, 09 Jun 2025 18:51:50 GMT
    🏷️ Git tag created: Mon, 09 Jun 2025 18:44:32 GMT

    Release Info

    Item SHA-256 Desc
    📄 ntfy-desktop-2.1.2-win32-arm64.zip 5f088502d02b8f4c4c4267fc65fb11dbfd7b9a4e2c7a84e07b18d1469adb1448 Windows arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.2-win32-ia32.zip d9cf756424bb793dcefb3f4e5fa8c58c6a988dc6ea31ee9c110f86f92103a260 Windows ia32 (32-bit) binaries
    📄 ntfy-desktop-2.1.2-win32-amd64.zip ab82bb747b9227eea09e16094ad0fc7748fd11f3a8a1a7da4bae2ecc90ad239b Windows x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.2-linux-arm64.zip 2143f521a6604233d5b017d0b45ff8167a8d493de848274db311cb5d1e39e9db Linux arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.2-linux-armv7l.zip cddf7b65bda58cef2bec36a141d87ae2505f34ea77b5f1df788c430270144669 Linux armv7l (32-bit) binaries
    📄 ntfy-desktop-2.1.2-linux-amd64.zip d1cacb7f2e0f1c6d06939c3c74e9255e014365172a7156f3e8113bbc816ce725 Linux x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.2-darwin-arm64.zip 3ee5f18a6e1da45c5505a8e7349657ff6cf27edb40453012fabf7391be1137cf Darwin / macOS arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.2-darwin-amd64.zip fb6c0232535f177f3f56e8a021b26f1f95274c6d0aca06aec3d87295d34d3ae3 Darwin / macOS x64 (64-bit) binaries
    📄 sha256sum.txt.asc Signed SHA256 hash digest
    📄 sha1sum.txt.asc Signed SHA1 hash digest
    🏷️ GUID 22ce449b-259e-57f4-bf70-d94d669cc4b0
    🏷️ UUID 104f2bf3-918b-5a66-aed2-d580a3404413
    🕟 Stamp 2.1.0-2025-06-09T00:16:41.000Z 🔺 2.1.1-2025-06-09T13:19:03.000Z
    📅 Last Release 0 days ago



    What's New

    This release contains the following changes:

    • feat: added new primary menu Edit
      • new submenu item Undo
      • new submenu item Redo
      • new submenu item Cut
      • new submenu item Copy
      • new submenu item Paste
      • new submenu item Select All
    • feat: added new primary menu View
      • new submenu item Reload Page
      • new submenu item Toggle full-screen
    • perf: reduced logic resulting in longer load times; now performs better
    • refactor: cleaned up various segments of code
    • refactor(ui): Hotkey changed from ctrl+u to ctrl+i for submenu item App -> Settings -> Instance
    • refactor(ui): Set hotkey for submenu item App -> Settings to key S
    • refactor(ui): submenu item Toggle Developer Tools moved from Help to View menu
    • refactor(ui): use appTitle for taskbar and menu, instead of appName
    • refactor(ui): corrected text color and position for bottom window error notice
    • refactor(ui): moved Settings from primary menu to submenu within App
    • build(deps): bump electron from 37.0.0-beta.3 to 37.0.0-beta.4
    • build(deps-dev): bump @types/testing-library__jest-dom from 5.14.9 to 6.0.0
    • ci: bump node version from 20.x to 22.x
    • ci: fixed github workflow npm-tests



    Statistics

    How the files have changed:

    • Changed files : 8
    • Changes : 761
    • Commits : 47
    • Additions : 563
    • Deletions : 198
    • PRs (categorized) : 47
    • PRs (uncategorized) : 0
    • PRs (open) : 0




    Pull Requests

    This release is associated with the following pull requests:


    🪛 Continuous integration

    • update npm-tests workflow; change node versions : 01eede9ee4 @Aetherinox
    • change npm ci to npm install : 74d0b3eadb @Aetherinox
    • add electron-playwright-helpers to npm-test workflow : 5991499411 @Aetherinox
    • set tests to run on ntfy runner : ab078cc0d1 @Aetherinox
    • add DISPLAY=:0 to npx command : 5f9d9a8335 @Aetherinox
    • add dependencies libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev : f3e93c4b11 @Aetherinox
    • add dependency libasound2 : 1651d6c4f0 @Aetherinox
    • add screen capture to each workflow test : c3581ac27a @Aetherinox
    • add packages libudev-dev, libudev1 : 25336b7131 @Aetherinox
    • add playwright dependency installer : 0d184849e6 @Aetherinox

    🐛 Bugfixes

    • electron v36.x broke playwright ci tests, update to electron v37 beta : ae7453f8d5 @Aetherinox
    • defaultUrl being assigned when changing instance url #59 : d06513924a @Aetherinox
    • ensure proper storage assignment for new instance url #59 : 2c6c079a7e @Aetherinox

    📦 Build & Dependencies

    • update package electron-plugin-prompts to use electron v37 beta : e7bcbd7384 @Aetherinox
    • remove dependency override; clean up packages : 4990c8a8a2 @Aetherinox
    • bump to v2.1.1 : 78ad382312 @Aetherinox

    ✏️ Docs

    • (readme) add new section Tests : 679ec25cc2 @Aetherinox
    • (readme) format commands : 5fceaf1399 @Aetherinox

    🧪 Tests & Demo Vault

    • migrate test scripts from cjs to esm : 5169096ca4 @Aetherinox
    • change electron class dependency : b5d3befa0a @Aetherinox



    Downloads
  • 2.1.1 78ad382312

    2.1.1 Stable

    kerem released this 2025-06-09 16:19:03 +03:00 | 128 commits to main since this release

    📅 Originally published on GitHub: Mon, 09 Jun 2025 13:28:21 GMT
    🏷️ Git tag created: Mon, 09 Jun 2025 13:19:03 GMT

    Release Info

    Item SHA-256 Desc
    📄 ntfy-desktop-2.1.1-win32-arm64.zip b8ecd38f125c8b63a5d745d5b89d7f116a5076c41444acf4b5361d63115d4b5e Windows arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.1-win32-ia32.zip d37855cbb475868f55ba5db860696b333772d26b88bcc21d6e0c5d44dd20c459 Windows ia32 (32-bit) binaries
    📄 ntfy-desktop-2.1.1-win32-amd64.zip 1c07bab2bf586255c5cf388d16d2fdd08d648e44f5679e5d3113a4bee1d1c8d0 Windows x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.1-linux-arm64.zip 9897655d6e550ccb962f3cf0b38526c383c95586a1293d5535652a6ed83c35a6 Linux arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.1-linux-armv7l.zip a9c135d7b57f656784a522abe52a435b11e8ad12d035c29693658c62100084be Linux armv7l (32-bit) binaries
    📄 ntfy-desktop-2.1.1-linux-amd64.zip f6e6627e8bad4ba26100088b48be857f841347545ebfb448a649be222b4fb484 Linux x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.1-darwin-arm64.zip 447928b439257c64013c22a30f79cc8f7122f7e6577b79b330577508b7f23684 Darwin / macOS arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.1-darwin-amd64.zip 6b507d627251b736f5201ed86db774773a42873fd5fab174ede41798554276dd Darwin / macOS x64 (64-bit) binaries
    📄 sha256sum.txt.asc Signed SHA256 hash digest
    📄 sha1sum.txt.asc Signed SHA1 hash digest
    🏷️ GUID 22ce449b-259e-57f4-bf70-d94d669cc4b0
    🏷️ UUID 85062ad7-a2d7-59a1-af60-04490d8d4ab8
    🕟 Stamp 128553336e4df6c0017faa790594a267e2ef5116- 🔺 2.1.1-2025-06-08T10:55:11.000Z
    📅 Last Release 1 day ago



    What's New

    Downloads
  • 2.1.0 fc5d63d9f9

    2.1.0 Stable

    kerem released this 2025-06-09 03:16:41 +03:00 | 175 commits to main since this release

    📅 Originally published on GitHub: Mon, 09 Jun 2025 00:26:26 GMT
    🏷️ Git tag created: Mon, 09 Jun 2025 00:16:41 GMT

    Release Info

    Item SHA-256 Desc
    📄 ntfy-desktop-2.1.0-win32-arm64.zip 50ae9e1ac67666d7cdd6f2256fbae7b3ac6e32c182066289b4be1c7174c89a2d Windows arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.0-win32-ia32.zip 7bc08100de46c9b4cbed5c337dc2da3255aa93b5667e68c11d26e8e09f8c348d Windows ia32 (32-bit) binaries
    📄 ntfy-desktop-2.1.0-win32-amd64.zip 8e4886b9f863a7282a66b3ea2c38de57c97afcfb1ca07b409369b2e83a01919d Windows x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.0-linux-arm64.zip e1e848fa4a058ada0e8753a4e69451e24f95b85c890a5a69e786b2c0beadaeca Linux arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.0-linux-armv7l.zip 038bdd40ee5738707baa8d0da1d692d540e19b1a705300e5435c5ea8f2061a43 Linux armv7l (32-bit) binaries
    📄 ntfy-desktop-2.1.0-linux-amd64.zip 8bec51adcf0a7f52678f1fc990bd1536225277dacf1ffaf8dd3b2ad8d0806ad4 Linux x64 (64-bit) binaries
    📄 ntfy-desktop-2.1.0-darwin-arm64.zip c0192f787558cf30c4681d6327e479bef891f5ceca5bffa0d73975fe06a3f5eb Darwin / macOS arm64 (64-bit) binaries
    📄 ntfy-desktop-2.1.0-darwin-amd64.zip d581981c20c148fe12f566d7977ef1c91834a830bd000739ee86d76d0e024a82 Darwin / macOS x64 (64-bit) binaries
    📄 sha256sum.txt.asc Signed SHA256 hash digest
    📄 sha1sum.txt.asc Signed SHA1 hash digest
    🏷️ GUID 22ce449b-259e-57f4-bf70-d94d669cc4b0
    🏷️ UUID 85062ad7-a2d7-59a1-af60-04490d8d4ab8
    🕟 Stamp 128553336e4df6c0017faa790594a267e2ef5116- 🔺 1.0.0-2025-06-08T10:55:11.000Z
    📅 Last Release days ago



    Developer Message

    We finally have pre-built binary files. I've spent the last two days writing up the workflows to automate the process, and I've fixed numerous bugs that were in the app.

    Hotkeys should work now, as well as opening the developer console.

    I have a planned re-write coming up, which will add new features, and fine-tune the notification system. Download the latest version from the file list below.




    What's New

    This release contains the following changes:

    • feat: add new LocalHost setting to Instances menu
      • allows you to bypass valid URL resolving, if you are hosting an instance of ntfy locally.
    • feat: add new menu item Send Test Notification to main interface Help menu
    • feat: new electron dialog prompts layout
      • added individual description to each setting
    • change: menu item URL re-named to Instance
    • build: added new root generation scripts root.mjs and root.cjs
    • build(deps): bump semver from 7.3.5 to 7.7.2
    • build(deps): add new package electron-plugin-prompts
    • build(deps): updated eslint to v9, created new eslint flat config
    • build(deps): updated toasted-notifier package to v1.1.0
      • migrated from package uuid to internal node class crypto for id generation
    • build(deps-dev): bump electron from 31.2.1 to 36.3.1
    • build(deps-dev): deprecated package@stylistic/eslint-plugin-js; removed
    • ci(workflows): add new npm publish workflow which packages the app with electron and adds the binary files to the github release
    • fix: hotkeys were not functioning properly
    • fix: incorrect command rm used in windows batch script; changed to rd
    • fix: add numerous try/catch conditions to code to avoid errors not being properly captured
    • fix: app was not saving proper settings to Storage() class
    • fix: corrected issue which caused windows binaries to not work after being packaged with electron



    Statistics

    How the files have changed:

    • Changed files : 86
    • Changes : 25878
    • Commits : 281
    • Additions : 25876
    • Deletions : 2
    • PRs (categorized) : 261
    • PRs (uncategorized) : 20
    • PRs (open) : 0




    Pull Requests

    This release is associated with the following pull requests:


    🪛 Continuous integration

    • (workflows): add linux deployment stage : 9259f72cd9 @Aetherinox
    • (workflows): add MacOSX / Darwin deployment stage : 01c4a68d1c @Aetherinox
    • (workflows) add new publish workflow to push binaries to latest release #59 : 638269d221 @Aetherinox

    🚀 Features

    • add api token storage, shortcut keybinds, dev tools : 2adab42336 @Aetherinox
    • add desktop push notifications : 5cbbca6971 @Aetherinox
    • add notification persistent setting : 984780452d @Aetherinox
    • add sent history to avoid duplicate sends : d07e7777eb @Aetherinox
    • add polling support for official ntfy.sh : c39e511ecf @Aetherinox
    • add pollrate timer : dfd65cb39d @Aetherinox
    • (storage) add getInt func : 77e41dcd3d @Aetherinox
    • add node package chalk : 5fe4aeadfc @Aetherinox
    • add LOG_LEVEL and new logging system : 014b46fa20 @Aetherinox
    • add localhost setting to Server Instance menu; #80 : c33092b2eb @Aetherinox
    • add error reporting for various server codes from ntfy : 877036f1fd @Aetherinox
    • add test notification to help menu : 714ac2d61d @Aetherinox

    🐛 Bugfixes

    • electron v31 bug with custom dialog crashing app : 29052114e5 @Aetherinox
    • fix html template error : f24abc52b7 @Aetherinox
    • electron crashes on dialog close : 3e3764b007 @Aetherinox
    • correct persistent check : 7f12a7dac9 @Aetherinox
    • add storage module; fixes #58 : effcd556bf @Aetherinox
    • add try/catch to async func GetMessageData; #80 : 5f44bb99db @Aetherinox
    • switch rm to rd / del for windows batch #59 : 9a7e9cb47e @Aetherinox
    • developer console, hotkeys not working : a0983afb36 @Aetherinox

    🔧 Changes

    • add new parameter appID : 6cbd769e46 @Aetherinox
    • remove old notification API : 51b7d8809a @Aetherinox
    • devtools can be enabled without app restart : d2df25bb69 @Aetherinox
    • add interval const for 5s : c2c12f1178 @Aetherinox
    • (notifications) convert unix timestamp into human readable : 606deb9a29 @Aetherinox
    • include datetime format in settings : b19a987547 @Aetherinox
    • add --url startup parameter : 0e6463a854 @Aetherinox
    • update fetch headers, partially addresses #80 : 574a3e449b @Aetherinox
    • updated eslint to v9 with new flat config: 34811046be @Aetherinox

    🧹 Housekeeping

    • apply instanceURL fallback : 22e0083518 @Aetherinox
    • remove old _Interval : d76ded9917 @Aetherinox
    • (lint) fix all style rules : c68eba1032 @Aetherinox
    • (lint) update tests : a002b7141e @Aetherinox
    • convert project from cjs to esm : 192f899ccb @Aetherinox
    • (css) update dialog prompt stylesheet : f9a5675b56 @Aetherinox
    • update variables names, clean up code : c57e322668 @Aetherinox

    📦 Build & Dependencies

    • (deps-dev) bump eslint from 8.57.0 to 8.57.1 : 5a7b3520eb @dependabot[bot]
    • add ats to npmignore : 79f5480762 @Aetherinox
    • remove prettier, update eslint : 058ba61e9f @Aetherinox
    • add eslint 9 flat config : 993d5cd8a9 @Aetherinox
    • (deps-dev) bump electron from 31.2.1 to 36.3.1 : d9c2877603 @Aetherinox
    • (deps-dev) bump @stylistic/eslint-plugin-js from 4.2.0 to 4.4.0 : 3a48212949 @Aetherinox
    • (deps-dev) bump eslint from 9.17.0 to 9.27.0 : 7776983929 @Aetherinox
    • (deps-dev) bump jimp from 0.22.12 to 1.6.0 : 6d5b1fd103 @Aetherinox
    • (deps) bump semver from 7.3.5 to 7.7.2 : d03c9f49ec @Aetherinox
    • (deps) bump uuid from 10.0.0 to 11.1.0 : ecc29b8201 @Aetherinox
    • (deps-dev) bump @playwright/test from 1.45.3 to 1.52.0 : b1b841aa34 @Aetherinox
    • (root) add cjs and mjs build scripts : f4b5578e36 @Aetherinox
    • (package) switch root script from cjs to esm (mjs) : a395cdbc09 @Aetherinox
    • (deps-dev) bump eslint from 9.27.0 to 9.28.0 : a21a3f83ec @dependabot[bot]
    • (deps-dev) bump electron from 36.3.2 to 36.4.0 : ccb559bfc5 @dependabot[bot]
    • (deps-dev) bump @stylistic/eslint-plugin-js from 4.4.0 to 4.4.1 : 629a9f3acd @dependabot[bot]
    • (deps-dev) bump @types/node from 20.17.57 to 22.15.30 : 2016fb9263 @dependabot[bot]
    • (deps-dev) bump eslint-plugin-n from 17.15.0 to 17.19.0 : 516d7adc56 @dependabot[bot]
    • (deps) bump toasted-notifier from 10.0.2 to 10.1.0 : b4cc6788bb @Aetherinox
    • (deps) deprecate @stylistic/eslint-plugin-js with @stylistic/eslint-plugin : f051e27c98 @Aetherinox
    • (deps) add electron-plugin-prompts : 475f9f7797 @Aetherinox

    ✏️ Docs


    🧪 Tests & Demo Vault

    • enable parallel functionality : 774c4081b2 @Aetherinox
    • update electron tests : 4699efee1b @Aetherinox



    Downloads