Το πρόβλημα, ένα προϊόν που πουλιέται ανά ημερομηνία
Ο χώρος εκδηλώσεων είναι ιδιότυπο προϊόν: δεν πουλάει «κάτι», πουλάει μια συγκεκριμένη ημέρα. Η μαμά που οργανώνει βάφτιση και το ζευγάρι που κλείνει δεξίωση έχουν ήδη ημερομηνία στο μυαλό τους πριν ανοίξουν το site — και η αναζήτηση γίνεται σχεδόν πάντα εκτός ωραρίου: βράδια, Κυριακές, στο κινητό.
Σε αυτό το σκηνικό, το κλασικό site χώρου εκδηλώσεων — φωτογραφίες, «επικοινωνήστε μαζί μας», φόρμα — χάνει τον μισό κόσμο στο πιο κρίσιμο σημείο. Η ερώτηση «είναι ελεύθερο το Σάββατο που θέλω;» απαντιέται την επόμενη μέρα στο τηλέφωνο, και μέχρι τότε ο ενδιαφερόμενος έχει μιλήσει με δύο άλλους χώρους που απάντησαν στην οθόνη.
Το Arte Garden είχε και ένα δεύτερο, καλό πρόβλημα: δώδεκα διαφορετικά είδη εκδηλώσεων — παιδικά πάρτι, βαφτίσεις, γάμοι και δεξιώσεις, χοροεσπερίδες, εταιρικά, σχολικές γιορτές, ενήλικα γενέθλια, αρραβώνες και επέτειοι, baby showers, gender reveals, γιορτινά events και κοπές πίτας. Δώδεκα κοινά που ψάχνουν με δώδεκα διαφορετικούς τρόπους, σε ένα site.
Η λύση, στατικό site με ζωντανό ημερολόγιο
Το νέο artegarden.gr χτίστηκε σε Astro και φιλοξενείται στο Cloudflare Pages. Όλο το περιεχόμενο — ο χώρος, τα είδη εκδηλώσεων, ο τιμοκατάλογος, το gallery — είναι προ-παραγόμενο και σερβίρεται στατικά από τον κοντινότερο κόμβο, γι’ αυτό και το Lighthouse δείχνει 100. Δυναμικό είναι μόνο το ένα πράγμα που πρέπει να είναι δυναμικό: η διαθεσιμότητα.
Η ενδιάμεση κατάσταση — η «περιορισμένη διαθεσιμότητα» — είναι η πιο σημαντική σχεδιαστική απόφαση του ημερολογίου. Λέει την αλήθεια χωρίς να κλείνει την πόρτα: η ημερομηνία συζητιέται, αλλά δεν έχει κλειδώσει, οπότε άξιζει να δηλώσεις κι εσύ. Και επειδή η δήλωση δεν δεσμεύει — το λέει ρητά το site — το ψυχολογικό κόστος του κλικ είναι μηδέν. Η δέσμευση έρχεται μόνο με την προκαταβολή, εκεί που ανήκει.
Το endpoint που τροφοδοτεί το ημερολόγιο είναι μια μικρή Pages Function:
// functions/api/availability.ts — η μόνη δυναμική διαδρομή του site
export const onRequestGet: PagesFunction<Env> = async ({ env, request }) => {
const month = new URL(request.url).searchParams.get('month'); // "2026-09"
// Μόνο ημέρα και κατάσταση. Ούτε ονόματα, ούτε στοιχεία — δεν είναι
// δουλειά του δημόσιου API να ξέρει ποιος ενδιαφέρθηκε για ποια μέρα.
const days = await availabilityFor(env, month); // free | limited | booked
return Response.json(days, {
// Cache στο edge: το ημερολόγιο μένει φρέσκο, αλλά το backend
// δεν δέχεται ένα αίτημα ανά επισκέπτη.
headers: { 'Cache-Control': 'public, max-age=300' },
});
};
Δύο επιλογές εδώ έχουν σημασία. Το API επιστρέφει μόνο ημέρα και κατάσταση — καμία πληροφορία για το ποιος δήλωσε τι, γιατί ένα δημόσιο endpoint δεν έχει καμία δουλειά να κουβαλάει προσωπικά δεδομένα. Και το cache στο edge σημαίνει ότι το ημερολόγιο αντέχει οποιαδήποτε επισκεψιμότητα με μηδενικό κόστος: το backend ερωτάται λίγες φορές την ώρα, όχι μία φορά ανά επισκέπτη.
Agentic browsing 3/3, το νέο κοινό δεν είναι μόνο άνθρωποι
Το 2026, ένα κομμάτι των αναζητήσεων για χώρους εκδηλώσεων δεν γίνεται πια σε μηχανή αναζήτησης — γίνεται σε AI assistant: «βρες μου χώρους για βάφτιση στα νότια, δες ποιοι έχουν ελεύθερο τον Οκτώβριο, φτιάξε μου λίστα». Ο assistant στέλνει agent να διαβάσει τα sites, και ό,τι δεν διαβάζεται, δεν μπαίνει στη λίστα.
Το PageSpeed Insights το μετράει πλέον με το τεστ Agent Accessibility, και το artegarden.gr περνάει και τους τρεις ελέγχους:
Τα δομημένα δεδομένα είναι το κομμάτι που δουλεύει διπλά — και για τους agents και για τη Google. Δηλώνουμε τον χώρο με τον πιο συγκεκριμένο τύπο που διαθέτει το schema.org:
// src/pages/index.astro — τι δηλώνουμε σε Google και AI agents
const schema = {
'@context': 'https://schema.org',
'@type': 'EventVenue', // όχι γενικό LocalBusiness: ο τύπος ΕΙΝΑΙ η απάντηση
name: 'Arte Garden',
description: 'Ιδιωτικός κήπος εκδηλώσεων στο Παλαιό Φάληρο, έως 100 καλεσμένους.',
address: {
'@type': 'PostalAddress',
streetAddress: 'Ναυσικάς 62',
addressLocality: 'Παλαιό Φάληρο',
postalCode: '175 64',
addressCountry: 'GR',
},
telephone: '+30 211 409 9700',
// Η χωρητικότητα είναι το πρώτο φίλτρο κάθε αναζήτησης χώρου.
maximumAttendeeCapacity: 100,
// Ο agent που βλέπει το ReserveAction δεν χρειάζεται να «ψάξει» το site —
// ξέρει ακριβώς πού απαντιέται η μόνη ερώτηση που μετράει.
potentialAction: {
'@type': 'ReserveAction',
target: 'https://artegarden.gr/kratisi/',
},
};
Η επιλογή του EventVenue αντί για ένα γενικό LocalBusiness δεν είναι σχολαστικισμός. Όταν ο agent φιλτράρει «χώρους εκδηλώσεων στα νότια προάστια για 80 άτομα», ο τύπος και το maximumAttendeeCapacity στο JSON-LD είναι κυριολεκτικά τα κριτήρια του φίλτρου — το site που δηλώνει σωστά τι είναι κερδίζει τη θέση στη λίστα πριν καν συγκριθεί το περιεχόμενο.
Lighthouse 100, χωρίς αστερίσκους
Το 100 δεν ήρθε από βελτιστοποίηση της τελευταίας στιγμής — ήρθε από την αρχιτεκτονική. Στατικές σελίδες από το edge, εικόνες μέσα από το pipeline του Astro σε AVIF και WebP με ορισμένες διαστάσεις — άρα μηδέν CLS στις γεμάτες φωτογραφία σελίδες, που για κήπο εκδηλώσεων είναι όλες — κρίσιμο CSS inline, και JavaScript μόνο εκεί που υπάρχει λόγος: στο ημερολόγιο. Σε ένα site που θα το δουν χιλιάδες κινητά σε ώρα αναζήτησης, η ταχύτητα δεν είναι βαθμολογία — είναι πόσες δηλώσεις ενδιαφέροντος φτάνουν τελικά στο Arte Garden.
SEO, δώδεκα εκδηλώσεις σημαίνει δώδεκα κοινά
Μαζί με το site αναλάβαμε και το SEO ως υπηρεσία, και εδώ τα δώδεκα είδη εκδηλώσεων από πρόβλημα έγιναν πλεονέκτημα: κάθε είδος έχει τη δική του σελίδα, γιατί η μαμά που ψάχνει «χώρος για παιδικό πάρτι Παλαιό Φάληρο» και το ζευγάρι που ψάχνει «κτήμα για δεξίωση νότια προάστια» δεν θα πληκτρολογήσουν ποτέ την ίδια φράση. Δομημένα δεδομένα σε κάθε σελίδα, sitemap, OG tags και canonical, φωτογραφίες με περιγραφικό alt text, και εσωτερική διασύνδεση που στέλνει το βάρος στη σελίδα κράτησης.
Η πλήρης εικόνα κλείνει εκεί που άνοιξε: το SEO φέρνει τον επισκέπτη, το Lighthouse 100 τον κρατάει, το ημερολόγιο τον μετατρέπει σε δήλωση ενδιαφέροντος — και το Arte Garden απαντά μέσα σε 24 ώρες. Κάθε κρίκος μόνος του δεν αρκεί.
Έχετε χώρο εκδηλώσεων, κτήμα ή αίθουσα με site που απαντά «θα σας πάρουμε τηλέφωνο»; Δείτε την υπηρεσία μας κατασκευή ιστοσελίδων ή ζητήστε προσφορά — το ημερολόγιο διαθεσιμότητας είναι το πρώτο πράγμα που θα συζητήσουμε.