Nextcloud Notifications / Push / Messaging Extension for Chromium-based browsers

Hello to Nextcloud Community,

I have made an extension for chromium based browsers ( like Edge, Brave, Chrome, Vivaldi & etc ).
I have been using Pushbullet for a very long time and I love it.
It’s simple and effective. Sometimes you just want to send a simple push across your devices and/or friends and that’s where Pushbullet comes in handy and gave me the motivation create a similar extension using the Nextcloud Talk API.

The idea is simple:

  • You receive messages from people or notifications from events about your nextcloud instance but you don’t want to log in or stay logged on your nextcloud dashboard just to follow the messages and/or notifications.
  • You also would want to reply quickly to a person, without having to manually browse to your nextcloud, (in some cases ) having to log in and go to Talk app page to react to the person.

You can now use this extension to quick-reply to someone, read all your current notification, clear them or send yourself or any other conversation channel a push/message all while watching a youtube video or scrolling through your favorite website.

See below for more information / a small draft:

# Nextcloud Notifications Extension

**Stay connected to your Nextcloud server right from your browser!**  
This Chrome extension brings your Nextcloud notifications and chat functionality to your fingertips, making it easier than ever to stay updated and respond quickly.

---

## ✨ Features

- **Real-time Notifications**: Get instant updates from your Nextcloud server. Click on the notification and the extension will  open your nextcloud instance in the browser and navigate to the conversation or the page related to the notificaiton!
- **Quick Replies**: Send messages directly from the extension without opening Nextcloud.
- **Customizable Fetch Interval**: Choose how often the extension checks for new notifications (from 5 seconds to 1 hour).
- **Secure Authentication**: Supports app-specific passwords for enhanced security.
- **One-Click Clear**: Clear all notifications with a single button. This will also clear your notifications in your nextcloud instance and keeps the action of clearing notifications synced across browsers and devices.
- **Dark Mode**: Sleek, modern design that's easy on the eyes.

---

## 🚀 Installation

### Prerequisites
- A Chromium-based browser (e.g., Chrome, Brave, Edge).
- A Nextcloud server with Talk and Notifications enabled.

### Steps
1. **Download the Extension**:
   - Clone this repository or download the ZIP file.
   - Extract the files to a folder on your computer.

2. **Install in Your Browser**:
   - Open your browser and go to `chrome://extensions/`.
   - Enable **Developer Mode** (toggle in the top-right corner).
   - Click **Load Unpacked** and select the folder where you extracted the extension files.

3. **Configure the Extension**:
   - Click the extension icon in your browser toolbar.
   - Go to **Options** and enter your Nextcloud URL, username, and password.
   - Save your settings, and you're ready to go!

---

## ⚙️ Configuration

### Setting Up Credentials
1. Open the extension's **Options** page.
2. Enter your:
   - **Nextcloud URL**: The full URL of your Nextcloud instance (e.g., `https://cloud.example.com`).
   - **Username**: Your Nextcloud username.
   - **Password**: Use your main password or an app-specific password for better security.

3. Choose your preferred **Fetch Interval** (how often the extension checks for new notifications).

---

## đź”’ Security Considerations

- **App Passwords**: For enhanced security, I recommend using an app-specific password instead of your main Nextcloud password. You can generate one in your Nextcloud security settings.
- **Local Storage**: Credentials are stored securely in your browser's local storage and are never transmitted outside your device.
- **Permissions**: The extension only communicates with your Nextcloud server and does not access any other websites or data.

---

See it live in action:

Could somebody direct me in the right direction for this?

  • Where can I find an official nextcloud link/url explaining what app-specific passwords are, why they are needed and how to make them ? I was looking for this to add it to the extensions “options” page, but could find no official nextcloud link anywhere.
    I would like to redirect the extension users to this page on the options page ( where they need to include their password OR for better security, their app-specific password ).

  • Where could I possibly officially post this inside the nextcloud forum

  • Are there volunteers willing to test this out or simply use it and let me know what they think of, would like to improve or which obstacles they’ve faced with the extension?

  • Are there any official requirements ( like styling, colors, fonts etc ) needed for this extension to be added / promoted by nextcloud?
    if yes, where can I find these?

  • Last but not least, I would like to hear from the community how much value such an extension would add to their overall “nextcloud experience”. Does it make their lives easierr? do they use other (similar) tools which already exist and do the job? why yes and not? I’m just curious so let me know.

Also, forgive me if this is the wrong place to post this.

As you can see, i’m new to Nextcloud, have only found out about it for 3 weeks and have been using it for 2 weeks for personal use and I love it and the only thing I was missing was such an extension which come in very handy when using with nextcloud.
Unfortunately, I did not have the time to go through all possible links and official forum documentation about where to post what so feel free to move this topic elsewhere. :grinning:

2 Likes

I’ve stumbled upon something:

I can only fetch a maximum of 25 ( of the latest ) notifications.

Now I suspect Nextcloud has some kind of “pagination” implementation in the API, but I can’t seem to find any official documentation regarding this.

Can somebody either tell me how the pagination is implemented and how it expects requests and/or provide me with a link to official documentation?
i’ve tried a “limit” and a “offset” in my request, but that did not seem to work.

Thank you!