Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrated Development Environment for Telegram Mini Apps: TMA Studio #908

Closed
erfanmola opened this issue Dec 17, 2024 · 4 comments
Closed
Labels
Developer Tool Related to tools or utilities used by developers

Comments

@erfanmola
Copy link

erfanmola commented Dec 17, 2024

Summary

Telegram Mini App Studio

Telegram Mini App Studio

TMA Studio simplifies the development of Telegram Mini Apps by providing a comprehensive local testing environment. It supports Telegram-specific features like Mini Apps 2.0, simulated user interactions, and event handling. Recognizing the Telegram Mini Apps platform as an instrument to increase the popularity of TON, TMA Studio aims to empower developers, fostering innovation and quality in the Telegram ecosystem.

DPXWallet Demo

TMA Studio Sample Demo

Simplist Floating Demo

demo-2-1080P-30FPS.mp4

Context

Developing and testing Telegram Mini Apps currently lacks a streamlined solution, making debugging and iteration cumbersome. While some general-purpose tools can be used for TMA development and testing, they do not provide the specific Telegram-native capabilities needed to test and debug Mini Apps in the context of the Telegram platform. TMA Studio bridges this gap by simulating Telegram environments (Android, iOS, etc.) and handling key APIs. This tool reduces barriers, improves app quality, and increases adoption.

Existing Mini App development tools(if any) fail to address the need for advanced debugging, realistic environments, and powerful developer tools. TMA Studio bridges this gap by providing:

  • Feature-rich Developer Console: Integrated Chrome DevTools console for debugging every simulated environment.

  • Mini Apps 2.0 Ready: Fully compatible with the latest Mini Apps 2.0 features and updates. (WIP, Phase 2)

  • Mock User Data: Simulate user interactions with customizable mock data for efficient debugging. Switch between user profiles with unique data for more robust app testing.

  • Event and Method Support: Supports over 90% of Telegram Mini App events and methods, with ongoing development.

  • Token and InitData Simulation: Sign and verify initData using a bot token, just like Telegram’s backend.

  • Native-looking Floating Windows: Emulates the floating Mini App window experience, akin to mobile emulators.

  • Familiar Developer UI: Inspired by VSCode with multiple tabs and projects, enhancing productivity.

These features collectively enable developers to test efficiently, debug thoroughly, and create quality Mini Apps that integrate seamlessly into Telegram's ecosystem.

Value to Telegram and the TON Ecosystem

TMA Studio not only benefits developers but also plays a pivotal role in growing Telegram's Mini Apps ecosystem and the TON blockchain. The more developers who adopt TMA Studio and create high-quality Mini Apps, the more users will be drawn into the Telegram and TON ecosystems. This tool directly supports Telegram’s mission to expand the use of Mini Apps, making the development process smoother, faster, and more efficient.

With features that facilitate seamless app creation, debugging, and testing, TMA Studio lowers the entry barriers for new developers, enabling a broader range of innovative apps to be created for Telegram. By empowering developers to easily build, test, and refine their apps, TMA Studio fosters innovation, driving a surge in the number and quality of Mini Apps available to Telegram users.

Furthermore, by addressing the complexities of working within Telegram’s environment, TMA Studio encourages more developers to explore and leverage Telegram’s ecosystem, increasing the overall adoption of Telegram Mini Apps. As more developers build within the Telegram ecosystem, the TON blockchain benefits from increased usage and exposure, leading to growth and a stronger presence in the broader blockchain space.

In essence, TMA Studio is not just a tool for developers; it’s a catalyst for the continued growth of both Telegram and TON, making it an essential part of the ecosystem's expansion.

References

While there are no alternatives for this tool, and it is the first of its kind in the Telegram Mini Apps ecosystem, TMA Studio draws inspiration from established developer tools, such as:

  • Telegram Official Clients
  • Android Studio & AVD
  • Xcode & iOS Simulator
  • Google Chrome Developer Tools

TMA Studio uniquely combines these inspirations into a Telegram-native development environment, bridging gaps that other tools overlook and delivering unmatched features tailored for Mini Apps leading to growth of TON ecosystem.

Our phase 1 is completed and we are live on TMA Studio and TMA Studio Github Repository.

Estimate suggested reward

We request an estimated total amount of $30,000 to cover the development and completion of TMA Studio across three phases:

Phase 1 (Completed) - $20,000

  • Duration: October 2024 – January 2025
  • Achievements:
    • Established the base project and essential infrastructure.
    • Added support for Telegram Android and iOS platforms.

Phase 2 (Planned) - $5,000

  • Duration: Early to Mid-2025
  • Goals:
    • Full compatibility with Telegram Mini Apps 2.0.
    • Support for Telegram Desktop, WebK, and WebA platforms.
    • Add auto-updates and streamline release processes.
    • Further general improvements

Phase 3 (Planned) - $5,000

  • Duration: Mid to Late 2025
  • Goals:
    • Advanced mock data customization.
    • Real user account login for debugging live Mini Apps.
    • Support for features requiring real Telegram server communication (* marked features in the original repository).

While this is our planned roadmap, the Telegram Mini App ecosystem continues to evolve with regular updates. We are committed to staying current with these updates, ensuring ongoing development and support. Our goal is to build the first and best tool for this ecosystem—designed by developers, for developers—to empower the community and foster innovation within the Telegram and TON ecosystem.

It’s evident that TMA developers are highly interested in TMA Studio, as reflected by the growing number of GitHub stars on the project repository. This support highlights the importance and potential of the tool within the ecosystem. It would be a shame if development had to pause due to funding limitations, especially since we are passionate about continuing to enhance the project. While we understand that the bounty program has a $10K cap, and we are requesting $20K, we recognize that a grant may be more appropriate for this scope. If transitioning to a grant application is required and approved, we have already taken that route too, here is our link on questbook.

@erfanmola erfanmola added the Developer Tool Related to tools or utilities used by developers label Dec 17, 2024
@erfanmola
Copy link
Author

@delovoyhomie, would you kindly approve the project so we can progress?

While we understand the nature of grant requests, we would greatly prefer for this request to be considered as a bounty. We are eager to accelerate development and begin the next phases, especially with the holidays approaching. Grants often take roughly a month just to be reviewed, but we only need your approval to continue development—no immediate payment is necessary.

We’ve also received excellent feedback from the developer community during this time, which has expanded the scope of what we can further develop. Additionally, as there have been projects with $20K requests approved as bounties before (e.g., Telegram React UI Components), we believe this request fits within similar precedence.

An approval from your side would provide us with the clarity and confidence needed to move forward, avoiding this current "unknown state." Your decision is crucial in helping us determine our next steps—whether to continue advancing this project or, unfortunately, consider discontinuing its development. A timely resolution would greatly support our ability to plan and act effectively. Thank you!

@erfanmola
Copy link
Author

Follow-up on Grant Request: Telegram Mini App Studio

It has been over a month since we submitted our grant request for Telegram Mini App Studio, and there has been no response since v1.0.0. In this time, we have made significant improvements to the project, nearing the completion of Phase 2, as well as implementing unplanned but requested features such as macOS platform support.

Here’s what we’ve accomplished in the last month since the previous request:

  • Released nearly 20 updates, addressing bugs, enhancing features, and refining the UI/UX. You can find all releases here: Release Page.
  • Refactored the codebase extensively to ensure better maintainability and performance.
  • Gained 60+ GitHub stars, entirely organic, without any public announcement or promotion.
  • Received overwhelmingly positive feedback from the developer community, further demonstrating the need for this tool.
  • We have been working full-time on this project for the past 4-5 months, investing significant time and effort to create a comprehensive, feature-rich solution.

This is not an MVP—TMA Studio is a ready-to-go product that fully supports all Telegram Mini App platforms. The tool is live, well-received, and functional across Android, iOS, WebK, WebA, Desktop, and macOS platforms, offering developers a seamless testing and debugging experience.

We are deeply committed to this project as it fills a major gap in the Telegram Mini Apps ecosystem. However, due to the lack of funding, we are at a crossroads. Continuing development without financial support will not be feasible, though we can be flexible on the phases and budget required for each phase. It would be a great pity to abandon a project that has so much potential and is so loved by the community.

We strongly believe that TMA Studio is vital for the growth of the Telegram Mini Apps and TON ecosystem, offering developers the tools they need to create high-quality Mini Apps efficiently. Your decision regarding this grant request is crucial for us to determine the future of this project.

We will provide new demos and updated details about the project to reflect its current progress. We hope that this follow-up will lead to clarity and support for TMA Studio, ensuring its continued development.

Thank you for your consideration.


Demo Screenshots:

Here are the latest screenshots reflecting the current state of TMA Studio:
Sample
Sample
Sample
Sample
Sample
Sample
Sample
Sample


Looking forward to your feedback!

@delovoyhomie
Copy link
Collaborator

Thank you for your submission! While that is an interesting initiative, it does not fully solve the core challenge of Mini App development—Telegram's multiple clients, each with unique behaviors and bugs. Since your tool simulates rather than emulates the environment, developers would still need to test on real clients, limiting its necessity.

Additionally, given the budget exceeds typical Bounty allocations, a grant would be a more suitable avenue, and we’ve already seen your application there. We appreciate your work and look forward to its future development!

@delovoyhomie delovoyhomie closed this as not planned Won't fix, can't repro, duplicate, stale Jan 24, 2025
@erfanmola
Copy link
Author

Hi Slava, I have received your feedback and would like to respond to it.

While that is an interesting initiative, it does not fully solve the core challenge of Mini App development—Telegram's multiple clients, each with unique behaviors and bugs.

Of course there are multiple core challenges with TMA development, but one of the fundamental challenges with it is:

  • There is no actual and unified solution for TMA development and testing, a user owning an android phone can't even get a look of it's mini app on iOS device and vice versa.

  • Most people don't bother themselves to even use the development solution that telegram provides (https://core.telegram.org/bots/webapps#testing-mini-apps). So 90% of the TMA development takes place inside a web browser due to ease of access, lacking the mock-data and theme params that telegram provides, also the native functionalities such as alerts, prompts, scan QR Code, share to Story and much more, it's just a browser 90% of the time and in the final 10% of the time developers setup a real telegram dev env using tunneling solutions (https), most devs even do not have access to telegram test servers.

  • We also try to mimic the behavior of every single client, the theme customization of the dialogs, the way they handle mini apps like android, ios, tdesktop, macos use webview, but web and weba use iframe.

Since your tool simulates rather than emulates the environment.

Of course we have to simulate, we can't emulate 6 platforms on a single device, you can't even emulate iOS on MacOS using XCode, even they use a simulator rather than emulator, for emulating Android you have to bring up a virtual machine and a customized android apk.

Our initiative has been "Making TMA development easier and more accessible, decreasing the gap between web development and TMA development by providing mock env where ever we can", so in that manner we mock the user data by allowing creation and switching between multiple users, we mock theme params based on official client theme params, we mock QR Scanner by providing our own designed interface, we mock shareToStory, we mock dialogs and alerts and prompts, we mock requestWriteAccess, we mock readTextFromClipboard, we mock requestContact and we simulate almost everything else, planning to expand the scope of our simulation to Mini Apps 2.0 with the grants program.

What we provide on top of these, is the ability to have a very clean and nice-looking floating window of your desired platform on top of your IDE and experience a seamless development, no more switching between your IDE and browser, IDE and Telegram, IDE and your Phone. We also provide the Chrome Developer Tools as your devtools, the best one in existence.

developers would still need to test on real clients, limiting its necessity

It gets kind of disappointing when you misunderstand the initiatives and the flow of a TMA development, Of course you have to test on real client!

Your final user is going to view your TMA on real client, so for the sake of production you have to test it on real clients too, but when? At least not 99% of the time, you only have to test on the client when you are done with development and it's testing phase!

You are misjudging the process of development, We don't "Test" while developing, we "Develop" while developing, we "Test" when we are done with developing, Of course you have to test on real clients after you are done, probably 2x faster than usual cause you had a better development environment and you were not eye-switching between IDE and your physical phone for every line you wrote.

Additionally, given the budget exceeds typical Bounty allocations, a grant would be a more suitable avenue, and we’ve already seen your application there.

Of course, I respect this and I hope the submission won't be misjudged and misunderstood there like here.

We appreciate your work and look forward to its future development!

Thanks, The project started with passion and love, that's the reason it took 4-5 months of development with uncertainty of it's approval or rejection, We truly would love to develop further and make it a complete product, making every simulation to be as perfect as emulation (even though the core concepts and goals are different), but all that said requires not only passion and love, but financial support, which I hope the grant program would treat it fairly, unlike pouring a boiling hot water on us here.

Image
Image
Image
Image
Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Developer Tool Related to tools or utilities used by developers
Projects
None yet
Development

No branches or pull requests

3 participants
@erfanmola @delovoyhomie and others