L’Atelier du Kebab, a flyer and a loyalty card ready for the printer
One box per sandwich, ten boxes for a free sandwich.
Project at a glance
- The need
- A flyer to hand out with the full menu, and a loyalty card that is simple to stamp at the counter.
- My contribution
- Designed the materials, assembled the print file by script and checked prices automatically; before that, an ordering app for the same restaurant.
What was built
- Double-sided A5 flyer
- Loyalty card
- CMYK print file
- Ordering app (on hold)
Print files at the first proof stage: nothing is printed or handed out yet. The ordering app is on hold, at the restaurant’s request.

- Nature
- Printed materials (A5 flyer, loyalty card) and an ordering app on hold · client project in progress
- Period
- Since October 2026
- Client
- L'Atelier du KebabKebab restaurant, Hayange (France)
The need
A kebab restaurant in Hayange needed two printed materials: a flyer to hand out, with the full menu, delivery terms and opening hours, and a loyalty card to stamp at the counter.
The materials
- A double-sided A5 flyer: on the front, the restaurant, delivery and its terms; on the back, the full menu with its prices and an engraved-style drawing per category.
- An 85 × 55 mm loyalty card: one box per sandwich or burger, ten boxes for a free classic sandwich. The boxes are stamped with a stamp bearing the restaurant’s logo, planned with the cards.
- One shared grammar: a black background, white and coral, the restaurant’s typography and logos.
How it is made
The print file is assembled by a Python script (PyMuPDF), directly in CMYK, on three inks: a rich black, the paper’s white and a coral. Text stays vector, fonts are embedded, the bleed is 3 mm and ink coverage stays at 240% at most. A second script re-reads the file before each submission: prices, extras, sauces, meats and opening hours are compared with the app’s menu, and formats and safe areas are checked. The illustrations were generated by AI (ChatGPT), then brought down to the three inks.
The app, on hold
Before the materials, I built an ordering app for the same restaurant: ordering without an account, payment on pickup, a kitchen screen and a management area, on PostgreSQL and Docker. Its acceptance run of 6 October 2026 counts 52 unit tests, 15 PostgreSQL tests and six HTTP scenarios. The restaurant chose to put it on hold: it is not in service.
Evidence
Every figure carries its source. No commercial result is claimed.
3
Inks in the print file (rich black, paper white, coral)
SourceThe project’s print materials notes, 7 October 2026
240 %
Maximum ink coverage of the print file
SourceThe project’s print materials notes, 7 October 2026
73
Tests of the app on hold (52 unit, 15 on PostgreSQL, 6 HTTP scenarios)
SourceProject acceptance record, 6 October 2026
Where the project stands
As of this file (13 October 2026), the print files are at the first proof stage: nothing is printed or handed out yet, and no result is claimed. The restaurant’s address and phone number are masked on this file’s visuals; prices and opening hours remain visible, since these materials are made to be handed out.
Technical details
The technologies used for this project. Features and their limits are detailed in the narrative.
- Python
- PyMuPDF
- Next.js
- React
- PostgreSQL
- Docker
Expertise involved
Gallery

The loyalty card, front. 
The back: ten boxes to stamp. 
The ordering app, put on hold by the restaurant. 
The front of the flyer (address and phone masked). 
The back: the full menu.
A similar need?
Let's discuss your context and what you would like to simplify.