σχεδιασμός + ανάπτυξη + παράδοση
Ιστοσελίδες για επιχειρήσεις & web εφαρμογές
Δώσε ώθηση στην επιχείρησή σου
Ξεκίνα με δωρεάν έλεγχο ιστοσελίδας.
full-stack web developer
Γιάννης Καπέρδας
Σχεδιάζω και αναπτύσσω ιστοσελίδες και web εφαρμογές υψηλών επιδόσεων. Από τη στρατηγική έως την κυκλοφορία.
επιλεγμένα έργα: Τα πιο πρόσφατα έργα μου
Μια web εφαρμογή, ένα δημόσιο αρχείο και δύο τεχνικά προϊόντα: τι υλοποίησα και πώς λειτουργούν.
Επαναλαμβανόμενες ομαδικές παραγγελίες · 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.
// 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 ώρες.

