const web = new Website()
function build(config) {
  const site = render(config)
  return site.deploy()
}

const [data, setData] = useState(null)
useEffect(() => {
  fetchData('/api/projects')
}, [])

async function load(url) {
  const res = await fetch(url)
  if (!res.ok) throw new Error()
  return res.json()
}

npm run build
git push origin main
NODE_ENV=production

const router = useRouter()
router.push('/grazie')
interface Project {
  id: string
  client: string
  type: 'website' | 'app' | 'mobile'
  status: boolean
  launched: Date
}

export type Config = {
  theme: string
  locale: 'it' | 'en' | 'de'
  apiKey: string
  maxItems: number
}

const stan: Developer = {
  name: 'Carol Stan',
  city: 'Trieste',
  stack: ['React', 'Astro', 'Node']
}

type ServiceType = 'vetrina'
  | 'webapp' | 'mobile'
  | 'seo' | 'ai'
.hero {
  display: grid;
  grid-template-columns: 52% 1fr;
  gap: 4rem;
  align-items: center;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px) }
  to   { opacity: 1; transform: translateY(0) }
}

:root {
  --color-accent: #519872;
  --font-mono: 'JetBrains Mono';
  --radius-full: 9999px;
}

.btn-primary {
  border-radius: var(--radius-full);
  background: linear-gradient(
    135deg, #519872, #233329
  );
  font-family: var(--font-mono);
}
import express from 'express'
const app = express()

app.use(express.json())

app.get('/api/projects', async (req, res) => {
  const data = await db.findAll()
  res.json({ success: true, data })
})

app.post('/api/contact', async (req, res) => {
  const { name, email, msg } = req.body
  await sendMail({ name, email, msg })
  res.json({ sent: true })
})

app.listen(3000, () => {
  console.log('stancarol API online')
})

module.exports = { app }
SELECT clients.name,
       projects.title,
       projects.status,
       projects.launched_at
FROM clients
JOIN projects ON
  clients.id = projects.client_id
WHERE projects.active = true
  AND clients.city = 'Trieste'
ORDER BY launched_at DESC
LIMIT 20;

CREATE TABLE projects (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  client_id UUID REFERENCES clients(id),
  title VARCHAR(255) NOT NULL,
  status BOOLEAN DEFAULT false,
  created_at TIMESTAMP DEFAULT NOW()
);
export default function Page() {
  return (
    <main className="site">
      <Hero />
      <Services />
      <Portfolio />
      <FAQ />
      <CTA />
    </main>
  )
}

const { data, error, isLoading } = useSWR(
  '/api/projects',
  fetcher,
  { revalidateOnFocus: false }
)

export async function getStaticProps() {
  const projects = await fetchProjects()
  return {
    props: { projects },
    revalidate: 3600
  }
}
git init
git add .
git commit -m "feat: initial site"
git push -u origin main

vercel --prod
# deployment complete ✓
# stancarol.it live

const env = process.env
const SITE = env.NEXT_PUBLIC_URL
const KEY  = env.API_SECRET_KEY

// build config
export default defineConfig({
  site: 'https://stancarol.it',
  integrations: [react(), tailwind()],
  output: 'static'
})
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-12px);
  }
}

@keyframes glow-pulse {
  0%, 100% {
    box-shadow: 0 0 20px rgba(81,152,114,0.2);
  }
  50% {
    box-shadow: 0 0 40px rgba(81,152,114,0.4);
  }
}

.portrait-circle {
  border-radius: 50%;
  animation: float 6s ease-in-out infinite;
}

@media (max-width: 768px) {
  .hero-layout {
    grid-template-columns: 1fr;
  }
}
const gsap = require('gsap')
const ScrollTrigger = require('gsap/ScrollTrigger')

gsap.registerPlugin(ScrollTrigger)

gsap.from('.hero-headline', {
  y: 60,
  opacity: 0,
  duration: 1.2,
  ease: 'power4.out'
})

ScrollTrigger.create({
  trigger: '.services',
  start: 'top 80%',
  onEnter: () => {
    gsap.from('.service-card', {
      y: 40,
      opacity: 0,
      stagger: 0.1,
      duration: 0.8
    })
  },
  once: true
})
{
  "name": "stancarol-site",
  "version": "1.0.0",
  "scripts": {
    "dev":   "astro dev",
    "build": "astro build",
    "start": "node server.js",
    "lint":  "eslint src/"
  },
  "dependencies": {
    "astro":   "^4.0.0",
    "gsap":    "^3.12.0",
    "react":   "^18.0.0"
  },
  "devDependencies": {
    "typescript":     "^5.0.0",
    "tailwindcss":    "^4.0.0"
  }
}
Marian Carol Stan
stancarol
  • Servizi
    • Siti Web Vetrina
    • App & Web App
    • E-commerce
    • SEO Locale
    • Social Media Marketing
  • Portfolio
  • Chi sono
  • Blog
  • Contatti
Iniziamo
  • Servizi
    • — Siti Web Vetrina
    • — App & Web App
    • — E-commerce
    • — SEO Locale
    • — Social Media Marketing
  • Portfolio
  • Chi sono
  • Blog
  • Contatti
  • Iniziamo

— Legale

Privacy Policy

Ultimo aggiornamento: 11 maggio 2026

La presente informativa descrive come Marian Carol Stan (di seguito "Titolare") raccoglie, usa e protegge i dati personali degli utenti che visitano il sito stancarol.it, in conformità al Regolamento (UE) 2016/679 (GDPR) e al D.Lgs. 196/2003 come modificato dal D.Lgs. 101/2018.

1. Titolare del trattamento

Marian Carol Stan
Codice Fiscale: STNMNC96P25Z129W
Trieste (TS), Italia
Email: marian.carol.stan@gmail.com
Telefono: +39 389 572 7198

2. Dati raccolti e finalità

2.1 Modulo di contatto

Quando compili il modulo nella pagina Contatti, raccolgo i seguenti dati:

  • Nome e cognome
  • Indirizzo email
  • Nome dell'attività o azienda (facoltativo)
  • Tipo di servizio richiesto
  • Testo del messaggio

Finalità: rispondere alla tua richiesta e, se applicabile, avviare un rapporto pre-contrattuale.
Base giuridica: esecuzione di misure pre-contrattuali su richiesta dell'interessato (Art. 6(1)(b) GDPR).
Conservazione: i dati vengono conservati per un massimo di 12 mesi dalla ricezione del messaggio, salvo necessità di conservazione più lunga per obblighi legali o contrattuali.

2.2 Cookie analitici — Google Analytics 4

Solo con il tuo consenso esplicito, uso Google Analytics 4 (Google LLC, USA) per raccogliere dati statistici anonimi sul traffico del sito (pagine visitate, durata sessione, provenienza geografica approssimativa). Google Analytics usa cookie e tecnologie simili; i dati vengono trasferiti negli USA nell'ambito delle Standard Contractual Clauses approvate dalla Commissione Europea.
Base giuridica: consenso (Art. 6(1)(a) GDPR).
Conservazione: 14 mesi (impostazione predefinita di GA4).
Puoi revocare il consenso in qualsiasi momento tramite il banner cookie o cancellando i cookie dal tuo browser.

2.3 Cookie tecnici

Il sito utilizza esclusivamente cookie tecnici strettamente necessari al funzionamento (es. localStorage per memorizzare la tua preferenza sui cookie). Non richiedono consenso ai sensi della normativa ePrivacy.

2.4 Dati di navigazione

I sistemi informatici acquisiscono automaticamente dati tecnici (indirizzo IP, tipo di browser, sistema operativo, pagina referrer) strettamente necessari al funzionamento del sito. Questi dati non vengono conservati oltre il tempo necessario alla navigazione, salvo esigenze di sicurezza informatica.

3. Responsabile del trattamento — Supabase

I dati del modulo di contatto vengono salvati in database gestiti da Supabase Inc. (San Francisco, CA, USA), nominato Responsabile del trattamento ai sensi dell'Art. 28 GDPR. Il trasferimento avviene nel rispetto delle Standard Contractual Clauses. Per maggiori informazioni: supabase.com/privacy.

4. Trasferimento dei dati extra-UE

I dati possono essere trasferiti verso paesi terzi (in particolare USA) esclusivamente attraverso garanzie adeguate ai sensi degli Artt. 44–49 GDPR (Standard Contractual Clauses).

5. Diritti dell'interessato

Ai sensi degli Artt. 15–22 GDPR hai diritto di:

  • Accesso — ottenere conferma del trattamento e copia dei dati
  • Rettifica — correggere dati inesatti o incompleti
  • Cancellazione ("diritto all'oblio") — chiedere la cancellazione dei dati
  • Limitazione — ottenere la sospensione del trattamento in certi casi
  • Portabilità — ricevere i dati in formato strutturato e leggibile
  • Opposizione — opporti al trattamento basato sul legittimo interesse
  • Revoca del consenso — in qualsiasi momento, senza pregiudizio per il trattamento precedente

Per esercitare i tuoi diritti scrivi a: marian.carol.stan@gmail.com. Rispondo entro 30 giorni.

6. Reclamo al Garante

Se ritieni che il trattamento violi il GDPR, hai il diritto di proporre reclamo al Garante per la protezione dei dati personali (www.garanteprivacy.it).

7. Modifiche alla presente informativa

Questa informativa può essere aggiornata. In caso di modifiche sostanziali, la data di "ultimo aggiornamento" verrà modificata. Ti invito a consultarla periodicamente.

← Torna alla home
·stancarol

Siti che non sembrano
fatti con un template.

Trieste, Italia

Navigazione

  • Servizi
  • Portfolio
  • Chi sono
  • Blog
  • Contatti

Servizi

  • Siti Web Vetrina
  • App & Web App
  • E-commerce
  • SEO Locale
  • Social Media Marketing

Contatti

marian.carol.stan@gmail.com +39 389 572 7198

© 2026 Marian Carol Stan · C.F. STNMNC96P25Z129W · Privacy Policy · Cookie Policy

Fatto con precisione maniacale a Trieste · Astro & GSAP

Uso Google Analytics per capire come viene visitato il sito. I cookie analitici vengono attivati solo con il tuo consenso. Cookie Policy · Privacy Policy