Skip to content
This repository was archived by the owner on Feb 27, 2026. It is now read-only.

Commit 1baa388

Browse files
committed
Update README
1 parent 913a323 commit 1baa388

6 files changed

Lines changed: 81 additions & 5 deletions

File tree

README.md

Lines changed: 81 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,82 @@
1-
## Update
1+
# Mayocat Shop
22

3-
Mayocat-shop was an attempt at building an easy to use open-source marketplace platform.
4-
It's a retired project as of 10/02/2017, as the project did not gain enough traction and I've moved on to other ventures.
5-
While bugfixes might make it to this repository (as there are production sites running on mayocat), I have no plan to continue development and add new features.
6-
If there is interest in continuing development of the platform, I'll gladly hand over commit and administrative rights to potential contributors.
3+
Open source e-commerce and marketplace platform on the JVM.
4+
5+
> **Note:** This project is retired as of 2017. It is no longer actively developed, though production sites still run on it. The repository remains as a reference.
6+
7+
## Motivation
8+
9+
Running an online store or a multi-vendor marketplace shouldn't require a monolithic CMS or assembling a dozen services. Mayocat Shop is a self-contained platform that one person can deploy easily and a non-technical merchant can operate.
10+
11+
It ships as a single JAR that can be pointed at a PostgreSQL database with a theme dropped in to get a store running — back-office, storefront, and REST API included.
12+
13+
## Features
14+
15+
E-commerce platform with content management and multi-vendor marketplace support:
16+
17+
- **Run one store or many** — multi-tenancy is built in. Each storefront gets its own catalog, configuration, theme, and data from a single deployment.
18+
- **Sell things** — products with variants, collections, cart, checkout, payment (PayPal and extensible), shipping (flat rate, weight-based, price-based), taxes, orders, invoicing.
19+
- **Manage content** — pages, blog, home page curation. The CMS is a first-class citizen next to the catalog.
20+
- **Customize without coding** — theme system with HTML templates and a declarative addon system. Need a color picker on your products? Declare it in your theme config, it shows up in the back-office.
21+
- **Integrate** — REST API for every entity, webhooks for order and payment events, Elasticsearch-powered search.
22+
- **Localize** — multi-language product content, locale-aware configuration.
23+
24+
## Screenshots
25+
26+
Product editing with rich text, image gallery, and inventory management:
27+
28+
![Back-office — product editing](screenshots/backoffice1.png)
29+
30+
Order management with status tracking, line items, and shipping:
31+
32+
![Back-office — order management](screenshots/backoffice2.png)
33+
34+
A few storefronts built on the platform — each with its own theme, branding, and content:
35+
36+
| | |
37+
|---|---|
38+
| ![Doolittle — children's magazine and shop](screenshots/doolishop.png) | ![This is not a map — travel photography books](screenshots/thisisnotamap.png) |
39+
| **Doolittle** — children's magazine and shop | **This is not a map** — travel photography books |
40+
41+
![Aristide — cat hotel in Paris](screenshots/aristide.png)
42+
**Aristide** — cat hotel in Paris, with booking, blog, and content pages
43+
44+
## Design choices
45+
46+
A few things that shaped the architecture:
47+
48+
**Platform and domain are separate.** A reusable platform layer (accounts, configuration, theming, search, storage, multi-tenancy) and the e-commerce domain (catalog, cart, checkout, payment, shipping) don't know about each other. The platform could host a different application entirely.
49+
50+
**Multi-tenancy is structural.** Not a filter on queries — it goes through the configuration system (which merges defaults, theme settings, and per-tenant overrides), request handling (tenant resolution from hostname or path), and data access. A marketplace operator sets global defaults; each tenant customizes from there.
51+
52+
**Extensibility through declaration.** Theme authors define custom fields — selects, checkboxes, color pickers, dates — in YAML. The platform renders them in the back-office, stores them, indexes them. No plugins to write.
53+
54+
**Lightweight by choice.** Dropwizard and XWiki's component manager instead of heavier frameworks. Fast to start, easy to follow, explicit module boundaries.
55+
56+
## Project structure
57+
58+
```
59+
mayocat-shop/
60+
├── platform/ Reusable infrastructure (27 modules)
61+
│ accounts, multitenancy, configuration, store,
62+
│ search, themes, addons, webhooks, rest,
63+
│ image, mail, pdf, localization, ...
64+
65+
├── shop/ E-commerce domain (14 modules)
66+
│ catalog, cart, checkout, payment, billing,
67+
│ customer, shipping, taxes, marketplace, ...
68+
69+
└── cms/ Content management (4 modules)
70+
pages, news, contact, home
71+
```
72+
73+
Built with Java, Dropwizard, PostgreSQL, Elasticsearch, and AngularJS — about 50,000 lines of Java across 40+ modules, developed over 2012–2017 in roughly 1,700 commits.
74+
75+
Licensed under [MPL 2.0](http://mozilla.org/MPL/2.0/).
76+
77+
## Contributors
78+
79+
- **Jérôme Velociter** — author and primary developer
80+
- **Louis Béziau** — back-office UX design
81+
- **Johann Pardanaud** — back-office localization system, bug fixes
82+
- **Vincent Velociter** — date handling patches

screenshots/aristide.png

8.49 MB
Loading

screenshots/backoffice1.png

156 KB
Loading

screenshots/backoffice2.png

52.6 KB
Loading

screenshots/doolishop.png

1.67 MB
Loading

screenshots/thisisnotamap.png

1.62 MB
Loading

0 commit comments

Comments
 (0)