Code Monkey home page Code Monkey logo

client's Introduction


Equestria Social Patreon Wallet Ko-Fi Twitter

Pony House

A Matrix client, focused on being a completely customizable open source superapp with everything you need to be happy in your online life with your friends.

Motivation

I am someone who is definitely tired of seeing censorship spread across the internet. As I write this message on May 01 2023, it has been one of the most difficult days to have privacy, especially in Brazil due to the current political scenario.

I see the Matrix project as one of the best alternatives to maintain at least try to keep communities and groups of friends on the internet. So my goal is to make this fork as good as possible so that not only can I be happy, but also all the people who are having a similar situation to me.

Getting started

Web app is available at https://client.pony.house/ and gets updated on each new release.

To host Pony House on your own, download 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 .env in webroot of your choice.

If you want to use devtools in production mode in the destkop version before the application is opened, type --devtools after the file path.

Custom App Style

Would you like to customize your login page to your website? Then you can check out some values available in the config/custom-css.scss file.

Replace this value to change the appID: pony-house-matrix

Replace some values in the file: electron-builder.json5

App title in electron/main/index.ts.

If you would like to edit the version checker url, you can edit the src/client/state/cons.js file.

If you would like to edit the homeservers list, you can edit the .env file.

If you want to put a custom name or welcome message for the app, edit the .env file. (This will only affect the application within react.)

If you want to change some more information about the application's HTML, you'll be looking for the index.html file.

If you are trying to edit application image files, you are looking for the public/img/ folder.

If you want to modify the manifest file, it is present in public/manifest.json.

Things more related to the mobile version of the application I recommend you use the Ionic extension from Visual Studio Code.

Auto select custom domain

Example: https://client.pony.house/#matrix.org

When the page loads, the application will automatically try to load the selected custom homeserver. This is useful if you want to refer a friend directly using your homeserver url.

Mod and patch support

You can freely develop mods for users to install on the Pony House. The application will also support you to build a version of Pony House with pre-installed mods.

For more information see the folder /mods.

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. Also recommended nodejs version Hydrogen LTS (v18).

If you don't have nodejs, please install this:

https://nodejs.org/

If you don't have yarn installed on your computer, it is recommended that you install it:

npm install yarn -g

Execute the following commands to start a development server (or a Ionic environment):

yarn # Installs all dependencies
yarn start # Serve a development version

To build the web app:

yarn build # Compiles the app into the dist/ directory

If the first option fails, please try this one:

yarn build:8gb # Compiles the app into the dist/ directory

Electron (Desktop)

While you're using the app's dev mode, it's normal for the app to show that it's disconnected for a few seconds before fully loading the page. Notifications may not mute OS sound in application dev mode. The same thing can happen for notification click events to fail only in dev mode.

The application has only been tested on the Linux and Windows platform. But that won't stop you from trying to deploy to Mac.

Execute the following commands to start a development server (or a Ionic environment):

yarn # Installs all dependencies
yarn electron:start # Serve a development version

To build the desktop app:

yarn electron:build # Compiles the app into the release/ directory

AppData

If you need to manage client files on your desktop version. You can find specific storage files in the directory below:

%AppData%/pony-house-matrix/tinyMatrixData/

FAQ

Is my data shared with third parties?

Nope. This repository creator is not sharing data with third parties. This makes the project solely dependent on the community if any new glitch is discovered. The only peoples capable of collecting data are the homeserver owners and third-party stuff.

Why is the list of homeservers empty by default instead of having default homeservers like matrix.org?

This helps new matrix users not get lost when they are being guided to use a specific new homeserver.

My website that is hosting this client was blocked from access by browser extensions.

This client sends notification permission requests at the exact moment the page is loaded. Some security extensions may consider this a privacy violation. Sometimes this type of thing doesn't happen on the Pony House domain because I (JasminDreasond) always try to contact the staff of these extensions so the domain can be added to the whitelist.

Can I completely disable IPFS and Web3?

Yep. To disable it via the client, you need to go to the settings tabs. To permanently deactivate the features, you need to modify the .env file so you can deploy a client without access to the features.

My browser keeps opening crypto wallet randomly

It looks like you are using a browser that has a native crypto wallet. This is not an extension installed in your browser, I'm referring to something in your browser itself. (Example: Brave and Opera) And even with crypto features turned off, for some mysterious reason your browser still thinks it's a good idea to send you a ad to try force you to use the browser crypto wallet. If you want to disable this, research how to disable your browser's native crypto wallet.

This client has web3 functionalities. Is this matrix client a crypto wallet?

Nope. Pony House has access to crypto wallet APIs that are installed in your browser or on your computer. And this function can be turned off in the settings.

Does the client support the purchase and sale of NFTs?

Nope. But you can install mods from third-party creators that code this type of feature.

What is my guarantee about using crypto resources on Pony House?

Pony House's crypto resources are developed to be as secure as possible from trusted sources. Normally limited to personal uses between users only. (This is a CHAT SOFTWARE, not a crypto marketplace)

When installing third-party mods involving web3, you are assuming that everything is at your own risk between you and the third-party developer. (including any accident of loss of funds due to lack of care on the part of both the user and the third-party developer)

Cinny Fork

Pony House started on a Cinny fork from the commit below:

https://github.com/cinnyapp/cinny/tree/3969c9501a7053b2d4edbba17df11e372f204d69

https://github.com/Pony-House/OLD-Client

client's People

Contributors

dependabot[bot] avatar jasmindreasond avatar kaki87 avatar

Stargazers

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

Watchers

 avatar

client's Issues

add something like a (*) to the webpage title when there's unread messages

Describe the problem

i'm color blind and the red dot on the icon can be difficult to see

Describe the solution you'd like

add a (*) to the page title in addition to the red dot on the icon, and change it to a counter when there's unread pings or DMs

Alternatives considered

maybe a tampermonkey script?

Additional context

No response

add support for matrix threads

Describe the problem

matrix has thread support since 2022, pony house doesn't seem to support them

Describe the solution you'd like

add support for threads to pony house

Alternatives considered

No response

Additional context

No response

sticker search doesn't return results for custom sticker packs

Describe the bug

just as it says in the title

Reproduction

  1. add an emoji pack with the "use globally" checkbox
  2. click the stickers button in chat
  3. try to search for an emoji from the custom pack

Expected behavior

No response

Platform and versions

OS: Kubuntu 22.04
Browser: Google Chrome 120.0.6099.62
Pony House Version: 1.3.28
Matrix Homeserver: filly.chat

Additional context

No response

add a marker for when channels/spaces with unread messages are scrolled off the screen

Describe the problem

can be hard to find a space/channel with unread messages when it's scrolled off screen

Describe the solution you'd like

add some sort of indicator to the top/bottom of the left sidebar (for spaces with unread messages) or channel list (for channels with unread messages) that shows if any of the spaces/channels off screen in that scroll direction have unread messages

Alternatives considered

No response

Additional context

No response

while editing a message offer the option to delete the message

Describe the problem

on most other chat platforms when you edit a message, remove all the text from it, and hit enter/save it offers to delete the message

Describe the solution you'd like

add a dialog asking to delete the message if you edit a message and remove all the text from it, allow confirming this dialog with a 2nd press of the enter key

Alternatives considered

No response

Additional context

No response

Flatpak

Describe the problem

About having a flatpak package like cinny does.
I'd like to see a flatpak package since, as opposed to snap, flatpak's backend https://github.com/flatpak/flat-manager is open source and used by distros other than fedora https://blog.elementary.io/elementary-appcenter-flatpak/

Describe the solution you'd like

A solution would be creating a flatpak package. I'd also like to hear any objections about or support for this idea. I think we can turn this issue into discussion, thank you, everyone!

Alternatives considered

No response

Additional context

No response

threads in this matrix client

Describe the problem

Cinny doesnt look like it will develop threads, but there a lot of requests on cinny issues for a threads featurem which works in matrix.

any roadmap for that feature with pony house?

sorry to populate your issues list with feature requests, but I have been following matrix clients for a while to try an use a good client. cinny came close and this implementation is even better. kudos!

also are you adding a mobile version with capacitor? I could test and give feedback if so.

Describe the solution you'd like

  1. threads roadmap if planned.
  2. native mobile app with capacitor, beta testing if needed

Alternatives considered

No response

Additional context

No response

add the ability to upload multiple files at once

Describe the problem

when i drag a group of images into the pony house window it only uploads the first image

Describe the solution you'd like

allow multiple uploads

Alternatives considered

No response

Additional context

No response

pressing up arrow key to edit message puts the text cursor at the beginning of the text input

Describe the bug

when pressing the up arrow key the edit message text box puts the cursor at the start instead of the end, basically everything else that supports editing chat messages puts the cursor at the end

also after a sending a message the chat text box is defocused, it refocuses the chat text box when u start to type but if u want to quickly edit a message right after sending it u can't, u have to click the chat text box before the up arrow key will work

Reproduction

No response

Expected behavior

No response

Platform and versions

OS: Kubuntu 22.04
Browser: Google Chrome 120.0.6099.71
Pony House Version: 1.3.28
Matrix Homeserver: filly.chat

Additional context

No response

left/right arrows to move between images in a chat when viewing an image

Describe the problem

sometimes people post comics or a series of images where it would be nice to be able to move between them without going back to the chat and clicking the next image

Describe the solution you'd like

left/right arrows in the image viewer UI to switch between images as well as left/right on keyboard

Alternatives considered

No response

Additional context

No response

Pinned Messages

Describe the problem

No pinned messages in Cinny, I was wondering if this client could implement it.

Describe the solution you'd like

Support pinned messages. More information here:
cinnyapp/cinny#68

Alternatives considered

No response

Additional context

No response

Global toggle for channel icons

Describe the problem

Currently the only person that can turn on and off the channel icons for a space is the owners of that space. I don't really know why that's the case, as it could just be a client option.

Describe the solution you'd like

I don't really want to go around bugging the owners of every space I'm in to get them to use pony.horse just to make the channel icons visible for their space, so is it possible to make it a client option and maybe add a global toggle to turn it on/off for all spaces instead of specifying for each one?

Alternatives considered

No response

Additional context

No response

unread message indicator sync problems when using multiple instances of the client

Describe the bug

when using multiple instances of the client (ie laptop and desktop) reading all unread messages on one client doesn't make the unread message indicator disappear until the user switches chats

Reproduction

No response

Expected behavior

No response

Platform and versions

OS: Kubuntu 22.04
Browser: Google Chrome 120.0.6099.129
Pony House Version: 1.3.28
Matrix Homeserver: filly.chat

Additional context

No response

App Crashes when pressing Maximize button

Describe the bug

The Pony House Client Crashes when I attempt to Maximize it with the following exit error :

[mae@moe linux-unpacked]$ ./pony-house-matrix
Segmentation fault (core dumped)
[mae@moe pony-house-matrix-appimage]$ ./Pony.House-1.3.45.AppImage 
Segmentation fault (core dumped)

Tested both on Wayland and X11 with same results

Reproduction

  1. Open the Appimage or Extracted Linux Package
  2. Run the Application
  3. Press Maximize

Expected behavior

For the app to Maximize and not Crash

Platform and versions

1. OS : Archlinux
2. Kernel : 6.9.1-arch1-2
3. Platform x86_64 (ThinkPad L580)
4. Desktop Environment : Gnome 46.1 Wayland
5. Pony House Version : 1.3.45

Additional context

Not too sure on how to do debugging, feedback on how I can do so very welcomed ๐Ÿ‘๏ธ

make the active space indicator easier to spot at a glance

Describe the problem

the current one looks like this
image
it can be hard to notice at a glance

Describe the solution you'd like

make the indicator bigger, maybe also change the shape of the icon for the active space

Alternatives considered

No response

Additional context

No response

add a button to scroll to the "new messages" marker

Describe the problem

when viewing a chat where the "new messages" marker is off screen due to scroll it can be a little tedious to find the marker to look through the chat from the message u last read

to clarify this the marker i'm talking about
image

Describe the solution you'd like

add a button that appears when the "new messages" marker is off screen, this button should scroll up to the "new messages" marker, similar to the "jump to latest" button

Alternatives considered

No response

Additional context

No response

show rooms/spaces a user shares with you on the user's profile

Describe the problem

sometimes you get a random DM and wonder where that person came from

Describe the solution you'd like

a list of spaces the users shows with you, with an arrow next to each space to expand and show the rooms inside that space the user shares with you, and a separate section to show rooms that aren't part of a space

Alternatives considered

No response

Additional context

No response

Dark theme without gradients?

Describe the problem

It would be nice to have a version of the dark theme that doesn't have any of those gradient background, or keep the dark theme cinny chat uses as an option. I find the gradients make it hard to read the text.

Describe the solution you'd like

.

Alternatives considered

No response

Additional context

No response

Decryption issues

Describe the bug

A lot of older messages don't get decrypted (some do, others don't)
I've tried logging in and out many times. All I get is,

Unable to decrypt message

Never encountered this in Cinny.

Reproduction

  1. Log into Pony (with a Matrix id)
  2. Verify via emojis via other client
  3. Check messages

Expected behavior

The messages get decrypted properly

Platform and versions

1. OS - Android
2. Browser - Firefox
3. 1.13.16
4. matrix.org

Additional context

No response

add support for polls

Describe the problem

element and schildichat support polls, pony house does not

Describe the solution you'd like

add support for polls

Alternatives considered

No response

Additional context

No response

small ui detail

after you enter a chat on mobile web. looks like the left space could be useful..by reducinga the gap between the icons and the left edge. a few pixels seem to be wasted on the mobile ui. dont know how it would affect the web ui

add option to disable encryption by default for DMs

Describe the problem

encrypted chats can't be searched, DMs r always encrypted by default

Describe the solution you'd like

add a toggle in the settings for disabling encryption by default when creating a DM room

Alternatives considered

No response

Additional context

No response

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.