Code Monkey home page Code Monkey logo

cinny's Introduction

Cinny

GitHub release downloads DockerHub downloads Follow on Mastodon Follow on Twitter Sponsor Cinny

A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch.

Getting started

Web app is available at https://app.cinny.in and gets updated on each new release. The dev branch is continuously deployed at https://dev.cinny.in but keep in mind that it could have things broken.

You can also download our desktop app from cinny-desktop repository.

To host Cinny on your own, download tarball of the app from GitHub release. You can serve the application with a webserver of your choice by simply copying dist/ directory to the webroot. To set default Homeserver on login and register page, place a customized config.json in webroot of your choice.

Alternatively you can just pull the DockerHub image by:

docker pull ajbura/cinny

or ghcr image by:

docker pull ghcr.io/cinnyapp/cinny:latest
PGP Public Key to verify tarball
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
UeGsouhyuITLwEhScounZDqop+Dx
=Zg+6
-----END PGP PUBLIC KEY BLOCK-----

Local development

We recommend using a version manager as versions change very quickly. You will likely need to switch between multiple Node.js versions based on the needs of different projects you're working on. NVM on windows on Windows and nvm on Linux/macOS are pretty good choices. Recommended nodejs version is Iron LTS (v20).

Execute the following commands to start a development server:

npm ci # Installs all dependencies
npm start # Serve a development version

To build the app:

npm run build # Compiles the app into the dist/ directory

Running with Docker

This repository includes a Dockerfile, which builds the application from source and serves it with Nginx on port 80. To use this locally, you can build the container like so:

docker build -t cinny:latest .

You can then run the container you've built with a command similar to this:

docker run -p 8080:80 cinny:latest

This will forward your localhost port 8080 to the container's port 80. You can visit the app in your browser by navigating to http://localhost:8080.

cinny's People

Contributors

aceart-gmbh avatar ajbura avatar alch-emi avatar anyone00 avatar c0ffeecode avatar cremesk avatar daemonspring avatar deanveloper avatar dependabot[bot] avatar drmjo avatar empty2k12 avatar ginnythecat avatar greentore avatar jamesjulich avatar jameskitt616 avatar kfiven avatar kimiblock avatar l-as avatar moritzdietz avatar nitanmarcel avatar phildenhoff avatar renovate[bot] avatar rubinelezi avatar samueldr avatar steffo99 avatar thebluematt avatar thumbscrew avatar troplo avatar zalaxx avatar zeroaurora avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cinny's Issues

Configurable time and date format

Is your feature request related to a problem? Please describe.

Date and time format is hard coded.

Describe the solution you'd like

Currently the defaults seem to be American English which is fine but having the option to at least set other common formats used around the world even without full localization/internationalization would be a welcome addition.

DM rooms don't default to the avatar of the other person

Describe the bug

Usual convention has been that DM rooms use the avatar of the person you are talking with as the room avatar. Currently they have the default letter icon if the room itself doesn't have an avatar set (which is uncommon for DMs). This happens in the room title after you have opened the DM and not in the list of DMs.

Screenshots

Cinny (current live)
image

Element
image

Sort rooms/DM per activity

Is your feature request related to a problem? Please describe.

Currently rooms (both DMs and group conversations) are sorted alphabetically. When one has lots of rooms, it becomes quickly complicated to browse this list, and to quickly switch between important/used rooms.

Describe the solution you'd like

A nice solution would be to have an option to sort rooms per activity, allowing to always put rooms with the most recent messages at the top of the list of rooms. This would put "stale" rooms at the bottom (and thus less/not visible), and "active" rooms at the top (visible and easy to access). As an example, Element already provides such an option on its web/desktop flavor.

Describe alternatives you've considered

Being able to tag rooms at "favorites" that would stick to the top of the list would also help for the same problem, but would require manual work from the user, and would not bring the extra benefit of automatically sorting stale/notstale rooms.

Error logging in: Cannot read property 'm.homeserver' of undefined

image

When logging on to my homeserver ajay.app, it fails and returns the following error:

TypeError: Cannot read property 'm.homeserver' of undefined

image

Both the client and login requests return 200, and it does successfully determine to poll matrix.ajay.app instead of ajay.app, so I'm not exactly sure why it would fail.

The response of the client request:

{
    "m.homeserver": {
        "base_url": "https://matrix.ajay.app:443"
    }
}

The response of the login request contained correct values with user_id, access_token, home_server and device_id.

Feature request: Support for replying to messages

Is your feature request related to a problem? Please describe.

Currently, Cinny does not have the ability to reply to messages.

Describe the solution you'd like

Ability to reply to messages.

Describe alternatives you've considered

None.

Additional context

A dedicated reply button would be great.
IMG_20210804_212509_710

Send user and rooms highlights aka pills

Is your feature request related to a problem? Please describe.
This issue is related #18. Plain text. The user isn't formmated neither other clients.

Describe the solution you'd like
the messages in matrix arrives in two way, with/without html.

Describe alternatives you've considered
None.

Additional context
Like #cinny:matrix.org should be a link.

Support for Spaces

Is your feature request related to a problem? Please describe.

Cinny doesn't support spaces.

Describe the solution you'd like

Add support for spaces to allow channels to be grouped together better.

Describe alternatives you've considered

Support for Client side channel folders instead.

Login fails with TypeError: a.well_known is undefined

Describe the bug
Immediately after https://home.server/_matrix/client/r0/login returns this error will be displayed and no further requests will be made.

To Reproduce
Login to HS with delegation. Might be specific to some configuration.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: Ubuntu 20.04
  • Browser Firefox
  • Version 89

Favorite / Pinned Channels

Is your feature request related to a problem? Please describe.

Currently there's no favorite channel/room section

Describe the solution you'd like

Add a section for favorite channels, this will also require an option to favorite channels in the options. (Maybe make it called pinned channels? Same-ish issue wih #30)

Feature Request: Server disconnection message

Is your feature request related to a problem? Please describe.

Matrix is brilliant. But if I use a homeserver, its availability is not perfect.
It may be unreachable (down or ipv6-only problem).

In this case, I would like to see an big message to prevent me that I can not use it.

Describe the solution you'd like

A big message to advertise me for this problem

Additional context

Today, I just can "use" the client. But I know that it does not work just because I test it with another matrix.org account.
(ipv6-only problem)

Thanks !

Being able to open images without having to open them in a new tab

Is your feature request related to a problem? Please describe.
The only way to view sent images right now is to either download them or open them in a new tab, which is quite unintuitive, specially for new users. They are great as secondary options, but should not be the primary way to interact with them.

Describe the solution you'd like
The app should at least open them in a lightbox when clicking on the image itself, opening it in a pop-up that could be closed either by clicking on a "close" button or by clicking outside of the pop-up box.

Consider renaming "channels" to "rooms"

Currently, cinny calls rooms "channels", while I've already poked at this in the TWIM channel when cinny got revealed, I'll file the issue here;

Consider changing the naming of "channels" back to "rooms" to reflect the wider Matrix ecosystem usage of it. The consideration to keep it (imo) is more specialized branding and a better appeal to discord users, but i think that it could confuse users in the terminology, when they talk about channels, and users from other clients talk about "rooms".

Either that, or add an explanatory tooltip somewhere saying that they're synonymous on cinny.

Room-level display names are conflated with global display names

Describe the bug

On one of my accounts my display name is set to "phil". I set my room display name in room A to "👻", as you can see below:

Screen Shot 2021-08-08 at 3 52 59 PM

However, in room B, my display name from room A is shown:

Screen Shot 2021-08-08 at 3 54 05 PM

Element shows the correct value, which is "phil"

Screen Shot 2021-08-08 at 3 56 05 PM

To Reproduce

This probably works with one account as well, which is how I've repro steps below, but above my "👻" account is actually a different account than what I've signed in with.

  1. Set your room display name to something different ("alice") than your global display name ("bob") on a different client (Element, FluffyChat, whatever supports it)
  2. Open that room in Cinny and observe your display name matches your room name set elsewhere (you should see "alice")
  3. Open another room and note that your display name, which should be "bob", is also "alice".

Expected behavior

Room display names should only be displayed in the room they are associated with.

Screenshots

Screenshots are provided above.

Desktop (please complete the following information):

  • OS: macOS
  • Browser: Firefox
  • Version: v1.0.0

Additional context

Add any other context about the problem here.

Consider doing preflight requests to not require CORS headers

Is your feature request related to a problem? Please describe.
The client currently requires CORS headers instead of sending an OPTION request before the actual request. This can (and does) break some of the current matrix server setups as other clients instead do preflight requests.

Describe the solution you'd like
An implementation of https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request though it seems like there might be another problem with the current well known request as the browser doesnt auto issue the request as expected.

Additional context
image

Add Channel Folder Support

Is your feature request related to a problem? Please describe.
Support for "local" folders for organization of multiple channels.

Describe the solution you'd like

Adding support for folders and in the future maybe spaces.

Describe alternatives you've considered
Support for spaces, channels organized by spaces and allowing the creation of a space within the client.

Repositioning of one of the bottom screen elements

Is your feature request related to a problem? Please describe.
The way it is right now it is a waste of space having the "someone is typing" prompt on top of the chat bar while the "X people are following the conversation on the bottom, specially since the top area doesn't shrink when no one is typing.

image

Describe the solution you'd like
Either moving the "X people are following the conversation" to the top of the chat bar, together with the "someone is typing" prompt or the opposite, to make better use of the vertical space. I made a couple of quick examples of how it would look:

model1

model2

Describe alternatives you've considered
An alternative would be to shrink the top bar area when nobody is typing, but I feel like that would be troublesome to implement, since even Element struggles with dealing with that.

Bug: The client not deploys in GitHub Pages

Describe the bug
The clients not deploys on GitHub Pages, with a normal deploy

To Reproduce
Steps to reproduce the behavior:

  1. Fork the project
  2. Push the program in gh_pages

Expected behavior
maybe needs to fix on the program or a README to deploy/troubleshoots about nodejs/webpack

Screenshots
None.

Desktop (please complete the following information):

  • OS: Fedora Silverblue 34
  • Browser Firefox Nightly
  • Version 92a1

Additional context
None.

Feature request: Change and recovery password

Is your feature request related to a problem? Please describe.
The client doesn't have to change or recovery the password

Describe the solution you'd like
Implements on the settings to do that actions

Describe alternatives you've considered
None.

Additional context
None.

Read Receipts wording is confusing.

Is your feature request related to a problem? Please describe.
The wording for read receipts makes it appear that people listed are getting notifications for messages and not that it's just a read receipt which is what it actually is.

Describe the solution you'd like
I think there are two possible solutions. Lozenge on matrix talked about the intent was for people to know who is most active in chat. If you wanted to keep this functionality a mark next to the people or darkening of people that aren't deemed to be following in the people section on the right would do that while being less confusing. Then remove the are following the conversation. part under the compose bar.

The second solution would to just remove the are following the conversation. part and leave it at that.

Can't login with non-complaint localpart

Hiya, I'm @Half-Shot:half-shot.uk on the matrixverse. My username was created before we properly validated localparts in MXIDs. Unfortunately, this means Cinny won't let me log into my account:

image

Could validation of the localpart be removed when logging in, as the client should really defer to the server on username validation.

Feature Request: Read receipts

Is your feature request related to a problem? Please describe.
No, just an enhancement that already exists in element

Describe the solution you'd like
I'd like to see if my correspondent saw my message. Like existent solutions... or a new one :)

Additional context
Like this in Element.io
read-notig

Thank you !

Feature Request: Show full description popup when clicking it

Is your feature request related to a problem? Please describe.

Right now it's impossible to read the full description in rooms, it just ends in ... if its too long.
image

Describe the solution you'd like

I would like a way to display the full description, when clicking the description text and then showing a popup:

image

Implement Ctrl-K quick search

Describe the solution you'd like

Common idiom with chat applications has been to have Ctrl-K focus a search field to quick filter channels with arrow keys to browse the suggestions and enter to select. Esc should cancel the search and re-focus the current channel input field.

Describe alternatives you've considered

I don't know any better way to quickly jump into different channel by name.

Feature Request: Notifications

Is your feature request related to a problem? Please describe.
The client doesn't controls the notifications

Describe the solution you'd like
Implements the notifications levels for every chat

Describe alternatives you've considered
None.

Additional context
Its a HS feature

Inline :emoji: completion cannot be escaped with ESC and leaks out with TAB

Describe the bug

When completing emojis starting with :something and you hit Tab to go into the suggestion list there are two bugs:

  1. Hitting Tab continuously will "leak" out into outside elements after the last emoji (focus goes to right pane)
  2. Unable to escape the input with Esc, it's the usual way to cancel auto-completion so you can correct your search text

Expected behavior

Tab should go around to first emoji when you keep hitting it past the last one. Esc should cancel the completion and re-focus the text input field. It doesn't need to hide the completion list (as the input text still qualifies for it) when you hit Esc as long as the focus is restored.

Desktop (please complete the following information):

  • OS: Linux
  • Browser: Firefox
  • Version: 91

Additional context

Issues are currently live on https://app.cinny.in.

I know Shift-Tab works to go back but keeping the usual idiom to re-focus the text input is still very useful for UX.

SSO Login Support

I would like to be able to log in via SSO, which is required for some homeservers.

Can't log in on a server without delegation

I'm trying to use https://app.cinny.in/ to login to my self hosted matrix-synapse server (v 1.38). For the sake of this lets say it's hosted at https://matrix.example.com. On the Cinny login screen I put in my username and password, and replace matrix.org with matrix.example.com.

When I click "Login", Cinny says "Error: Homeserver not found".

In my browser's network inspector I see that when I click the login button, Cinny tries to load this:

https://matrix.example.com/.well-known/matrix/client

This file doesn't exist on my server and so it returns a 404. Cinny appears to consider that fatal and no other endpoints are attempted.

Reading this it seems to be an optional way to delegate servers.

I am able to login fine with Element and Fluffy Chat, so I don't think my homeserver is configured incorrectly. But I am not a matrix expert…

Feature Request: Markdown Support

Is your feature request related to a problem? Please describe.
The messages going to plain text to HS.

Describe the solution you'd like
Add Markdown Support

Describe alternatives you've considered
None.

Additional context
None.

Feature Request: Manages ignore/block users

Is your feature request related to a problem? Please describe.
I want manage the ignored/blocked users

Describe the solution you'd like
Create a setting and link to action in a profile

Describe alternatives you've considered
None.

Additional context
None.

Feature Request: Session verification

Is your feature request related to a problem? Please describe.
My user profile gets a red shield on Element when I have an active Cinny session because the session is not verified. That makes me sad.

Also, security isn't as good as it good be without cryptographic verification.

Describe the solution you'd like
Emoji verification and (optionally) QR-code verification integrated in the UI.

Describe alternatives you've considered

  • verification that's initiated via a slash command
  • manual text-based verification

These are both fine as stop-gap solutions.

Additional context
Cinny looks incredible! I've been hoping a client like this would pop up out of nowhere someday. Thanks so much for making it!

Support reactions on messages

Is your feature request related to a problem? Please describe.

Right now reactions are only visible.

Describe the solution you'd like

Add support for sending reactions.

Impossible to connect in Firefox Private Browsing Mode with encrypted disk storage

Describe the bug
While I try to connect with my homeserver account, just after login page, I got an infinite Heating up loading.
And in the console, I can see Uncaught (in promise) DOMException: A mutation operation was attempted on a database that did not allow mutations. message.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://app.cinny.in/
  2. Fill login, homeserver address and password
  3. Click on Connect
  4. See infinite Heating up

Expected behavior
Connection OK, I can finally test your Matrix client ;D

Desktop (please complete the following information):

  • OS: Fedora 34
  • Browser Firefox 90.0.2

Additional context

  • I used Incognito mode each times I tried
  • ipv6-only homeserver
  • I just tried another time after I saw 8cf0305

Thank you !

Feature Request: Commands in the client

Is your feature request related to a problem? Please describe.
Commands for operation of HS, like join, part, invite, ban, kick and others.

Describe the solution you'd like
Implements matrix HS commands in the client. Its essentials for non listed rooms or not easy to find in directory list

Describe alternatives you've considered
None.

Additional context
None.

Ability to import encryption keys

It would be nice to have the ability to export encryption keys from another client and import them manually in Cinny so that you can decrypt old messages.

Additionally, being able to take advantage of key backup/restore would be excellent and more seamless for users.

Native application using Electron or Tauri

Is your feature request related to a problem? Please describe.

Cinny is only available as a pure web application that must run in a browser, and cannot be started in a "desktop" fashion like other messaging desktop apps.

Describe the solution you'd like

A desktop version of Cinny, which can be installed locally and run outside a traditional browser. For instance, by packaging Cinny with Electron, to mimic what element-desktop is doing.

Running in such a "desktop mode" would also mean that Cinny would be loaded/run locally, which is a nice bonus.

Describe alternatives you've considered

The provided docker image is really nice, and does provide a way to run Cinny locally with little effort. But it does not answer the original problem, namely that Cinny has to be used in a browser, and not in its own separate window.

Show mxid along with display name

Is your feature request related to a problem? Please describe.

Currently there's no way to get user's MXID.

Describe the solution you'd like

Show mxid after display name on hover.

Reaction selector does not support keyboard navigation

Describe the bug

Reaction selector requires mouse to select an emoji from the list.

Expected behavior

When you have filtered emojis with a text string you should be able to either use the arrow keys or tab key to select the wanted reaction and hit enter to apply your selection.

If it's hard to implement arrow keys as it conflicts with the text input just having tab and shift-tab do the expected thing (go through the list and go back to input beyond the first one) it would already be a great improvement.

Additional context

Standard UX for reaction selectors. Slack and Discord both support full arrow key motions to browse the suggestions.

Make the app responsive

Is your feature request related to a problem? Please describe.

No

Describe the solution you'd like

Responsive interface for different devices.

Opening Emojiboard does not focus on the input field

Describe the bug

When clicking on the reaction button/emojiboard icon, the focus does note move to the input field of the selector.

Expected behavior

When clicking on the selector, the text input focus should immediately move to the input field of the selector and when the selector is closed (by cancelling or selecting a reaction) the focus should move back to the main input field on the bottom. This ensures seamless experience when reacting to any message during a conversation even while you're writing a message.

Reaction selector does not reset the search text

Describe the bug

After selecting a reaction or cancelling reaction selector the input text is not cleared and reopening it will keep the search text.

To Reproduce

Steps to reproduce the behavior:
0. React to some message

  1. Type something in the reaction search
  2. Select a reacton or cancel
  3. React to another message
  4. See the same text

Expected behavior

Text input is cleared and the default reactions are shown.

When an error occurs, display it

Is your feature request related to a problem? Please describe.

Sometimes the loading animation for cinny doesn't stop loading (an error occured that stopped it from loading), this may confuse the user and don't know an error happened.

Describe the solution you'd like

When an error occurs, show a notice or something to display that an error happened. For example if somebody had a problem like #20, stop the loading animation and show a text linking to the issue page or something similiar.

Autocomplete for usernames

It would be nice to have Cinny autocomplete when typing usernames for people in the room. Currently without a way to view a user's account and only seeing their nick, it's impossible to tag someone.

Feature Request: Add Support for Message Editing

Is your feature request related to a problem? Please describe.

Cinny doesn't support the ability to delete or edit messages unlike other Matrix clients.

Describe the solution you'd like

Add support for message editing and deletion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.