# Root Developer Documentation > Complete developer documentation for building Apps and Bots on the Root platform. > Generated: 2026-10-08 | Content-Hash: 856dd7565acc ## Instructions - Apps use `@rootsdk/server-app` (server) and `@rootsdk/client-app` (client). Bots use `@rootsdk/server-bot`. - TypeScript-first. All examples use TypeScript. - Server code runs in the Root cloud. Client code runs in a Chromium container. - For real-time data, use event subscriptions, not polling. - All async methods return Promises. Use async/await. - Bots are server-only — same community API as apps, but no client UI. > **Note:** This file is large (~569K tokens). For most AI tools, use the smaller segment files instead — see [llms.txt](llms.txt) for guidance. ## Table of Contents ### Overview - [Choose between a Root App and a Root Bot](#file-overview-choose-app-or-bot) - There are two ways to add custom functionality to Root communities: Root Apps and Root Bots. ### App Development - [Build a Root App](#file-app-docs-app-home) - Welcome! Root Apps are full applications that live inside a community, with their own interface, server-side logic, and a private connection between... - [Configure](#file-app-docs-configure-index) - Configure your code to run on the Root platform. - [Manifest `settings`](#file-app-docs-configure-manifest-global-settings) - Configurable global settings. They're declared in your manifest and set by community members with the `Manage Apps` permission during and after... - [Manifest `id`](#file-app-docs-configure-manifest-id) - Unique identifier for your project, assigned by the [Root Developer Portal](https://dev.rootapp.com). Required. - [Manifest overview](#file-app-docs-configure-manifest-overview) - Your **manifest file** defines how your code integrates with the Root platform. - [Manifest `package`](#file-app-docs-configure-manifest-package) - Deployment and startup configuration for your app's client and server code. Required. - [Manifest `permissions`](#file-app-docs-configure-manifest-permissions) - Permissions control which parts of the Root Community API your code can use. - [Manifest `version`](#file-app-docs-configure-manifest-version) - Semantic version string for your release. Required. - [Developer mode](#file-app-docs-debug-developer-mode) - Copy entity IDs from the Root client for use in API calls and debugging. - [Debug](#file-app-docs-debug-index) - Tools and features for diagnosing issues in your app or bot. - [Developer log](#file-app-docs-debug-logging-developer) - Debug your deployed server code by viewing console output in the Developer Portal. - [Choose your settings](#file-app-docs-design-app-settings) - Decide what your app lets people configure, who can change each thing, and where each value lives. - [Choose your UI framework](#file-app-docs-design-choose-ui-framework) - The client side of a Root App is a regular web app. It runs inside a Chromium-based container and starts by loading your `index.html` file. - [Plan your App's client-server networking API](#file-app-docs-design-client-server-networking) - Root Apps follow a **client-server model** with a **thin client**. Your server does most of the work and is the source of truth for all data. - [Define your App's features](#file-app-docs-design-define-your-features) - Before you write code, take some time to plan. This article walks through standard planning steps, tailored for Root. - [Handle failures in a real-time environment](#file-app-docs-design-handle-real-time-failures) - Real-time software, by its nature, involves rapid data changes and constant synchronization. Networking failures and disconnects will happen. - [Design](#file-app-docs-design-index) - The Root platform enables developers to create powerful automation and integration tools that enhance community collaboration. - [Integrate with the Root platform](#file-app-docs-design-integrate-with-platform) - Your App runs inside Root: it should feel like part of Root. That means using the same tools and patterns the platform uses to interact with... - [Is your App right for Root?](#file-app-docs-design-is-your-app-right-for-root) - **Root Apps** are multi-user applications with real-time updates that are installed into a community. - [Make your App feel collaborative](#file-app-docs-design-make-collaborative) - Collaborative Apps share updates in real time. When one member does something, everyone else sees it right away. - [Choose your permissions](#file-app-docs-design-permissions) - Permissions control which parts of the Root Community API your code can use. - [Save data early and often](#file-app-docs-design-save-data-early-and-often) - All persistent data in your App should be stored on your server. - [Should your App look like Root?](#file-app-docs-design-should-it-look-like-root) - Does your App have its own brand colors? Or do you want to match Root's colors? Either way works. It's your choice. - [App links](#file-app-docs-develop-client-app-links) - Create a shareable link to a specific place inside your App, so a member can post it in a channel and send other members straight there. - [Audio](#file-app-docs-develop-client-audio) - Play sound with an `