This is the legacy documentation of Project-level Custom Applications, which is in maintenance mode. Visit the new documentation for Org-level Custom Applications.
Tooling
commercetools strives to provide the best developer experience for building Custom Applications, allowing you to focus on building features and business logic instead of focusing on tooling. commercetools open source packages can be grouped into two parts: development tools and application libraries.
Development tools
The packages in this group are used for things around development like starting a dev server, providing Babel/Jest/ESLint presets, etc.
@commercetools-frontend/babel-preset-mc-app
This package provides an advanced Babel configuration that includes plugins for basic features as well as optional features. Check out the package main module to see the exact list.
@commercetools-frontend/create-mc-app
This package is used to bootstrap and install one of the application starter templates.
@commercetools-frontend/eslint-config-mc-app
This package provides an ESLint configuration for linting, optimized for Merchant Center applications.
@commercetools-frontend/jest-preset-mc-app
This package provides a configuration for running Jest tests, optimized for Merchant Center applications.
@commercetools-frontend/mc-scripts
This package provides a command-line tool including several development commands. See available scripts for more information.
Application libraries
The packages in this group are used for developing the React application. They are bundled with Rollup for both CommonJS 1 and ES Modules 2 targets. Some of those packages should not need to be used directly, others are necessary to build an application.
@commercetools-frontend/actions-global
This package exposes redux actions that can be used to report errors, show notifications, etc.
@commercetools-frontend/application-components
This package exposes UI components that can be used to build specific parts of the application's UI. The components follow the same principles of the UIKit components, but are more specific to Merchant Center applications.
@commercetools-frontend/application-shell
This package is the main library used to run a Merchant Center application. See Application Shell for more information.
@commercetools-frontend/application-shell-connectors
This package exposes components that use React Context and therefore can be used to retrieve data from any part of the application.
@commercetools-frontend/assets
This package provides static assets such as images, etc. that can be used throughout the Merchant Center application.
@commercetools-frontend/browser-history
This package exposes an enhanced version of the browser history, used by the React Router.
@commercetools-frontend/constants
This package exposes useful constant variables such as HTTP targets, etc.
This package provides translations for the other application kit packages. It also exposes some shared
react-intl
messages, for example for button labels.This package provides localized data for countries, currencies, languages, etc.
@commercetools-frontend/notifications
This package exposes a notification system built on top of Redux and is bundled within the
application-shell
. To use notifications, please refer to the@commercetools-frontend/actions-global
and@commercetools-frontend/react-notifications
packages.@commercetools-frontend/permissions
This package exposes components to handle permissions, used to restrict access to certain parts of the application.
@commercetools-frontend/react-notifications
This package exposes components as React bindings for the notifications package.
This package exposes components and Redux actions for declarative data fetching, built on top of the JS SDK. This package should be used for connecting to REST APIs, as for GraphQL we use React Apollo.
@commercetools-frontend/sentry
This package exposes functions to report errors to Sentry.
@commercetools-frontend/url-utils
This package exposes functions to help working with URLs.