FastStore is an open ecommerce framework built using modern technologies that aims to deliver the building blocks necessary for creating your custom ecommerce experience. With these building blocks you can achieve:
- Multiregion stores with native internationalization support
- Great Performance (90+ on Google's page speed insights)
- SEO ready pages with Google's Rich Results support
- CMS managed content
- Jamstack based (deploy with Netlify, Vercel and any other JAMStack platform)
- Marketplace ready with support to millions of skus
- Intelligence via Google Analytics and GTM
- Evergreen stores
The web is a wild and noisy environment. Many projects claim to solve many different aspects of web development but none of them solves the ecommerce problem satisfactorily. Ecommerce is a very complex case where performance is a must, but personalization is the key.
After years of developing ecommerces, FastStore creators packaged all of this knowledge into easy, ready to use building blocks for crafting production-ready, multi-region marketplaces.
FastStore not only contains code, but knowledge and guidelines to change the way you think and build ecommerces
This project has a very well defined list of priorities. When solving an issue, a lower-ranking priority must not degrade or override an upper ranking priority. The priorities are all about the stores' user experience and retailer satisfaction about it. For us that means:
- Performance - Great score on Lighthouse and Core Web Vitals
- Stability - E2E tests are complete and make sure the critical paths are covered
- SEO - Stores should pass on all aspects of the Google search console, like complete structured data and web vitals
- Feature completion - Enable you to craft your custom ecommerce experience
FastStore core is composed of two main packages:
store-ui
: A performant ecommerce ready component librarystore-sdk
: An SDK for ecommerce to solve your basic ecommerce needs, like cart, pixel management, session etc.
These packages have bindings to popular frameworks, like Gatsby. These bindings are listed in this monorepo and help you create stores with Multiregion, Internationalization etc. We also want to support other React frameworks in the future, such as Next.JS, or even React applications bootstrapped using Create React App
Jamstack focuses on performance and stability, which is part of our core philosophy.
Maintaining the FastStore performance and stability is a key element. For this, using Lighthouse CI and Cypress in your CI/CD pipeline is highly recommended.
We provide a base setup for both platforms so you can easily add them to your CI/CD platform.
FastStore docs are under development. If you are not sure where to start, make sure to check the Getting Started. Check out the available docs below:
- Concepts
- How-to Guides
This is still a work in progress, however, if you are also an adventurous person, you can read the code and have some fun!
graphql-js
package is cumbersome when using yarn link
because it requires only one instance of the package and there are two.
To solve this problem you can deduplicate the instances by going into this project's node_modules
and changing the file node_modules/graphql/index.js
to:
module.exports = require('<path/to/the/tenant.store/node_modules/graphql/index.js>')
Package | Description | Version |
---|---|---|
@vtex/gatsby-plugin-cms | Connects the Store to our CMS solution | |
@vtex/gatsby-plugin-graphql | Builds and preprocess the store's GraphQL queries | |
@vtex/gatsby-plugin-i18n | Allows internationalization on Stores | |
@vtex/gatsby-plugin-nginx | Exports a Nginx configuration base on the Store's routes | |
@vtex/gatsby-plugin-theme-ui | Allows style theming on the Store | |
@vtex/gats 75D4 by-source-vtex | Fetchs and exports ecommerce information from VTEX APIs | |
@vtex/gatsby-theme-store | Creates the base infrastructure for the Store site | |
@vtex/gatsby-plugin-thumbor | Integrates thumbor service with gatsby-plugin-image | |
@vtex/lighthouse-config | Exports a Lighthouse CI configuration to allow automatic tests on each Pull Request | |
@vtex/store-ui | Exports basic Store components. Checkout our storybook | |
@vtex/store-sdk | Exports basic logic hooks for creating your custom ecommerce |
These are the clients running in production with FastStore:
Question: I'm having errors while running/building a store. There are the following log Cannot query field "vtexCms" on type "Query"
or an error with Status Code 403
.
Answer: You need to log in VTEX by vtex login <account>
Question: I'm trying to add a dependency inside a specific package with yarn add <package>
, but it's not working.
Answer: Each package has a workspace, so you need to add libraries like this: yarn workspace <workspace> add <package>
Example: yarn workspace @vtex/store-ui add react-modal
If you find any issues on the project you would like to report, please create an issue on the repository. If you have a question, idea or want to show us something cool you have built, feel free to create a discussion.