The Gadget platform includes an AI assistant that can help you build your application. The assistant can help you with a variety of tasks, such as creating models, actions, and data generation, as well as writing code. The assistant can also help you debug your application by providing suggestions for how to fix errors.
Gadget has a built-in, scalable logging system available for use in every application. Gadget emits logs about important happenings within your application by default, like incoming HTTP requests, webhooks, and connection syncs. You can also emit your own logs. Logs are viewable and searchable in Gadget's built-in Log viewer.
Gadget's CLI, named ggt, is the command-line interface for the Gadget platform.
ggt provides additional functionality for working with your Gadget applications using your existing tools on your machine. ggt isn't
required for building end-to-end Gadget apps but supports syncing files locally (and more soon) for your preferred coding experience.
Gadget offers built-in support for storing and accessing environment variables.
For more information on how to manage your environment variables read the guide here.
Unit testing
You can use Gadget's CLI to write and run unit tests for your Gadget application on your local machine. You can also set up a CI/CD pipeline that runs your unit test suite automatically when you push code to source control such as GitHub.
For more information on setting up a unit test framework and CI/CD pipeline, see the unit testing guide.
Debugging
You can use Gadget's CLI, ggt to set up a backend debugger in VS Code or any of its forks.
The operations dashboard provides visibility into your application's performance, errors, and resource usage through a collection of pre-built charts and tables.
Gadget automatically manages a serverless runtime environment for your application. This environment is a Linux-based virtual machine that runs vanilla Node.js, and is optimized for running server-side Gadget code. Gadget manages all aspects of the environment, including starting and stopping workers, security upgrades, deployment, and handling requests.