/flatmarket

A free, open source e-commerce platform for static websites.

Primary LanguageJavaScriptMIT LicenseMIT

flatmarket

Build Status codecov.io

Flatmarket is a free, open source e-commerce platform for static websites. It is reliable, secure, and inexpensive to operate.

The platform uses Stripe for payment processing and is built on the latest web technologies like hapi, React, and Webpack.

At its core is a batteries-included CLI to help you get started quickly. Modules are also packaged individually so you can customize your rig.

How it works

The Flatmarket architecture consists of a static website paired with a proxy server for sending payments to Stripe. The browser and server share a public schema (represented by a JSON document) to prevent charge tampering. The store operator can manage inventory and store configuration by updating the schema document.

Architecture

Architecture Diagram

  1. The web browser loads the single-page app from the static file server (e.g. AWS S3).
  2. The user submits their credit card information with Stripe Checkout and the web browser obtains a new Stripe token.
  3. The web browser sends the token and product ID the Flatmarket server.
  4. The Flatmarket server pulls the product information from flatmarket.json hosted on the static file server.
  5. The Flatmarket server sends the charge to Stripe.

Live Demo

Take a minute to go try the live demo. Charges can be submitted using credit card number 4242 4242 4242 4242. A test charge will be created in Stripe, so you should avoid submitting personal information.

Design goals

  • It should cost next-to-nothing to operate.
  • It should be reliable and scalable. This is achieved by offloading expensive and complicated operations to third-party services.
  • It should be secure.
  • It should be easy to customize, update, and deploy.

Features

Use cases

Flatmarket isn't appropriate for every e-commerce project, but it is uniquely suited for the following situations:

  • high traffic but low sales volume.
  • high touch, where every transaction requires human involvement.
  • sale of digital goods, made-to-order goods, or donations (where stock keeping is not required).
  • any situation where low cost is a priority.

Installation

$ npm install flatmarket

Get Started

$ flatmarket src/flatmarket.json --component your-theme.jsx

Visit the example repo for a working example and read the API Reference for a complete list of options.

Platform

Themes

Reference

See REFERENCE.

Customization

See CUSTOMIZATION.

Contributing

See CONTRIBUTING.

License

See LICENSE.