ΔΩΣΕ ΩΘΗΣΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΗ ΣΟΥ ΞΕΚΙΝΑ ΜΕ ΕΝΑΝ ΔΩΡΕΑΝ ΕΛΕΓΧΟ ΙΣΤΟΣΕΛΙΔΑΣ

ΔΩΣΕ ΩΘΗΣΗΣΤΗΝ ΕΠΙΧΕΙΡΗΣΗ ΣΟΥ

ΞΕΚΙΝΑ ΜΕ ΕΝΑΝ ΔΩΡΕΑΝ ΕΛΕΓΧΟ ΙΣΤΟΣΕΛΙΔΑΣ

// full-stack web developer

Γιάννης Καπέρδας

Σχεδιάζω και αναπτύσσω ιστοσελίδες και web εφαρμογές υψηλών επιδόσεων. Από τη στρατηγική έως την κυκλοφορία.

εργαλεία & λογισμικό

σχεδιασμός · ανάπτυξη · παράδοση

  • React
  • TypeScript
  • Next.js
  • Node.js
  • Tailwind CSS
  • PostgreSQL
  • Supabase
  • GraphQL
  • Figma
  • Framer
  • Adobe Photoshop
  • Adobe InDesign
  • Git
  • GitHub
  • Vercel

επιλεγμένα έργα: Τα πιο πρόσφατα έργα μου

Μερικά πρόσφατα έργα: το πρόβλημα, η υλοποίηση και το αποτέλεσμα.

CafeScoop στιγμιότυπο

Επαναλαμβανόμενες ομαδικές παραγγελίες · 2026

CafeScoop

αποτέλεσμα

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

1 σύνδεσμος → 1 δελτίο καφετέριας

λεπτομέρειες έργου
πρόβλημα
Οι καφετέριες γειτονιάς χάνουν επαναλαμβανόμενες παραγγελίες γραφείων μέσα σε διάσπαρτα τηλεφωνήματα και μηνύματα WhatsApp: οι ίδιες λεπτομέρειες συλλέγονται καθημερινά, οι προθεσμίες δεν είναι σαφείς και το προσωπικό πρέπει να συνδυάζει χειροκίνητα τις επιλογές όλων.
υλοποίηση
Μια δίγλωσση πλατφόρμα επαναλαμβανόμενων παραγγελιών με Next.js 15, TypeScript και Supabase. Ένας διοργανωτής δημιουργεί την ομάδα και το πρόγραμμα, οι συνάδελφοι συμμετέχουν από σύνδεσμο χωρίς υποχρεωτική εγγραφή, η ζωντανή παραγγελία κλειδώνει αυτόματα και η καφετέρια λαμβάνει ένα συγκεντρωτικό δελτίο. Η ροή ολοκληρώνεται με kitchen board, ειδοποιήσεις email, αναφορά εσόδων και Sentry.
  • Next.js 15
  • TypeScript
  • Supabase
  • Realtime
  • EL / EN
άνοιγμα έργου

κώδικας: Πρόσφατες πρωτοβουλίες κώδικα

Μοτίβα που χρησιμοποιώ σε πραγματικά έργα. Κάθε ένα λύνει ένα γνώριμο πρόβλημα. Διάλεξε ένα για να το διαβάσεις.

Modal.tsx

Modal dialogs that trap focus and restore it, without pulling in a UI library.

Προβολή στο GitHub
// Problem: accessible modal dialogs that trap focus and restore it on close,
// without pulling in a whole UI library.
import { useEffect, useRef } from "react";

export function Modal({ open, onClose, title, children }: {
  open: boolean;
  onClose: () => void;
  title: string;
  children: React.ReactNode;
}) {
  const ref = useRef<HTMLDivElement>(null);

  useEffect(() => {
    if (!open) return;
    const previouslyFocused = document.activeElement as HTMLElement | null;
    const focusables = ref.current!.querySelectorAll<HTMLElement>(
      'a[href], button:not([disabled]), input, [tabindex]:not([tabindex="-1"])',
    );
    focusables[0]?.focus();

    function onKeyDown(e: KeyboardEvent) {
      if (e.key === "Escape") return onClose();
      if (e.key !== "Tab" || focusables.length === 0) return;
      const first = focusables[0];
      const last = focusables[focusables.length - 1];
      // Wrap focus so Tab never escapes the dialog.
      if (e.shiftKey && document.activeElement === first) {
        e.preventDefault();
        last.focus();
      } else if (!e.shiftKey && document.activeElement === last) {
        e.preventDefault();
        first.focus();
      }
    }

    document.addEventListener("keydown", onKeyDown);
    return () => {
      document.removeEventListener("keydown", onKeyDown);
      previouslyFocused?.focus(); // restore focus to the trigger element
    };
  }, [open, onClose]);

  if (!open) return null;
  return (
    <div className="overlay" onClick={onClose}>
      <div
        ref={ref}
        role="dialog"
        aria-modal="true"
        aria-label={title}
        onClick={(e) => e.stopPropagation()}
      >
        {children}
      </div>
    </div>
  );
}

σχετικά: Ολοκληρωμένη υλοποίηση

Είμαι ο Γιάννης Καπέρδας, full-stack web developer με πρακτική εμπειρία στην υλοποίηση ιστοσελίδων και web εφαρμογών μέσα από ένα ευρύ φάσμα έργων. Διαθέτω MSc in Business Information Technology Systems από το University of Strathclyde και MSc in IT and Applications από το Πανεπιστήμιο Δυτικής Αττικής.

Με νοιάζουν όσα κάνουν το λογισμικό πραγματικά καλό: γρήγορη φόρτωση, προσβάσιμο markup, τυποποιημένος και συντηρήσιμος κώδικας, και καθαρή επικοινωνία χωρίς περιττή ορολογία.

Τα εργαλεία είναι το μέσο, όχι ο σκοπός. Επιλέγω τα κατάλληλα για κάθε δουλειά και κρατώ τον κώδικα φιλικό για τον επόμενο άνθρωπο που θα τον δουλέψει.

τι κάνω

  • Web εφαρμογές και dashboards
  • /Ιστοσελίδες marketing και landing pages
  • /Επιδόσεις και SEO
  • /Από design σε κώδικα
βάση
Αθήνα, Ελλάδα · Εξ αποστάσεως
τεχνολογίες
TypeScript · React · Next.js
συνεργασίες
Startups, agencies και ιδρυτές

// εργαλειοθήκη

  • TypeScript
  • React
  • Next.js
  • Node.js
  • Tailwind CSS
  • PostgreSQL
  • REST & GraphQL
  • Figma → Code
  • Web Vitals
  • Vercel / CI

επικοινωνία: Ας συνεργαστούμε

Πες μου λίγα πράγματα για την ιδέα ή το πρόβλημά σου και θα απαντήσω μέσα σε λιγότερο από 24 ώρες.

Γίνεται επαλήθευση του μηνύματος...