
Vert Sapin
The online shop of a paper Christmas tree workshop.
Date: 2026
A family workshop in Paris hand-makes paper Christmas trees: a square sheet, folded in two, slit and folded into ten flaps, that stands up as a tree, folds flat back into its box and comes out again year after year. Three ranges, the single tree, the forest and the saplings, in five greens.
In September and October 2026 I designed and built its online shop, end to end, for the Christmas season: the tree to compose, to see at home in augmented reality, to order and pay for on the shop itself; pre-orders and reservations depending on the season; and the back office where the workshop follows its stock and prepares its orders. A staging version and a live one, updated through automatic tests.
I also worked on the object itself: the geometry behind templates that make the trees faster and more precisely, the technical drawings to one day entrust the making to partners, the exact sheet dimensions to specify paper and packaging to suppliers, and the layout of the squares on the rolls, to limit waste.
The result








What was done
01
The shop
The tree to compose, range, size, paper and palette, with its day and night photos, the basket and the order, for companies too; the “Light” switch, the snow and the trees that come alive.
Next.js · React
02
See it at home
The composed tree set in the room in augmented reality, at its true size, from a 3D model generated for each configuration, on iPhone and Android alike; a QR code sends it from the computer.
model-viewer · USDZ · glTF
03
Payment
Card payment on the shop itself, the address completed by the national address base, the numbered invoice by email, and every payment reconciled: never two shipments for one order.
Stripe
04
Stock and orders
Live stock, held during payment; orders from paid to folded and packed then shipped; pre-orders and reservations, by range and by département, with the invitation to order; all in a back office for the workshop.
Payload CMS · Postgres · Drizzle
05
The emails
The customer’s confirmation and the packing list for the workshop, one tree per line, readable even with images blocked.
Resend
06
Hosting and release
A staging version and a live version, each with its own data; automatic tests, then staging updated by itself and the release on one button.
Fly.io · Docker · GitHub Actions · Playwright
07
Architecture and accessibility
The shop’s core kept apart from the tools it uses, a rule checked at every change; contrasts tested, keyboard and reduced motion respected.
Hexagonal architecture · WCAG 2.2
08
The tree’s geometry
Every dimension of the tree, cuts, creases and tip, derived from its height alone, in a mathematical note and a 3D model; the same recipe for every size.
LaTeX · Python
09
The templates
One template per size, to laser-cut or mill, with its slots, its engraved marks and its material bridges, as files ready for the cutting shop.
Python · DXF · SVG
10
The technical drawings
Dimensioned A3 plates, with their tolerances and a table for six sizes, to entrust the making to partners.
LaTeX · TikZ
11
Sheets and rolls
The exact sheet dimensions for each size, to specify paper and packaging to suppliers, and the layout of the squares on the rolls, to limit waste.
Python
How it works
Scroll: the drawing follows.
01 / 09
Compose your tree
Three ranges: the single tree, from 50 to 150 cm; the forest, one tall and three small; the saplings, five small ones. You pick your paper among five greens, and a palette for the small ones. The photos change with the choice, and the “Light” switch turns them to night, trees lit.
02 / 09
See it at home
“See it at home” sets the tree you composed in the room, in augmented reality, at its true size: the scale is fixed, it cannot be shrunk. From a computer, a QR code sends it to the phone.
03 / 09
Order and pay
Stock shows live, and the last pieces are announced. The address completes itself, a company orders with its VAT number, card payment happens on the shop itself, and the invoice arrives by email. Depending on the season: a pre-order with its shipping dates, or a reservation with nothing to pay.
04 / 09
Prepare the orders
The workshop runs its shop from its back office. Each order goes from paid to folded and packed, then shipped, and the packing list arrives by email, one tree per line, with its height and paper. Stock is counted by size, paper and palette; reservations read by range and by département, and each gets its invitation to order when the season opens.
05 / 09
Compute the tree
Every dimension follows from its height alone: the angle of the cuts, the length of each crease, the square sheet it needs. The same recipe serves every size, and gives the exact sheet dimensions to order paper and packaging, as well as the layout of the squares on the rolls, to limit waste.
06 / 09
Trace with a template
One template per size, laser-cut, with its engraved marks. Wedged against the central fold and the foot, it sets the oblique edge by itself: the cuts transfer in two moves, precisely, and the tree is made faster.
07 / 09
Give the instructions
Technical drawings, in A3, describe the “cuts and creases” operation on a sheet already cut and folded in two: the dimensions are measured with a tape from the tip, with no angle, with their tolerances and a table for six sizes. Enough to entrust the making to a partner.
08 / 09
Fold the flaps
Each cut frees a flap, which swings over along its crease: the paper triangle becomes a tiered tree.
09 / 09
Unfold it: the tree stands
Its wings open like a fan around the central crease, and the tree stands. Folded back, it lies flat in its box again, from one year to the next. This drawing is computed with the template’s formulas.
Specifications
- Collection
- Personal products
- Date
- 2026
- Role
- Design and development, end to end
- Built with
- Next.js (App Router) · Payload CMS · Postgres · Drizzle · Stripe · Playwright · Fly.io · LaTeX · Python
- Platforms
- Web