Client project
Synk Food: B2C and B2B online store
One store for retail and wholesale customers, with payments reconciled through Stripe, background tasks and an automatically translated catalog.

Figures
- languages, with automatic catalog translation
- 2
- account types: retail and team-approved wholesale
- 2
Challenge
Synk Food sells gourmet Korean products to retail and wholesale customers. It needed one store for both, without letting anyone sign up as a wholesaler, with payments that never left orders half-done, a catalog and blog in Spanish and English, and heavy tasks, such as invoices and emails, that did not slow down browsing.
Solution
- Service-layer architecture in Django, with custom managers that keep business logic out of the views and avoid repeated queries.
- Team-approved wholesale accounts: nobody can assign themselves that account type; it is requested through a form and granted after review.
- Stripe payments confirmed by webhooks.
- Celery in the background to generate PDF invoices with WeasyPrint and send emails.
- “Bought together” recommendations computed in Redis.
- A catalog in two languages with automatic DeepL translation and a SHA-256 fingerprint cache, so the same text is never translated twice.
- Google sign-in and a second factor (TOTP).
- Continuous integration with GitHub Actions: Ruff linting, tests and CodeQL security analysis.
Outcome
Synk Food has a store that serves retail and wholesale from one codebase, keeps heavy tasks out of the user’s request and is checked automatically on every change.
What it is built with
- Django
- Python
- PostgreSQL
- Redis
- Celery
- Stripe
- Docker

