Mini web app React per la lista regali di Marco. Link pubblico, nessun login: i parenti aprono la pagina, scelgono un regalo e scrivono il loro nome — che viene salvato direttamente su Airtable.
- Vite + React 18 + TypeScript
- Tailwind CSS
- Airtable come backend (REST API lato client, nessun server)
-
Installa le dipendenze:
npm install
-
Crea un Personal Access Token su Airtable con gli scope:
data.records:readdata.records:write
limitato alla base
appOT5B0zbZaCEQRZ. -
Copia
.env.examplein.enve incolla il token:cp .env.example .env
VITE_AIRTABLE_TOKEN=pat_xxx VITE_AIRTABLE_BASE_ID=appOT5B0zbZaCEQRZ VITE_AIRTABLE_TABLE=Regali
.envè già nel.gitignore— non verrà mai committato. -
Avvia il dev server:
npm run dev
| Campo | Tipo | Note |
|---|---|---|
| Nome | singleLineText | Nome del regalo |
| Dettaglio | singleLineText | Specifiche (colore, modello, ecc.) |
| Note | singleLineText | Note libere |
| Priorità | checkbox | Regali importanti → badge speciale |
| Preso da | singleLineText | Vuoto = disponibile · compilato = scelto |
- Lista dei regali disponibili + sezione separata per quelli già scelti (barrati, opacità ridotta).
- Clic su un regalo → modal con input nome →
PATCHsu Airtable. - Badge speciale per regali con
Priorità = true. - Counter in alto con i regali ancora disponibili.
- Admin mode nascosto: 5 clic sul titolo "Marco" entro 2.5 secondi sblocca il pulsante "Libera regalo" sui regali già scelti.
- Responsive mobile-first.
- Debounce sulle ricariche per essere gentili con il rate limit Airtable.
npm run build
npm run previewQualsiasi host statico funziona (Vercel, Netlify, GitHub Pages). Su Vercel basta importare il repo e aggiungere le variabili VITE_AIRTABLE_TOKEN, VITE_AIRTABLE_BASE_ID, VITE_AIRTABLE_TABLE.
⚠️ Il token Airtable viene bundlato nel JS del client: chiunque ispezioni la pagina può leggerlo. Usa un token con scope limitati alla sola tabellaRegalidella base.