Let's take a look at what technologies Free TON projects are built on, and what teams prefer to use to create websites and applications.
First, let's look at the main projects of the ecosystem.
To create websites and applications TON Labs developers preferred to use the JavaScript programming language and stack which are based on the React and React Native frameworks.
- React is one of the most popular user interface libraries in the world. At the time of this writing, the number of stars on GitHub has almost reached 170 thousand (6th place among all repositories, including compilations).
- React Native is a cross-platform framework for developing native mobile and desktop apps in JavaScript and TypeScript. Both frameworks were created by Facebook.
The TON Labs trick is to use the React Native Web (RNW) library, which allows you to write one code to create both web and mobile applications at the same time. For example, Twitter client applications were created using RNW.
To interact with the blockchain, the team chose GraphQL, a query language used by client applications to work with data, regardless of where it was originally stored. The benefits of GraphQL:
- Allows the client to specify exactly what data he needs
- Facilitates the aggregation of data from multiple sources
- Not tied to a specific database or storage engine
This stack has implemented at least
- Main site (http://freeton.org)
- TON Surf (https://ton.surf/main)
- Competition website (http://gov.freeton.org)
- And the Explorer site (https://ton.live)
It is worth noting that some of the applications mentioned work relatively well (for example, TON Surf), but some have questions! We will consider in the next article the usability and impressions of using these services. For the purposes of this article, we will only look at development stacks.
What technologies are used besides React?
Blog site (https://blog.freeton.org) is implemented on CMS WordPress
- CMS (Content Management System) is software that allows you to manage site content: create and publish posts, place widgets, change design, edit various elements, add functionality, etc.
- Using a CMS allows you to reduce the time when developing sites, but sometimes it is difficult to adapt it to your needs
- WordPress is the most popular CMS in the world. Latest statistics show that WP accounts for about 32% of all sites
- Despite the fact that with the help of WordPress you can create sites of any subject, initially this system was sharpened for blogs. Based on this, choosing WordPress as the basis for your Free TON blog is a good decision.
Forum website (https://forum.freeton.org) implemented on CMS Discourse
- Discourse is an open source internet forum and mailing list management software established in 2013
- The choice of Discourse is obvious - you can get a full-fledged forum with many ready-made functions in no time. Of the minuses - not a unique design, a template solution.
Consider a few more projects
ExtraTON (https://extraton.io/) is a set of FreeTON decentralized applications for storing crystals, staking, creating and signing transactions.
Frontend:
- Programming language: JavaScript
- Framework: Vue
- API Link: GraphQL
Backend (for some applications):
- Programming language: PHP
- Framework: Symfony
- The team also presented an alternative to TON Surf - the extraTON extension for the Google Chrome browser (also written in JS and Vue).
TON Swap (https://tonswap.com/ - https://github.com/SVOIcom/tonswap-frontend) is the winner in the competition for the first stage of the development of a decentralized exchange (DEX) on the Free TON blockchain.
- Programming language: JavaScript
- Framework: Not used
- API Link: GraphQL
TON Crystal Wallet (https://github.com/broxus/wallet-desktop) is a wallet that allows transactions with TON Crystal. Currently supports Windows 7+, macOS 10.12+ and Ubuntu 14.04+
- Based on Test Gram Wallet
- Programming languages: C ++ and Python
The choice of a technology stack is undoubtedly one of the important parameters of the development process, however, the operability and usability of projects are more important aspects! We will consider them in one of the following articles - subscribe to the channel so as not to miss a new articles.