 Hello everyone, my name is Aleksandr Zazulia, I'm a professional services engineer at OnlyOffice and today I'm going to tell you about our open source project and our collaborative office suite. Moreover, you will learn how to create a customized office environment with OnlyOffice and how to extend its functionality using plugins. Another important aspect of this presentation is how to build a plugin from scratch and get it published on the official OnlyOffice app directory. Let's get started. At first, you need to have an understanding of what OnlyOffice is and what features it offers. I will briefly highlight the main advantages of our office suite and explain what makes it unique in comparison with other simple solutions. Let's find out more about OnlyOffice. In a nutshell, OnlyOffice is a powerful online office suite with collaborative editors for text documents, spreadsheets, presentations and fillable forms starting from version 7. The editors are available via a single user interface where all editing and styling tools are grouped into functional tabs. You can easily switch between the tabs with a click to access the required feature. Office Open XML is the core file format of the OnlyOffice suite. It means that our editors can seamlessly create and open DocX, XLSX and PPTX files which guarantees the highest compatibility with the word Excel and PowerPoint formats. Also, OnlyOffice supports other popular document formats like ODF and Legacy Microsoft Office formats, Doc, XLS and PPT. This tab requires conversion in OO XML formats at first to enable editing. You can even open PDF files for viewing, which is very convenient in many situations. OnlyOffice can be deployed and used on any platform and on any device. A single engine for the online, mobile and desktop versions guarantees a seamless switch from offline to online mode and vice versa. Apart from the web-based version of the editors, there is a free desktop client that runs on Windows, Linux and macOS when it comes to mobile applications. OnlyOffice comes with free office suites for Android and iOS. The OnlyOffice editors are built on top of the HTML5 Canvas technology and the first version of our online suite was presented in 2012. This technology makes it possible to display any piece of content on any web browser. Thus, our suite is truly whizzy week. What you see is what you get. Other important advantages of the HTML5 Canvas technology include maximum compatibility with MS Office OO XML formats and low memory consumption. JavaScript used for client-side interaction in OnlyOffice was chosen as one of the most universal web programming languages. For server-side scripting, we use Node.js, an open-source and cross-platform JavaScript runtime environment. Such combination allows us to create a really stable and flexible product. One of the biggest advantages of the OnlyOffice suite is client-side performance. This makes it possible for users to work independently, even if they call any the same file. Let's consider a real example. A group of people is collaborating on text document. Someone is using non-printing characters. In this case, this works on this user's side and the other co-authors won't see these characters. Such an approach also allows you to use various access permissions. When sharing a document in OnlyOffice, you can provide full access to it or make sure that other users only open it for viewing, reviewing or leaving comments. Forms can be also shared with field-filling permission. For spreadsheets, there is a special sharing permission called Custom Filter. Moreover, such an approach lets you make the most of the undo and redo features as well as collaborate with others online using various tools. You are allowed to use version history and drag changes. Switch between two co-editing modes. Compare documents. Leave comments and tag other users in real-time. And of course, exchange messages via the build-in chat. Finally, OnlyOffice offers a set of advanced security features. Let's discover how secure the OnlyOffice suite is and how it protects the data of its users. OnlyOffice is a very secure solution by design because you can deploy it on a private network and no user data will be stored on the OnlyOffice server. You can also enable JSON WebDoc to prevent unauthorized access to documents, protect files with digital signatures, encrypt documents and worksheets with passwords, add watermarks and apply copy and download restrictions. What's more, OnlyOffice provides HTTPS data encryption in transit and also end-to-end document encryption as additional protective measures. In OnlyOffice private rooms, every document, spreadsheet and presentation is reliably encrypted via the randomly generated IES-256 keys that are shared with authorized users by means of asymmetric encryption. OnlyOffice is open source, so its source code is publicly available on GitHub under the terms of the AGPL version 3. Every user has an opportunity to examine the OnlyOffice source code and make sure that there are no vectors. Right now you can scan the QR code on your screen to get access to the OnlyOffice repositories and check the code on your own. Document processing in OnlyOffice is performed on client side, which makes it possible to significantly decrease the server loading. Only the file opening and file conversion processes are performed on the server side. For example, a server with a 8-core CPU and 32 GB RAM is usually enough to open and edit 1,000 documents at once without any problems. We have conducted a series of internal load tests and can guarantee flawless performance of our editors with this configuration. OnlyOffice provides an open API that describes the platform functionality, its main methods, and various components. That party software developers can freely use the OnlyOffice API to know how our suite can communicate and interact with other solutions and access its certain internal functions. The API allows you to integrate OnlyOffice with various productivity solutions and content management applications. This in turn lets you create, open, edit, and collaborate on documents right within any file sharing platform. Another way of integrating OnlyOffice is the WAPI protocol that is supported starting from version 6.4. In one word, it's a REST-based protocol that defines a set of operations enabling a client to access and change files stored on the server. That means that you can connect OnlyOffice to any third-party platform that provides a universal WAPI client or connector. Many content management systems like FileCloud, SharePoint, OnCloud, and others implemented WAPI to integrate Microsoft Office online and to extend their functionality with document processing. Using WAPI, it's possible to integrate OnlyOffice since version 6.4 as well. OnlyOffice provides detailed documentation on the WAPI integration and you can learn how to specify the properties via WAPI discovery, what WAPI REST API functions are supported, and what the difference between the OnlyOffice API and WAPI is. As a result, today OnlyOffice is integrated in more than 30 well-known and widely used platforms like NextCloud, OnCloud, Al fresco, Cfile, KeyDrive, Confluence, LiveFree, RedMind, SharePoint, Nuxio, Plon, etc. Such integrations are possible via special connectors developed by the OnlyOffice team, our technological partners, and independent developers. Due to the open API and WAPI support, OnlyOffice has been embedded in more than 200 third-party web services by various developers all over the world, and this number is increasing all the time. When it comes to availability, OnlyOffice is available in various distribution formats and packages such as DEP, RPM, Docker, Snap, Univention Corporate Server, Cloud Run, Amy, Kubernetes, OneClick Apps on Digital Ocean and Vulture, Alibaba, Cloud, etc. We work hard to extend this list and offer more options to our users. The most recent examples are OneClick Apps on the Vulture marketplace and Alibaba Cloud images that became available last year. Apart from its editing functionality, OnlyOffice has a lot to offer in terms of customization. You can turn on the interface team you like, whether it be classic, classic light or dark, to avoid eye strain in poorly-lighted environments. Additionally, you can scale your documents, spreadsheets and presentations up to 500% to comfortably work with files on screens of any size. The OnlyOffice API also provides some customization options. For example, you are allowed to customize the appearance of the OnlyOffice editors and make the header smaller, hide the top toolbar, display or hide the right side menu and so on. This way you can customize the interface of the OnlyOffice editors as you wish. The standard editing functionality of the OnlyOffice suite can be significantly increased with the help of third-party plugins. They are available in the desktop and web versions of the editors. There is a default set of plugins that you can use as soon as you install OnlyOffice. The most remarkable examples of pre-installed plugins are photo editor, test authors, highlight code, speech and word press. There are also some other plugins that require manual installation and can be found in the OnlyOffice app directory on the official website. Let's find out what plugins can do and why it might be a good idea to create plugins for OnlyOffice. Now that you know that plugins can make OnlyOffice more powerful, it is necessary to know what a plugin is. As a rule, it's a software extension that is meant to add to what the OnlyOffice editors are able to do. In other words, a plugin extends the functionality of the solution. For example, the YouTube plugin allows you to embed YouTube videos into your documents via the user interface and watch videos right in the documents. This is what Office suites don't usually do, but OnlyOffice does with the help of this plugin. All available plugins can be accessed on the plugins tab of the top toolbar. If necessary, you can install additional plugins manually and even delete them. Now I would like to say a few words about the classification of plugins. There are four main types of plugins in OnlyOffice. I'm going to briefly describe each type and give you some examples. First of all, there are visual and non-visual plugins. In other words, they are visible or non-visible to the user. For example, the photo editor is a visual plugin because it opens a special window and helps you to edit images in your document. The Hello World plugin is non-visual because it doesn't display any visible elements and only inserts the Hello World phrase when you press a special button. The second type includes the so-called system and non-system plugins. As the name suggests, system plugins automatically work in the background and don't need activation. For example, the Saving System plugin allows you to protect documents with a bottom mark. Non-system plugins can be activated when you click the icon on the plugins tab. For example, the translator non-system plugin starts to work when you click its icon and translates the selected text into other languages. Other examples are LanguageTool, Gramoledge, GC, Telegram, etc. The next type is functionality and UI enhancement plugins. The main purpose of such plugins is to make the OnlyOffice more powerful and user-friendly by adding new features and interface improvements. In other words, these plugins help you to extend the functionality of the editors, add custom components to the user interface, and connect to party services. For example, there are some special plugins that allow you to add, edit, and delete content controls. These plugins are not installed by default, but if they are, you can easily manage all content controls in one place. Some examples of third-party service plugins that connect third-party services include Typograph, Zotero, and Telegram. Finally, let's discuss the last type of OnlyOffice plugins. What this means is that there are plugins that are designed for embedding all objects. All means object linking and embedding. It's an external file that was created using an external application and can be embedded into another application. For example, the YouTube plugin embeds YouTube videos into your document and you can open and play them without using any third-party applications. Now that you know what types of OnlyOffice plugins exist, let's have a quick look at what can be done with their help. As I have already said, some plugins make it possible to connect third-party services, allowing you to add on some really useful extra features. The list of all available options is really impressive, and I'm going to highlight only some popular services. If you work with bibliographies, you can make use of the EasyBeep, Zotero, and mainly plugins. To translate words and phrases into various languages, use Google Translate and Dipple or open-source solutions like Aperture. To correct grammar mistakes, you can use Language tool. If you want to make audio and video calls, the GC plugin is what you need. What else can be done with plugins? Well, they can add custom components and controls to the user interface of the OnlyOffice editors. A good example is the UI plugin that extends TrackChanges functionality. It adds the additional review changes panel to the editor's interface. This way, it becomes easier to see what edits your co-authors make when you collaborate together in real-time. Don't forget, this is a custom plugin, so it's not available by default and requires manual installation. Another thing that OnlyOffice plugins can do is enhance the user experience and the editor's functionality. The best examples here are Autocomplete, Search and Replace, Move Cursor, Advanced Commanding. Let's have a look at the Autocomplete plugin. This is an input assistant for the OnlyOffice editors that helps the user to input text quickly. You just type something and the plugin offers you to choose a word from various options. This is really helpful when you type a long complex word. As the examples mentioned before, this is a non-standard plugin that requires manual installation. Finally, OnlyOffice plugins allow you to work with macros. In fact, macros are small scripts used to facilitate your day-to-day routine work with different types of documents. OnlyOffice macros use the JavaScript syntax and OnlyOffice documents builder API script in notation. There are several reasons why OnlyOffice uses JavaScript for macros. Firstly, they are cross-platform. Secondly, they are easy to use. Thirdly, they don't have any access to the system. They adjust JavaScript code that runs in the same window as the editors. You can find some ready-to-use macros which can be used in different scenarios in the OnlyOffice API or create your own ones using the detailed instructions provided by the OnlyOffice team. Our team constantly develops new plugins for their OnlyOffice editors to make the user experience better. Over the last several months, we have added such plugins as LanguageTool, GramalH, Perchem, DeepL, Telegram, HTML, etc. You can see the full list on the screen now. Some interesting and really helpful plugins are being developed by our team at the moment and will become available in future releases. More information at the end of this presentation. Let's have a deeper look at a couple of plugins that we have added recently. I want you to understand why we decided to develop such plugins and how they work in OnlyOffice. The first example is JITSI. It's an open-source video and audio conferencing service that allows you to easily organize secure online meetings. JITSI was added at the request of our users. The JITSI plugin makes it possible to make audio and video calls right from the OnlyOffice editors interface. The plugin uses the JITSI SaaS server, so you don't need to install any additional software. All you need to do is install the plugin, open the plugins tab, find JITSI and enter your nickname to enjoy high-quality video and audio calls. If you want to finish your call, just press the stop button. The next example is draw.io. It's an open-source diagramming application that allows you to create a wide variety of diagrams. Flow charts, mine maps, Venn diagrams, infographics, network and architecture diagrams, UML diagrams and more. Its functionality is richer than one default diagramming tool. The plugin integrates draw.io with OnlyOffice editors, so you don't need to leave the program interface and launch any additional applications. You just open the plugin, create the diagram you need, click the save button and insert the diagram into a document. The whole process is really simple and intuitive. If you want to edit your diagram, just click on it to change shapes, add labors or customize your chart. The plugin is compatible with the self-hosted and desktop versions of the OnlyOffice editors. If you want to learn more about OnlyOffice plugins and how they work, you can always refer to the official API documentation. Just scan this QR code and you will discover how to create and publish your own plugin for OnlyOffice, how to write and run macros or convert VBA macros in OnlyOffice, how to use OnlyOffice API methods and events, where to find guides and plugin samples. If you have any questions about OnlyOffice plugins, you will find a FAQ section in the API documentation with useful information. After the general overview of OnlyOffice plugins, let's talk about the process of their development. If you decide to create your own plugin for OnlyOffice to add new feature that other users might find useful, you will need to follow some steps. First of all, each plugin has a certain structure. You need to create a plugin folder with the config.json, index.html and plugin code.js files. Don't forget to use plugin methods and events while writing the plugin code that I described in the OnlyOffice API documentation. To be able to create a plugin for OnlyOffice, you need to know what the main components are and how they work. Each plugin consists of three core elements. A config.json file is a plugin configuration file that helps to register the plugin in the OnlyOffice editors. It informs the editors about what kind of plugin is being integrated, shows the path to the plugin source code, and determines how the plugin is displayed on the plugins tab. The next core element of any plugin is a plugin code.js file. This is a JavaScript file that contains the source code of the plugin and describes what and how must be done by the plugin. This file is placed to the plugin root folder together with the config.json and index.html files. The last core element is an index.html file. This is an HTML file that contains the plugin UI. It also connects the plugin code.js file and the plugin resources from the resource folder. In other words, it's more like the plugin entry point that connects the plugin.js file, the base file needed for the correct performance of the plugin. The body of this file can contain the special tags with the placeholders where the plugin components will be inserted. After you create the required files in accordance with the methods described in the OnlyOffice API, you need to adjust the style of your plugin. This is the second step. To do so, just add the OnlyOffice style sheet to the index.html file. This can be done with a string that you can see on the slide. After that, you need to localize your plugin. This step requires that you create the translations folder in the plugin directory with JSON files for each language that you want to add the translation for. For this purpose, you need to translate the config.json file. To do that, open it and file all the stringing in English. Also, find all the stringings you want to be localized to from the index.html and the plugin code.js files and create their list. Then create the translations folder in the plugin directory. The detailed procedure is described in the OnlyOffice API documentation. The next step is preparation. You need to prepare your plugin for publication. This involves some actions. First of all, create an About window for your plugin. Add a short description and indicate the plugin version, the developer name and link to the official website. Then prepare icons for the plugin and put them into the main plugin folder. Don't forget about a readme file where you can add a detailed plugin description, installation and usage instructions, known issues, etc. Put this file into the main plugin folder. When everything is done, you can proceed with the next step. Now your plugin is ready if you have done everything correctly. However, we recommend testing your plugin before publication. For that, you need to connect your plugin to the desktop app, the self-hosted version of the cloud-based OnlyOffice editors according to the installation instruction in the OnlyOffice API documentation. Test the performance of your plugin. If it works how it's supposed to, it's time to get your plugin published. If something goes wrong, get back to the previous steps and make sure that you do the right things. All plugins for the OnlyOffice editors can be found on OnlyOffice app directory. If you want your plugin to be listed there, you can contact the OnlyOffice team at marketingaddonlyoffice.com and tell us about your plugin. Don't forget to prepare a brief description of your plugin and tell us how it improves the OnlyOffice editors. If you find it useful, we will check it and add it to app directory so that other users can find it and install it. We are always open for collaboration. At the end of our presentation, we would like to share our plans with you. There are a lot of things to do to make the OnlyOffice editors more powerful. In terms of functionality, we want to add new editing features like the ability to insert animations in presentations. Also, we want to create new connectors. For example, the users of Trella, Slack, Strappy will be able to enable document editing within their platforms by integrating OnlyOffice. Another important direction for us is fillable forms. We want to make them more secure by allowing users to add digital signatures and enable encryption. To make OnlyOffice available, we will continue working on the SaaS version of our online editors, OnlyOffice docs in the cloud. WAPI support is also very promising, so we plan to enhance it significantly and provide more ready-to-use integrations. When it comes to languages, we want to add RQL support. This feature has been requested by our users for a long time, so our desire is to make it available this year. Additionally, we are working on new localization options so that our users who speak different languages can use OnlyOffice with ease. Finally, we will also work on better compatibility of the OnlyOffice editors with ARM-based devices. This is our roadmap for the near future. Now, let me tell you a few words about our plans in terms of plugins. In the future, we want to launch a brand-new OnlyOffice marketplace where our users will be able to find all plugins and third-party apps for our editors. Also, we plan to create extensions for the OnlyOffice web editors that will be compatible with all modern browsers. Automatic installation of plugins in the desktop app is also on our roadmap. This will allow users to add plugins within seconds without many of manipulations. Additionally, we will concentrate on creating video tutorials about macros and OnlyOffice plugins. You will find them on our official YouTube channel. And of course, we will keep releasing new plugins. For example, Speech Recognition, Zoom and Markdown. Follow our official blog and stay tuned for more news. I would like to finish this presentation with a call to developers. We are really interested in collaborating with those who can create plugins for the OnlyOffice editors and make a fair contribution to our open-source project. If you have expertise and passion for creating something new, you are one we need. Just create a useful plugin for the OnlyOffice editors. Contact the OnlyOffice team at marketingaddonlyoffice.com. Make sure that your plugin is available on OnlyOffice app directory and get a special financial reward. Collaboration terms are discussed individually. Don't miss your chance to become a part of the OnlyOffice project. Thank you very much for your time. I hope this presentation has been useful for you. And now you have a clear understanding of the OnlyOffice suite, what feature it has and how you can customize it by adding and creating new plugins. If you have any questions, don't hesitate to ask. I will be happy to help you.