/flagship

🚢 A tool for building your best shopping app

Primary LanguageTypeScript

A framework for building your best shopping app

Flagship

About Flagship

Flagship accelerates development

Flagship accelerates development of the best omnichannel commerce experiences by providing a full solution framework with routing solutions, components and integrations. In short, it enables you to focus more on innovations that matter.

Flagship helps you to:

  • Build progress web apps and native apps in a singular codebase using components based on proven best practices
  • Connect commerce APIs automatically using our API adapters
  • Manage personalized engagement campaigns using the tools you already use or ours

It's written in TypeScript, and currently supports React Native.

How It Works

Building with Flagship

Flagship is comprised of a core flagship Nx plugin and a number of ancillary modules. These work together to help you build an ecommerce experience.

You can use modules independently — with or without the flagship core package. For example, fsproductindex displays a product index which you can use as a screen or embed as part of a larger screen.

Flagship core manages the boilerplate Android, iOS, and web code, similar in concept to Expo. For a more detailed exploration of the features of Flagship, see the flagship package.

Flagship foundation architecture diagram

Modules are built using a shared stack of foundation packages which provide a unified interface for networking, analytics, commerce integrations, components, and more across each of our supported platforms. Higher-level modules do not need to implement platform-specific code.

Foundation packages provide a normalization over their integrations. For example, fscommerce provides a single interface to query both SFCC and Shopify. The higher-level fsproductindex module doesn't need to know what the data source is to display a grid of products.

These foundation packages are built on top of one another. For example, fscomponents has props that inherit from fscommerce; fscommerce sends analytics using fsengage; and fsengage talks to the network using fsnetwork.

Platforms

Supported platforms are:

  • android
  • ios
  • web

Nrwl Nx

In Flagship 11, we began integrating Nrwl Nx into the core of Flagship. The existing flagship package can still be used without Nrwl Nx, however we are very excited about the improvements that Nx brings to the development workflow. The flagship-nx package includes the Flagship Nx plugin. You can use the init executor in this package to create an ios and android file for any nx project. The webpack-nx includes a ready-made webpack config which supports all Flagship modules.

Troubleshooting

Troubleshooting Flagship

If you encounter issues while using Flagship, please check out our Troubleshooting guide where you might find the answer to your problem. If you encounter something that is not listed there, try searching for the issue in GitHub.

We want your feedback! Please open a new issue to report a bug or request a new feature.

Need more help? Contact us.