An open-source reimplementation of the Discord Android app

Last update: May 11, 2022

OpenCord

Discord

An open-source reimplementation of the Discord Android app.

Chat Drawer

Why does this exist?

Current Discord app sucks as it doesn't support any type of customization (themes, plugins, layout etc...). The goal of this project is to reimagine the Discord experience on mobile devices.

Status of OpenCord

  • Full (or at least most essential) Discord feature implementation
  • Theme support
  • Plugin support
  • Multiplatform support (Windows, macOS, Linux, Android)

Building

Build the project

Windows:

.\gradlew.bat build

Linux/macOS:

chmod +x ./gradlew && ./gradlew build

Build APKs

Discord Version

Windows:

.\gradlew.bat assembleDiscordDebug

Linux/macOS:

./gradlew assembleDiscordDebug

Fosscord Version

Windows:

.\gradlew.bat assembleFosscordDebug

Linux/macOS:

./gradlew assembleFosscordDebug

FAQ

Will this client support themes/plugins?

Yes, but my first priority is to implement most of the stock client's features

Is this against Discord TOS?

Unfortunately, it is. Although I'm pretty sure Discord won't start banning anyone for using OpenCord, considering how many mods of the stock clients already exist. Even with that, use this client at your own risk.

Where download???!?!?!?!?

Head over to repository actions, click the latest run and download the app artifact. After downloading, unzip it. Inside you'll find 2 files: app-discord-debug.apk and app-fosscord-debug.apk.

Differences between these versions

The discord version is considered as the standard version of the app, while the fosscord version is meant to be used by users familiar with Fosscord. Fosscord version of the app redirects to Fosscord API, CDN and Gateway instead of Discord's URLs, allowing you to fully experience OpenCord without being scared of getting banned by Discord.

Stable version wen?

Soon™

GitHub

https://github.com/MateriApps/OpenCord
Comments
  • 1. Unable to Login in.

    Hi I am trying to log in with my alt account nothing seems to happen when I log in it is stuck in login page and when try pressing the log button nothing seems to happen

    Reviewed by IamNickerson at 2022-04-18 11:17
  • 2. app crashes on login

    Hi, I've installed the latest apk however once I press the login button after entering my email and password. I'm not sure how to get debug info on android so if there is any info you need you might need to point me towards how to get it.

    I'm running lineageos 18 (android 11).

    Reviewed by Laar3 at 2021-11-27 11:40
  • 3. Crash when trying to login on fosscord

    It seems like it cannot deserialize captcha response which does not exist on fosscord

    01-27 02:05:12.272 E/AndroidRuntime(11588): FATAL EXCEPTION: DefaultDispatcher-worker-1
    01-27 02:05:12.272 E/AndroidRuntime(11588): Process: com.xinto.opencord.kenecord, PID: 11588
    01-27 02:05:12.272 E/AndroidRuntime(11588): com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.Gson.fromJson(Gson.java:963)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.Gson.fromJson(Gson.java:928)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.Gson.fromJson(Gson.java:877)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.Gson.fromJson(Gson.java:848)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.xinto.opencord.ui.screens.login.LoginScreenKt$LoginScreen$2$1$3$1.invokeSuspend(LoginScreen.kt:187)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
    01-27 02:05:12.272 E/AndroidRuntime(11588): Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:384)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
    01-27 02:05:12.272 E/AndroidRuntime(11588): 	... 11 more
    
    Reviewed by keneshindev at 2022-01-26 20:10
  • 4. General mod podge of potentional "bugs"

    The app looks great! Loving the color palette and the login design. The whole reason why I checked out the app in the first place is that the official app has started to overheat my low-end phone, which causes my phone to restart. Here are a few bugs I've noticed in OpenCord:

    • [ ] No friend DM's (unsure if they reach out to you)
    • [ ] Logging in for the first time takes a bit for the guilds/channels to load
    • [ ] Users don't have role colored names
    • [ ] No "mark all as read" option on a server (which would be helpful to have since every channel is marked as "unread" when logging in)
    • [ ] The app seems to freeze for 100ms or so when a new message is sent, giving off a single-threaded app vibe
    • [ ] The swipe interaction is weird, working sometimes, ignoring your swipe other times
    • [ ] Guilds aren't ordered as they are on mobile or desktop (I believe there's an undocumented endpoint for this)
    • [ ] No obvious way to look at the channel topic
    • [ ] Member list doesn't seem to function
    • [ ] Mentions altogether don't seem to function correctly
    • [ ] Codeblocks render inaccurately
    • [ ] Buttons
    • [ ] Stage channels render as normal channels
    • [ ] Channels aren't appropriately hidden (say, when you don't have permission to view)
    • [ ] Guilds without an icon do not produce the same icon that the official clients use
    • [ ] Settings don't show anything
    • [ ] Lack of message attachment support

    OpenCore images: https://cdn.discordapp.com/attachments/964960714047508494/974836234818039848/Screenshot_20220513-194915-915.png https://cdn.discordapp.com/attachments/964960714047508494/974836235254243378/Screenshot_20220513-194931-376.png https://cdn.discordapp.com/attachments/964960714047508494/974836235547865128/Screenshot_20220513-194941-104.png

    Discord image (zoom): https://cdn.discordapp.com/attachments/964960714047508494/974836637735460964/Screenshot_20220513-195235-485.png

    Other than these things, the app is really good. The only things that are truly stopping me from using the app as a daily driver is the lack of DM support and the "mark channels as read" option. I understand well that the app is far from finished and I'm looking forward to the finished product. I would love to contribute however I'm more of a C# developer than someone who uses Java (additionally I've never even touched UI, so I could only help clean up logical/simple operations).

    Keep up the great work! You're doing amazing. DN

    Reviewed by OoLunar at 2022-05-14 00:54
  • 5. Doesn't support Discord's 2FA

    Just a note to say that it doesn't let me login with 2-factor authentication.

    Not really a complaint because this looks and works really well otherwise, with only one other glaring issue for my basic needs. Great to see this appear :)

    Reviewed by hamishmb at 2022-04-17 19:23
  • 6. Unable to build app due to Kotlin

    e: This version (1.1.0-rc01) of the Compose Compiler requires Kotlin version 1.6.0 but you appear to be using Kotlin version 1.6.10 which is not known to be compatible.  Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).
    
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':app:compileDiscordDebugKotlin'.
    > Compilation error. See log for more details
    
    
    Reviewed by DokStook at 2022-01-10 19:19
  • 7. Cannot log in

    I can't log in, idk why. What I know is I have a working internet connection. And to register button does not working, I think it just there as a display. Need to rework and stabilize the application. I love the concept and the lightness of it. I hope these matter will soon be fixed.

    Reviewed by jingoniii at 2022-04-21 11:40
  • 8. Cannot message inidividual friends/group chats that are not on a specific server

    It seems I can't message individual friends or group chats when they aren't part of a server, but it might be me not knowing where to look.

    Just a note, not a complaint because it's great to see something like this appear :)

    Reviewed by hamishmb at 2022-04-17 19:25
Experimental Discord Mobile Rich Presence (Android)

MRPC Experimental Discord Mobile Rich Presence (Android) How does it work? It's pretty simple. Connect to the Discord Gateway as a normal Discord Clie

May 17, 2022
🐦 Loritta's Social media relayer via Discord Webhooks micro-service

?? SocialRelayer ?? SocialRelayer is a social media relayer to Discord via webhooks, pulling Loritta's guild configurations to automatically register

Feb 11, 2022
AsukaBot - A simple Kotlin Discord Bot

The Discord bot of the serber, a private Discord server. Asuka is a Discord But running on the JDA API but made in kotlin.

Apr 24, 2022
A Discord audio player that streams audio from the desktop.

Synced A Discord audio player that streams audio from the desktop. Synced runs as a bot that plays audio to your selected Discord server. You can cont

Dec 5, 2021
Mindusty <--> Discord

Minducord Mindustry <--> Discord Setup Go to Releases and download minducord.jar. After download, paste it to mods folder and run server. If you can s

Dec 12, 2021
Urban Dictionary discord bot.

Urban Dictionary Installation & Setup 1. Clone the repository git clone https://github.com/thexxiv/urbandictionary-discord-bot.git 2. Navigate to the

Jan 17, 2022
DiscordBot - Small Discord bot using JDA

Discord bot written in kotlin and using JDA Use it yourself ./gradlew build crea

Feb 2, 2022
Photon Framework provides cool way to Discord Slash Commands 👩‍💻 🚧

Photon Framework provides cool way to Discord Slash Commands ??‍?? ??

May 7, 2022
🎧 Hacky last.fm Discord rich presence
🎧 Hacky last.fm Discord rich presence

LastFmRichPresence ?? Hacky last.fm Discord rich presence How to use?

Apr 29, 2022
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

May 21, 2022
Open-source modular Android App IDE for Android
Open-source modular Android App IDE for Android

Blokkok Blokkok is an open-source modular Android App IDE for Android. Every components of the IDE are separated from each other by modules, every mod

May 9, 2022
Open source Imgur Android App
Open source Imgur Android App

Opengur NO LONGER UNDER ACTIVE DEVELOPMENT Open source Imgur Android App Want to become a beta tester? Click Here! #Features Built in native java Nati

Apr 2, 2022
Open source Imgur Android App
Open source Imgur Android App

Opengur NO LONGER UNDER ACTIVE DEVELOPMENT Open source Imgur Android App Want to become a beta tester? Click Here! #Features Built in native java Nati

Apr 2, 2022
Open source Crypto Currency Tracker Android App made fully in Kotlin
Open source Crypto Currency Tracker Android App made fully in Kotlin

CoinBit CoinBit is a beautiful CryptoCurrency app, completely open sourced and 100% in kotlin. It supports following features Track prices of over 300

May 11, 2022
A sample Android app which showcases advanced usage of Dagger among other open source libraries.
A sample Android app which showcases advanced usage of Dagger among other open source libraries.

U+2020 A sample Android app which showcases advanced usage of Dagger among other open source libraries. Watch the corresponding talk or view the slide

May 18, 2022
Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.
Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

May 15, 2022
DAVx⁵ is an open-source CalDAV/CardDAV suite and sync app for Android.

DAVx⁵ Please see the DAVx⁵ Web site for comprehensive information about DAVx⁵. DAVx⁵ is licensed under the GPLv3 License. News and updates: @davx5app

May 17, 2022
An Open-Source Android app for creating training plans and tracking progress
An Open-Source Android app for creating training plans and tracking progress

GymRoutines noahjutz.codeberg.page/gymroutines An Open-Source Android app for creating training plans and tracking progress. Screenshots Contributing

May 3, 2022
Aegis Authenticator is a free, secure and open source 2FA app for Android
Aegis Authenticator is a free, secure and open source 2FA app for Android

Aegis Authenticator Aegis Authenticator is a free, secure and open source 2FA app for Android. It aims to provide a secure authenticator for your onli

May 16, 2022