Prizely — Gamified Lead-Gen SaaS Πολλαπλών Πελατών
Επισκόπηση
Σχεδιάσαμε και αναπτύξαμε το Prizely, μια SaaS πλατφόρμα πολλαπλών πελατών σε Laravel 12 που μετατρέπει τη συλλογή leads σε branded εμπειρία παιχνιδιού. Οι έμποροι εγγράφονται, δημιουργούν ένα ή περισσότερα brands (το καθένα με δικό του slug, χρωματική παλέτα 2 χρωμάτων, λογότυπο και έως 8 δώρα με εικόνες), ρυθμίζουν τα ποσοστά κέρδους ανά δώρο και ενεργοποιούν τα παιχνίδια Lucky Wheel ή Scratch-to-Win. Κάθε brand ζει σε ένα καθαρό /{brand-slug} URL με τη δική του οπτική ταυτότητα — ο παίκτης βλέπει μόνο αυτό το brand. Πριν παίξουν, οι leads συμπληρώνουν φόρμα με όνομα, email και τηλέφωνο (τα GDPR consent checkboxes είναι ρυθμιζόμενα ανά brand)· ο εντοπισμός διπλότυπων μέσω email+phone αποτρέπει την κατάχρηση. Οι νικητές λαμβάνουν αυτοματοποιημένο email επιβράβευσης με προαιρετικούς redemption codes. Τα πακέτα credits αγοράζονται μέσω Stripe Checkout (χρέωση ανά παιχνίδι), με σελίδα ιστορικού χρεώσεων self-service. Το admin dashboard εμφανίζει διαγράμματα plays ανά ημέρα, στατιστικά κατανομής δώρων, conversion rates και φιλτραριζόμενο, εξαγώγιμο πίνακα leads (.xlsx). Το sandboxed test-games mode επιτρέπει στους ιδιοκτήτες να δοκιμάζουν παιχνίδια χωρίς κατανάλωση credits ή καταγραφή leads. Για φυσικές εκδηλώσεις, το kiosk mode κλειδώνει τη συσκευή σε ένα brand με unlock flow μόνο για τον ιδιοκτήτη. Η πλατφόρμα είναι δίγλωσση (Ελληνικά/Αγγλικά), συμμορφώνεται με WCAG 2.2 AA και περιλαμβάνει GSAP scroll animations, SEO με JSON-LD, hreflang alternates ανά σελίδα και llms.txt για ορατότητα από AI crawlers.
Προκλήσεις
Ο σχεδιασμός μιας multi-tenant αρχιτεκτονικής όπου κάθε brand διατηρεί τη δική του οπτική ταυτότητα (χρώματα, λογότυπο, δώρα) σε μία εγκατάσταση Laravel, η κατασκευή δύο διαφορετικών game engines (wheel vs. scratch) που μοιράζονται κοινό play/reward pipeline και η υλοποίηση metered Stripe billing που αφαιρεί credits ανά παιχνίδι χωρίς ορατό latency στον παίκτη.
Λύσεις
Χρησιμοποιήσαμε tenant-agnostic routing της Laravel με {brand} wildcards και policy-based ownership gates — ένα codebase, άπειρα branded storefronts. Κάθε παιχνίδι υλοποιήθηκε ως αυτοτελές Blade/Alpine component που τροφοδοτεί ένα κοινό PlayController το οποίο επικυρώνει credits, αποτρέπει διπλότυπα, επιλύει δώρα μέσω weighted random selection και αποστέλλει queued confirmation emails. Τα Stripe Checkout sessions μεταφέρουν metadata (pack_id, brand_id, user_id) που ολοκληρώνονται μέσω webhook· μια cache στήλη credit-balance αποφεύγει DB writes ανά play. Το kiosk mode χρησιμοποιεί session flag + unlock PIN flow με rate-limited προσπάθειες. Το admin dashboard χρησιμοποιεί Chart.js για plays/κατανομή δώρων και φιλτραριζόμενο DataTables leads table με εξαγωγή .xlsx.
Γκαλερί

Αρχική σελίδα — Τι κάνει, για ποιον είναι και δωρεάν ξεκίνημα

Πώς λειτουργεί — Brand, δώρα και σύνδεσμος σε τρία βήματα

Τα παιχνίδια — Lucky Wheel και Scratch-to-Win με μία φόρμα

Λειτουργία kiosk — Ένα tablet, ένα brand, νέο παιχνίδι για κάθε επισκέπτη

Ερωτήσεις — Όσα ρωτά ένας υπεύθυνος marketing πριν εγγραφεί

Τιμές — Πληρώνετε ανά συμμετοχή, οι πρώτες 100 δωρεάν

Επικοινωνία — Τρία πεδία ή απευθείας email, με απάντηση σε δύο μέρες

Σελίδα brand — Στα χρώματα του brand, με επιλογή παιχνιδιού

Αρχική σε tablet — Η πρόταση και τέσσερα ατού με μια ματιά

Σχετικά — Η αποστολή του Prizely, χωρίς τεχνική ορολογία

Χρήσεις — Καταστήματα, καφέ, εκθέσεις και καμπάνιες QR, μία κάρτα το καθένα

Φόρμα στοιχείων — Τέσσερα πεδία ανάμεσα στον παίκτη και το δώρο

Αρχική σε κινητό — Η ίδια πρόταση, στοιβαγμένη για το ένα χέρι

Μενού κινητού — Κάθε σελίδα και η εγγραφή, ένα πάτημα μακριά

Τα παιχνίδια σε κινητό — Το καθένα εξηγείται σε μία κάρτα

Σελίδα brand — Τι βλέπει ο παίκτης μόλις σκανάρει το QR code

Φόρμα στοιχείων — Τα στοιχεία του παίκτη, πριν από το παιχνίδι
