Skip to content
littleworksdocs

Explore the documentation

Meet LittleworksA little backend for what you’re building on Shopify.Littleworks or your own appWhat it takes to give a Shopify feature a backend: with Littleworks, or with a custom app you build and run yourself.Connect to LittleworksChoose the CLI, a plugin, or a remote MCP connection.CLIConnect from your terminal with Shopify approval and no manual tokens.Claude pluginThe Littleworks MCP connection and agent guidance in one package.OpenAI pluginThe Littleworks MCP connection and agent guidance in one package.MCP with OAuthConnect a compatible client directly, without a marketplace plugin.Build with an agentThe operating guide for agents building on Shopify with Littleworks.Write a workA JavaScript handler, a small manifest, and a version you test and then publish.Keep secretsEncrypted credentials, shared across your store’s works.Call external servicesMake public HTTPS API requests from a work using http.fetch().Store dataDocument collections with a small API, scoped automatically to the work that uses them.Call ShopifyCall Shopify’s Admin and Storefront GraphQL APIs with credentials held by Littleworks.Store filesKeep uploads such as artwork and photos in the merchant’s Shopify Files, uploaded by the browser straight to Shopify.Expose an endpointConnect an existing frontend to a work through a small JSON API.Customer access and invitationsRequire a signed-in shopper or a narrow, expiring invitation before a work runs.RecipesUseful things to build for your store, with the backend already taken care of.Product reviewsCollect customer reviews, verify purchases, and publish approved content directly into your Shopify theme.Customer wishlistsGive signed-in customers a persistent list of products they can revisit across devices.Customer quote requestsCollect a customer’s products, quantities, and requirements without turning a request into an order.Back-in-stock alertsCollect confirmed signups on sold-out variants, email them through your own provider when stock returns, and see every signup and send in your admin.Transactional emailSend email from your works through your own provider, never twice for the same thing, and see what was sent and what failed.Build a merchant pageDescribe your records and what merchants do with them; Littleworks renders a native Shopify admin page.Run works on their ownRun a work when something happens in the store, on a schedule, or from a Shopify Flow workflow.Run background jobsQueue runs for later or in the background: fan out to thousands of customers, import in pages, follow up days later, and retry what fails.MCP tool referenceTools to inspect, deploy, run, and organize the backend for a connected store.Usage and allowancesSee what your works use, how much capacity remains, and when allowances reset.Inspect and troubleshootFind the relevant run, understand the failure, and make the next change deliberately.Limits and securityThe current runtime boundaries, data isolation model, and execution allowances.
Shopify admin
Reference
Markdown

Limits and security

The current runtime boundaries, data isolation model, and execution allowances.

Execution limits

Each run gets its own sandbox with these limits. There is no separate CPU limit and no limit on the number of SDK calls: a run can compute and call storage, Shopify, secrets and HTTP for its whole deadline.

ResourceLimit per run
Run deadline10 seconds
SDK calls (storage, Shopify, secrets, HTTP)No limit; the deadline bounds a run
External requests, including redirect hops50, up to 5 seconds each
External request / response body64 KiB / 256 KiB
Bundled JavaScript source128 KiB
Input / document body64 KiB / 64 KiB
Result256 KiB
Documents per SDK list100, or 1 MiB of documents
Operations per atomic batch50 distinct documents
Secrets (per store)50, up to 8 KiB each

A deadline stops further capability calls but doesn’t undo changes already committed, so write works that can safely run again.

Plan allowances

PlanRuns per billing periodRetained documentsPublished admin pages
Starter ($19)10,0002,0002
Growth ($39)50,00010,0005
Scale ($79)250,00050,00015

Usage warns at 80% and 95% of each allowance. Automations run at most 6 at a time per store, and run logs and detailed errors are kept for seven days; run history, saved versions and records stay. Run allowances reset with the store’s Shopify billing period, and cover test and real runs from every entrypoint. Documents don’t reset; deleting a document frees its place. Redeploying or renaming a work doesn’t reset usage. Check Usage or get_usage for the store’s current allowances and what remains.

On every planLimit
Document size64 KiB of JSON
Collections200 per store
External HTTPS requestsIncluded, up to 50 per run
Shopify GraphQLIncluded, within the store’s approved permissions and Shopify’s own throttling
Responses served from cacheIncluded; they don’t use runs. Public GET works opt in

Stored JSON is measured in UTF-8 bytes, and expired records count until cleanup removes them. A full document allowance stops new documents, but updates and deletes keep working. An atomic batch can change up to 50 documents. Littleworks also protects public endpoints from bursts of traffic; that protection is automatic and separate from plan allowances.

Isolation and permissions

Code runs in a separate sandbox with no platform secrets or database bindings. Littleworks supplies scoped capabilities for each invocation. Storage access is constrained to the current store and feature. Shopify calls require the work’s explicit permission and the app’s approved scopes.

Direct network access is blocked. Works use http.fetch() for public HTTPS APIs and shopify.admin.graphql or shopify.storefront.graphql for Shopify. Secrets work like an app’s environment variables: every work in the store can read them, and only the agents and people the merchant connects can deploy works. Works are plain JavaScript, and littleworks export writes every work’s source, the store’s records and its pages to files you keep (export).

Public endpoint responsibilities

Rate limits and input validation are automatic. Cached public reads are served to everyone who sends the same query, so never return personal data from a cached work. Customer and invitation modes validate identity or an action token before execution. Your work still enforces ownership and business rules. CORS is not authentication, and an order ID supplied by a visitor is not proof of purchase. See Customer access and invitations.

Building around the boundaries

Littleworks runs the backend of store features. For the things it doesn’t do itself, there’s usually a direct route:

You needHow to build it
Files, such as artwork or photosStore files in the merchant’s Shopify Files with shopify.files. A work issues an upload target, the browser uploads straight to Shopify, and a work saves the file and keeps its ID on a record. Needs Files access (write_files); images and files up to 20 MB, videos up to 1 GB.
Email, SMS or another serviceCall its API with http.fetch, using a key from secrets. Included on every plan. For email, follow the transactional email and back-in-stock recipes: your provider sends, and the outbox makes sure nobody is emailed twice.
A service that uses OAuthStore an API key or long-lived token as a secret. Littleworks doesn’t run per-user OAuth flows.
Work longer than one runQueue background jobs: each run does one page or batch and continues with a cursor, or fans out keyed batches, with retries and at most 2 job runs at a time per store. For bulk Shopify writes, use mutations that take many items at once, such as inventorySetQuantities with 250 quantities a call.
npm packages or TypeScriptThe CLI bundles them into one file before deploying. MCP clients deploy self-contained JavaScript.
Storefront pages and theme UIYour theme renders them and calls a work for data. Agents use Shopify’s own theme tools for theme changes.
Signed-in customers on Hydrogen or another headless storefrontThe storefront’s server signs a short customer assertion with a store secret and calls the work’s direct URL. See customer access.
Pages in Shopify adminViews render native admin pages from a description of your records.
To start a Shopify Flow workflowStart it from one of Shopify’s triggers and run a work from it. The work’s result returns to Flow for later steps.

Not supported: private-network requests, streaming responses, HTML hosting, cookies and custom response headers. Read the connected store’s get_context for current capabilities before deploying.