---
title: Heartbeat Pharmacy Platform
description: >-
  Πλήρης πλατφόρμα e-commerce για ελληνικό φαρμακείο, ιδιόκτητη (όχι SaaS χρεώσεις ανά συναλλαγή), με AI να συντομεύει
  το SKU enrichment από μέρες σε ώρες.
lang: el
source: https://jimrarras.com/projects/heartbeat-pharmacy/
fetched: '2026-09-19T06:40:32.217Z'
---

Lead Developer

Πλήρης πλατφόρμα e-commerce για ελληνικό φαρμακείο, ιδιόκτητη (όχι SaaS χρεώσεις ανά συναλλαγή), με AI να συντομεύει το SKU enrichment από μέρες σε ώρες.

- **10.417** προϊόντα στον πρώτο πλήρη συγχρονισμό

- **1 λεπτό** μεσοδιάστημα ενημέρωσης αποθέματος

- **69** εργαλεία καταλόγου που καλεί απευθείας ένας AI βοηθός

## Stack
## Η κατάσταση

Το Heartbeat είναι ελληνικό φαρμακείο με φυσικό κατάστημα, όπου το απόθεμα ζούσε ήδη στο σύστημα του ταμείου. Ήθελαν δικό τους ηλεκτρονικό κατάστημα, χωρίς προμήθεια ανά παραγγελία προς πλατφόρμα τρίτου, και χωρίς να χρειαστεί δεύτερος υπάλληλος μόνο για να πληκτρολογεί περιγραφές. Με προσέλαβαν ως τον μοναδικό developer του έργου. Αντί για ένα μεγάλο πρόγραμμα παρέδωσα ξεχωριστά συστήματα που δουλεύουν μαζί, ώστε το καθένα να μπορεί να σταματήσει ή να ενημερωθεί χωρίς να πέσει το υπόλοιπο.

## Ένα κατάστημα που τους ανήκει

Ο κώδικας, η βάση και ο server είναι του φαρμακείου. Καμία πλατφόρμα δεν κρατάει ποσοστό από κάθε παραγγελία, και καμία αλλαγή στην τιμολόγηση τρίτου δεν μπορεί να ανεβάσει το κόστος λειτουργίας του καταστήματος από τη μια μέρα στην άλλη.

![Η αρχική σελίδα του Heartbeat Pharmacy: επάνω μπάρα με το τηλέφωνο του φαρμακείου και τους όρους δωρεάν αποστολής, πλατιά μπάρα αναζήτησης, σειρά με τις κατηγορίες, και banner εποχής με τίτλο Ενέργεια για κάθε μέρα](https://jimrarras.com/images/projects/heartbeat-pharmacy/storefront.webp)

Η βιτρίνα: αναζήτηση, κατηγορίες και οι όροι αποστολής, όλα πριν το πρώτο scroll

Μια σελίδα προϊόντος πρέπει να απαντά σε όσα ρωτάει ο κόσμος στον πάγκο. Τιμή με τον ΦΠΑ καθαρά, αν υπάρχει σήμερα, σε πόσο έρχεται, και πόσο θα κοστίσουν τα μεταφορικά στη διεύθυνσή σας.

![Σελίδα προϊόντος για Lamberts Natural Pea Protein: μικρογραφίες αριστερά, μεγάλη φωτογραφία στο κέντρο, και δεξιά η τιμή 33,87 ευρώ με σημείωση ΦΠΑ, κουμπί αγοράς, η γραμμή διαθεσιμότητας και υπολογισμός μεταφορικών](https://jimrarras.com/images/projects/heartbeat-pharmacy/product.webp)

Πώς λειτουργεί

- **Κατάστημα:** storefront σε Next.js 16 πάνω σε backend Medusa 2, με PostgreSQL, Redis και Meilisearch.
- **Αναζήτηση:** Meilisearch μέσω InstantSearch, με αποτελέσματα όσο πληκτρολογεί ο πελάτης.
- **Ταμείο και επικοινωνία:** ενσωμάτωση τραπεζικού gateway, Turnstile στις φόρμες και email παραγγελίας μέσω Resend με React Email templates.
- **Παρακολούθηση:** PostHog για τη χρήση και Sentry μόνο για σφάλματα, με τα προσωπικά δεδομένα να αφαιρούνται πριν φύγει οποιαδήποτε αναφορά.

## Ένας άνθρωπος, χιλιάδες κωδικοί

Δεκαεννέα βασικές κατηγορίες, καθεμία με τις δικές της υποκατηγορίες, είναι πολύ ράφι για να το κρατάει τακτοποιημένο ένα φαρμακείο που έχει και πάγκο να δουλέψει.

![Η σελίδα κατηγοριών: κάρτες για Μακιγιάζ, Αρώματα, Μαμά και Παιδί, Βιταμίνες και Συμπληρώματα, Αδυνάτισμα και Αθλητισμός, και Φαρμακείο, με τις υποκατηγορίες τους σε ετικέτες και έναν σύνδεσμο για δέκα ακόμα](https://jimrarras.com/images/projects/heartbeat-pharmacy/catalogue.webp)

Ο κατάλογος έχει δικό του σύστημα, χωριστό από το κατάστημα. Ένα άτομο διαλέγει προϊόντα, ζητάει προσχέδιο περιγραφής, ελέγχει κείμενο και εικόνες, και μόνο τότε το προϊόν φτάνει στη βιτρίνα.

Το ζητούμενο δεν ήταν να γράφει η μηχανή αντί για άνθρωπο, αλλά να μη χρειάζεται ο άνθρωπος να ξεκινάει από λευκή σελίδα σε κάθε κωδικό.

![Εικονογράφηση pixel art οθόνης διαχείρισης προϊόντων: φίλτρα αριστερά, λίστα προϊόντων με κουτάκια επιλογής στο κέντρο και φόρμα επεξεργασίας δεξιά](https://jimrarras.com/images/projects/heartbeat-pharmacy/pim-admin.webp)

Ο κατάλογος: φίλτρα, μαζική επιλογή και επεξεργασία στην ίδια οθόνη

Πώς λειτουργεί

- **Backend καταλόγου:** Express 5 με TypeORM πάνω σε δύο ξεχωριστές βάσεις PostgreSQL, μία για τα δεδομένα και μία μόνο για τα logs, ώστε ο θόρυβος των audit records να μην επιβαρύνει τον κατάλογο.
- **Εμπλουτισμός:** Anthropic SDK και Google GenAI για τα προσχέδια, Puppeteer 25 με δικές μας τεχνικές αποφυγής ανίχνευσης για καταλόγους χωρίς API, ουρές BullMQ πάνω σε Redis για τις μαζικές εργασίες και S3 για τις εικόνες.
- **Admin:** React 19 με Vite και TanStack Router, Query και Table, επεξεργαστής κειμένου Tiptap και γραφήματα Recharts.
- **Έλεγχοι:** τα integration tests σηκώνουν πραγματική PostgreSQL σε Docker με Testcontainers σε κάθε εκτέλεση, χωρίς mocks.

## Το ράφι και η οθόνη λένε το ίδιο

Το απόθεμα ζει στο σύστημα του φαρμακείου, όχι στο site. Μια υπηρεσία το διαβάζει και το στέλνει στο κατάστημα κάθε λεπτό, ώστε να μην πουληθεί κάτι που δεν υπάρχει στο ράφι.

![Εικονογράφηση pixel art της ροής δεδομένων: ράφια με εγγραφές αριστερά, ένας server με κεφάλι Μέδουσας στο κέντρο και ένα παράθυρο καταστήματος δεξιά, με βέλη να δείχνουν προς τα δεξιά](https://jimrarras.com/images/projects/heartbeat-pharmacy/data-flow.webp)

Από τη βάση του φαρμακείου στον server, και από εκεί στη βιτρίνα

Πώς λειτουργεί

- **Πρώτος συγχρονισμός:** πλήρης, και τα 10.417 προϊόντα· στη συνέχεια ταξιδεύουν μόνο όσα άλλαξαν από την προηγούμενη φορά.
- **Ανθεκτικότητα:** επαναλήψεις με αυξανόμενη αναμονή, κλείδωμα ώστε να μην τρέχουν δύο συγχρονισμοί μαζί, διακόπτης κυκλώματος, DRY\_RUN για δοκιμή χωρίς εγγραφές και logs που εναλλάσσονται καθημερινά.
- **Συσκευασία:** ξεχωριστή υπηρεσία ρωτάει κάθε 30 δευτερόλεπτα για νέα voucher και τα τυπώνει στον θερμικό εκτυπωτή του πάγκου· η λίστα συλλογής φέρει μόνο το όνομα του πελάτη, ποτέ τη διεύθυνση.
- **Τιμές:** όλη η αριθμητική των τιμών ζει σε ένα ξεχωριστό πακέτο χωρίς εξαρτήσεις, κλειδωμένο σε έκδοση, που μοιράζονται backend και admin· έτσι δεν υπάρχουν δύο εκδοχές του ίδιου υπολογισμού.

## Σύνδεσμοι

Ο κατάλογος δεν έχει μόνο οθόνη για ανθρώπους: εκθέτει 69 εργαλεία σε έναν AI βοηθό, που δουλεύει πάνω στα ίδια δεδομένα τοπικά, χωρίς να ανοίξει τίποτα προς το internet.

- Live: [theheartbeat.gr](https://theheartbeat.gr/) (pre-launch)

## Παρόμοια έργα

- Kleidarakos B2B & Papanikolaou Doors: άλλη μεγάλη commerce build, αλλά B2B αντί B2C
- pooq.gr: commerce engineering σε WooCommerce, που επεκτείνει ένα κατάστημα αντί να το αντικαθιστά
