vtex-io-service-apps

Standardize VTEX IO backend services with IOClients and service wiring.

39|9|Updated Mar 16, 2026
One-click install
npx skills add https://github.com/vtexdocs/ai-skills --skill vtex-io-service-apps
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vtex-io-service-apps
Source: https://github.com/vtexdocs/ai-skills/tree/main/tracks/vtex-io/skills/vtex-io-service-apps
Command: npx skills add https://github.com/vtexdocs/ai-skills --skill vtex-io-service-apps

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

VTEX IO backend development often requires consistent wiring of services, middleware, and client usage. This Skill enforces using @vtex/api clients via IOClients and provides clear patterns for the Service entry point, context, and client registration to reduce boilerplate and errors.

Core Features & Use Cases

  • Standardizes the backend service structure (Service entry, routes, and middleware) and the correct use of IOClients, JanusClient, ExternalClient, MasterDataClient, and ctx.clients.
  • Guides best practices for registering and consuming clients, ensuring authentication context, caching, and metrics are consistently applied.
  • Covers common VTEX IO backend patterns: REST API routes, GraphQL resolvers, event handlers, and scheduled tasks within node-based apps.

Quick Start

Follow the patterns in this Skill to scaffold a VTEX IO backend service with a Service entry point and properly registered IOClients.

Frequently Asked Questions about vtex-io-service-apps

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a VTEX IO backend service with properly registered clients?

Structure a VTEX IO backend service by using the @vtex/api Service entry point to wire routes, resolvers, and IOClients. This ensures proper client registration and consistent middleware usage across your node-based app.

What is the correct way to use IOClients and JanusClient in a VTEX IO app?

Use IOClients and JanusClient in a VTEX IO app by extending @vtex/api client classes and accessing them via ctx.clients. This standardizes HTTP calls, authentication context, caching, and metrics for backend requests.

How do I create REST API routes and GraphQL resolvers in VTEX IO node apps?

Create REST API routes and GraphQL resolvers in VTEX IO node apps by composing them within the Service entry point. This keeps route counts manageable and ensures correct wiring with registered clients and event handlers.

Can I use ExternalClient for HTTP calls outside the VTEX IO platform context?

Yes, you can use ExternalClient to handle HTTP calls to external APIs outside VTEX IO. It integrates with the @vtex/api client structure, ensuring consistent caching and metrics while accessing third-party services via ctx.clients.

When do I need to implement event handlers and scheduled tasks in VTEX IO backend services?

Implement event handlers and scheduled tasks in VTEX IO backend services when you need to process asynchronous platform events or execute automated routines. They are wired directly into the Service entry point alongside REST routes and GraphQL resolvers.

Why should I standardize client usage with @vtex/api instead of custom HTTP implementations?

Standardizing client usage with @vtex/api reduces boilerplate and errors by providing built-in authentication, caching, and metrics. Custom HTTP implementations lack this native VTEX IO context integration, leading to inconsistent backend service behavior.