// ChiSonoScreen, BlogScreen, ContattiScreen function ChiSonoScreen({ go }) { const NS = window.EventiVinoMilanoDesignSystem_98fdb6; const { Button, StatBlock, Badge, CTASection } = NS; const Icon = window.EVMIcon; return (
Chi sono

Vino e comunicazione, nello stesso calice.

Sono una sommelier certificata AIS e una content strategist. Da nove anni lavoro con parole, contenuti e progetti digitali — siti, SEO, newsletter e tutto quello che serve per raccontare bene una storia.

Fuori di Vino nasce proprio dall’incontro di queste due passioni: conoscere il vino, ma anche tutto quello che gli gira intorno. Eventi da scoprire, posti dove andare, libri da leggere, film da vedere, podcast da ascoltare e, naturalmente, qualche buona bottiglia.

Insomma, la competenza per capire cosa vale la pena stappare e il mestiere per raccontarlo senza prendersi troppo sul serio.

Ritratto della fondatrice tra i vigneti, calice di bianco in mano
La visione

Rendere il vino un’occasione per incontrarsi, non una materia da esame.

Niente snobismo, niente tecnicismi fini a sé stessi. Solo eventi scelti bene e raccontati in modo che venga voglia di esserci — che tu sia un appassionato di lungo corso o alla tua prima degustazione.

Cosa faccio, in concreto

{[ ['sparkles', 'Selezione editoriale', 'Filtro decine di eventi ogni settimana e pubblico solo quelli che valgono davvero il tuo tempo.'], ['users', 'Racconto dei produttori', 'Do voce a cantine, enoteche e organizzatori, con il contesto che rende un evento memorabile.'], ['mail', 'Strategia e visibilità', 'Aiuto le realtà del settore a farsi trovare: SEO, contenuti, newsletter e collaborazioni.'], ].map(([icon, t, d]) => (

{t}

{d}

))}
); } window.ChiSonoScreen = ChiSonoScreen; function BlogScreen({ go }) { const NS = window.EventiVinoMilanoDesignSystem_98fdb6; const { ArticleCard, Tag, Breadcrumb, Button } = NS; const { articles } = window.EVM_DATA; const cats = ['Tutti', 'Film', 'Guide', 'Degustazioni', 'Cantine', 'Esperienze']; const [cat, setCat] = React.useState('Tutti'); const list = cat === 'Tutti' ? articles : articles.filter((a) => a.category === cat); const feat = articles.find((a) => a.id === 'franciacorta-gite') || articles[0]; const rest = articles.filter((a) => a.id !== feat.id); return (

Fuori di Vino

Idee, storie e consigli per chi il vino non lo beve soltanto: lo cerca, lo scopre e ogni tanto ci costruisce intorno un weekend. Destinazioni per winelovers, regali per aspiranti sommelier, libri, film, podcast e tutto quello che vale la pena stappare… anche fuori dalla bottiglia.

{/* Featured */}
go('ArticleDetail', feat.id)} style={{ display: 'grid', gridTemplateColumns: '1.1fr 0.9fr', gap: 0, border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-xl)', overflow: 'hidden', marginBottom: 44, cursor: 'pointer' }} className="evm-detail"> {feat.image ? {feat.title} :
}
In evidenza · {feat.category}

{feat.title}

{feat.excerpt}

{feat.date} · {feat.readingTime}
{cats.map((c) => setCat(c)}>{c})}
{(cat === 'Tutti' ? rest : list).map((a) => go('ArticleDetail', a.id)} style={{ cursor: 'pointer' }} />)}
); } window.BlogScreen = BlogScreen; function ArticleDetailScreen({ go, articleId }) { const NS = window.EventiVinoMilanoDesignSystem_98fdb6; const { Breadcrumb, Button, ArticleCard } = NS; const { articles } = window.EVM_DATA; const a = articles.find((x) => x.id === articleId) || articles[0]; const related = articles.filter((x) => x.id !== a.id).slice(0, 3); const renderP = (b, i) => { if (b.nodes) return (

{b.nodes.map((n, j) => n.link ? {n.t} : {n.t})}

); return

{b.text}

; }; return (
{a.category}

{a.title}

{a.date}·{a.readingTime} di lettura
{a.image && (
{a.title}
)}
{(a.body || [{ type: 'p', text: a.excerpt }]).map((b, i) => { if (b.type === 'h2') return

{b.text}

; if (b.type === 'h3') return

{b.text}

; if (b.type === 'h4') return

{b.text}

; if (b.type === 'caption') return

{b.text}

; if (b.type === 'quote') return (

“{b.text}”

{b.cite && — {b.cite}}
); if (b.type === 'image') return (
{b.placeholder || 'immagine'}
); return renderP(b, i); })}

Continua a leggere

{related.map((r) => go('ArticleDetail', r.id)} style={{ cursor: 'pointer' }} />)}
); } window.ArticleDetailScreen = ArticleDetailScreen;