Frequently Asked Questions (FAQ) 

How is Gadget priced? 

Gadget is free to use for small applications which don't receive much traffic. After the free tier limits are reached, Gadget charges fixed fees for units of request CPU time, stored data, network transfer, and number of reads/writes performed on a database.

Gadget runs on serverless systems throughout the whole stack, so you're never charged for a running unit of capacity that you aren't using, or unused database capacity.

For more information on current pricing, see https://gadget.dev/pricing.

How can I get support? 

We offer documentation, a Discord and chat support (with no SLA) to all of our users. On our paid plans, we also offer pair programming and solutions engineering calls to help unblock developers on their projects.

Why is there no open-source version? 

Much of the magic of Gadget comes from the hosted, batteries-included approach we've taken. Gadget runs a lot of infrastructure behind the scenes so you don't have to, like highly available databases, event queues, dataflow processors, operational tooling, and more. We don't want you to have to set that all up yourself -- it's too much work, and we want to do it for you. As a result, we're not able to offer the developer experience we're aiming for in the open-source model.

If Gadget is missing a feature I need, what should I do? 

Check out the roadmap for upcoming feature updates or let the Gadget team know by dropping a request within our Discord.

Where do I build my APIs in Gadget 

In Gadget, you don't need to manually build your APIs. Gadget automatically generates a powerful GraphQL API for your application based on the Models you create.

Why does Gadget use a GraphQL API? 

Gadget uses GraphQL APIs over REST and SOAP for efficiency, allowing developers to request precise data for specific needs without extra requests. GraphQL provides built-in type checking and schema validation which helps to enforce data consistency. The thriving GraphQL ecosystem includes a number of tools, like the API Playground, that offer developers enhanced flexibility and a better developer experience.

However, if you prefer not to work with GraphQL directly, Gadget alternatively offers client packages for JavaScript (JS) and React.

Can I migrate an existing published app onto Gadget? 

Yes, it's totally possible! Migrating an existing application to Gadget involves recreating your data models, importing data, and rewriting custom logic within Gadget's environment.

While there isn't a one-click migration solution, Gadget's tools make the process more manageable. Our best suggestion would be to reach out in our Discord server, where members of our support and engineering teams can reach out to gain further understanding of your current application structure and the best efficient solution to do so.

Can I import an existing database schema into Gadget? 

Currently, Gadget does not support direct schema import. However, you can recreate your existing schema using Gadget's data modeling tools and then import your data.

Does Gadget provide solutions to handle GDPR compliant apps? 

Yes, especially when working with Shopify. Gadget has a built-in Shopify GDPR request model that makes it easy to set up and respond to Shopify's mandatory GDPR webhooks. This ensures that your app meets the security and user data protection requirements of Shopify's App Store policies.

Read more about our GDPR solution in our Shopify connections guide.

What counts as a database read? 

Database reads are counted by counting the number of rows returned out of the PostgreSQL database for your application.

For example, if you have a table with 100 records in it, and only 5 of them have the published field set to true, and you make an API to only fetch records with the published field set to true, you'll get 5 records returned and be charged for 5 database reads.

If I require IP whitelisting is Gadget able to provide me with an IP address? 

Gadget's inbound IP address is not stable and cannot be whitelisted for DDOS prevention.

However, our outbound IP can be stable and can be whitelisted with the following address 35.226.236.42.