Code Monkey home page Code Monkey logo

faststore's Introduction

FastStore

An open ecommerce framework

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 with our no-fork based approach

Why building FastStore?

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

Project philosophy

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:

  1. Performance - Great score on Lighthouse and Core Web Vitals
  2. Stability - E2E tests are complete and make sure the critical paths are covered
  3. No fork - Features should be delivered by dependencies and not by a store fork
  4. Feature completion - Enable you to craft your custom ecommerce experience

Why Jamstack and Gatsby?

Jamstack focuses on performance and stability, which is part of our core philosophy.

Gatsby has a philosophy where customization can shadow the default theme implementation. This means we are able to deliver new performance improvements and bug fixes only by upgrading a dependency in your project. Also, Gatsby is very aligned with our performance concerns by implementing the PRPL architecture.

Continuous Performance and Stability

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.

Docs

FastStore docs are under development. For now, the available docs are:

  • Architecture: learn more about this project's architecture
  • Component: learn how to develop a reusable component

Contributing

This is still a work in progress, however, if you are also an adventurous person, you can read the code and have some fun!

How to develop

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>')

Packages

Package Description Version
@vtex/gatsby-plugin-cms Connects the Store to our CMS solution npm version
@vtex/gatsby-plugin-graphql Builds and preprocess the store's GraphQL queries npm version
@vtex/gatsby-plugin-i18n Allows internationalization on Stores npm version
@vtex/gatsby-plugin-nginx Exports a Nginx configuration base on the Store's routes npm version
@vtex/gatsby-plugin-theme-ui Allows style theming on the Store npm version
@vtex/gatsby-source-vtex Fetchs and exports ecommerce information from VTEX APIs npm version
@vtex/gatsby-theme-store Creates the base infrastructure for the Store site npm version
@vtex/lighthouse-config Exports a Lighthouse CI configuration to allow automatic tests on each Pull Request npm version
@vtex/store-ui Exports basic Store components npm version

Who's using FastStore?

These are the clients running in production with FastStore:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.