Top Related Projects
Telegram Desktop messaging app
Telegram-iOS
Telegram for Android source
Source code of Telegram for macos on Swift 5.0
Telegram web application, GPL v3
Quick Overview
Kotatogram is a fork of the Telegram Desktop client, offering additional features and customization options. It aims to enhance the user experience while maintaining compatibility with the official Telegram protocol and servers.
Pros
- Enhanced customization options for the user interface
- Additional features not found in the official Telegram Desktop client
- Regular updates and active development
- Maintains compatibility with official Telegram servers
Cons
- Not officially supported by Telegram
- May have potential security risks due to being a third-party client
- Some features may break or become incompatible with future Telegram updates
- Smaller user base compared to the official client, potentially leading to slower bug detection and fixes
Getting Started
To get started with Kotatogram:
- Visit the official Kotatogram website or GitHub repository.
- Download the appropriate version for your operating system (Windows, macOS, or Linux).
- Install the application following the standard installation process for your OS.
- Launch Kotatogram and log in with your Telegram account.
- Explore the additional settings and features in the app's preferences menu.
Note: As this is a desktop application and not a code library, there are no code examples or quick start instructions for developers.
Competitor Comparisons
Telegram Desktop messaging app
Pros of tdesktop
- Official Telegram desktop client, ensuring full compatibility and timely updates
- Larger development team and community support
- More frequent releases and bug fixes
Cons of tdesktop
- Less customization options compared to Kotatogram
- Stricter adherence to Telegram's design guidelines, limiting UI flexibility
- Fewer experimental features
Code Comparison
tdesktop:
void MainWindow::setupMain() {
auto widget = object_ptr<Widget>(this);
_mainWidget = widget.data();
_body->setMainWidget(std::move(widget));
}
Kotatogram:
void MainWindow::setupMain() {
auto widget = object_ptr<Widget>(this);
_mainWidget = widget.data();
_body->setMainWidget(std::move(widget));
setupCustomTheme();
}
The code comparison shows that Kotatogram builds upon tdesktop's codebase, adding extra functionality like custom theme support. Both projects share a similar structure, with Kotatogram extending features while maintaining compatibility with the original Telegram client.
Kotatogram offers more customization options and experimental features, making it appealing to users who want greater control over their messaging experience. However, tdesktop, being the official client, ensures better long-term stability and compatibility with Telegram's core services.
Telegram-iOS
Pros of Telegram-iOS
- Official iOS app with direct support from Telegram
- Regularly updated with new features and improvements
- Optimized for iOS devices and follows Apple's design guidelines
Cons of Telegram-iOS
- Closed-source, limiting community contributions and customization
- Limited to iOS platform, not available for desktop or other mobile OS
- Stricter adherence to Telegram's official features, less flexibility
Code Comparison
Kotatogram-Desktop (C++):
void MainWindow::showNotification(const QString &title, const QString &subtitle, const QString &msg) {
if (QSystemTrayIcon::supportsMessages()) {
trayIcon->showMessage(title, subtitle + "\n" + msg, QSystemTrayIcon::Information, 10000);
}
}
Telegram-iOS (Swift):
func showNotification(title: String, body: String) {
let content = UNMutableNotificationContent()
content.title = title
content.body = body
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: nil)
UNUserNotificationCenter.current().add(request)
}
The code comparison shows different approaches to displaying notifications, with Kotatogram-Desktop using Qt framework for cross-platform support, while Telegram-iOS utilizes native iOS APIs for notification handling.
Telegram for Android source
Pros of Telegram
- Official Telegram client, ensuring full compatibility with the Telegram network
- More frequent updates and faster implementation of new Telegram features
- Larger user base and community support
Cons of Telegram
- Less customization options compared to Kotatogram
- Fewer advanced features for power users
- Stricter adherence to Telegram's design guidelines, limiting UI flexibility
Code Comparison
Telegram (Java):
public class TelegramApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
NativeLoader.initNativeLibs(ApplicationLoader.applicationContext);
ConnectionsManager.native_setJava(false);
}
}
Kotatogram (C++):
int main(int argc, char *argv[]) {
Sandbox::WorkingStatus status = Sandbox::start(argc, argv);
if (status == Sandbox::WorkingStatus::Failed) {
return 1;
}
Sandbox::finish();
return 0;
}
The code snippets show different approaches to application initialization. Telegram uses Java and focuses on native library loading, while Kotatogram uses C++ and implements a sandbox pattern for the main application loop.
Source code of Telegram for macos on Swift 5.0
Pros of TelegramSwift
- Written in Swift, providing better performance and native integration for iOS devices
- More focused on mobile development, potentially offering a smoother mobile experience
- Actively maintained with frequent updates and bug fixes
Cons of TelegramSwift
- Limited to iOS platform, lacking cross-platform support
- Smaller community and fewer contributors compared to Kotatogram Desktop
- May have fewer features or customization options than Kotatogram Desktop
Code Comparison
Kotatogram Desktop (C++):
void MainWindow::showSettings() {
if (_settings) {
_settings->showSettings();
}
}
TelegramSwift (Swift):
func showSettings() {
let settingsViewController = SettingsViewController()
navigationController?.pushViewController(settingsViewController, animated: true)
}
Both code snippets demonstrate a method for showing settings, but TelegramSwift uses Swift's syntax and iOS-specific navigation patterns, while Kotatogram Desktop uses C++ and a more generic approach.
Telegram web application, GPL v3
Pros of Webogram
- Web-based client, accessible from any browser without installation
- Lightweight and fast-loading interface
- Cross-platform compatibility
Cons of Webogram
- Limited features compared to native desktop clients
- Potentially less secure due to browser-based nature
- Dependent on web technologies, may have performance limitations
Code Comparison
Webogram (JavaScript):
AppMessagesManager.sendText = function (peerString, text, options) {
if (!angular.isString(text) || !text.length) {
return $q.reject({type: 'TEXT_EMPTY'});
}
options = options || {};
var messageID = tempID--;
Kotatogram Desktop (C++):
bool MainWindow::sendMessage(
not_null<History*> history,
MsgId replyTo,
const QString &text,
MessageFlags flags,
bool silent,
bool clearDraft) {
const auto webPageId = _history->webPageId();
Key Differences
- Webogram is a web-based Telegram client, while Kotatogram Desktop is a native desktop application
- Kotatogram Desktop offers more advanced features and customization options
- Webogram has a broader reach due to its web-based nature, but Kotatogram Desktop provides a more robust user experience
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Kotatogram â experimental Telegram Desktop fork.
Build instructions can be found in docs
folder. Please note: only [32-bit Windows][building-msvc], [64-bit Windows][building-msvc-x64] and [Linux][building-cmake] build instructions are updated.
Original README with licenses could be found in Telegram Desktop repository.
Download
Binaries can be downloaded from releases: https://github.com/kotatogram/kotatogram-desktop/releases
Latest stable version can be found here: https://github.com/kotatogram/kotatogram-desktop/releases/latest
Builds
- Windows (installer and portable)
- Linux (64-bit)
- Flathub
- Other repositories:
- macOS
Features
- Local folders
- Forward to multiple chats and forward without author
- Custom font
- Compact chat list
- Custom text replaces
- Change sticker size
- Adaptive chat bubbles
- and other smaller features.
Full list of features will rewritten later. Control branches were used to list features, but they are now deprecated and archived in separate repo.
Contributing
Read CONTRIBUTING.md.
Other links
- Website: https://kotatogram.github.io
- English Telegram channel: https://t.me/kotatogram
- Russian Telegram channel: https://t.me/kotatogram_ru
- Trello (on Russian, abandoned): https://trello.com/b/G6zetXOH/kotatogram-desktop
Attribution
- Ghost icon (for deleted accounts) is taken from official Android app.
- Icons for local folders mostly are Material Design Icons.
Top Related Projects
Telegram Desktop messaging app
Telegram-iOS
Telegram for Android source
Source code of Telegram for macos on Swift 5.0
Telegram web application, GPL v3
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot