Site personal construit cu Astro, optimizat pentru deployment pe Cloudflare Pages.
davidel-portfolio/
├── public/
│ ├── favicon.svg # Favicon-ul site-ului
│ └── _redirects # Config Cloudflare Pages
├── src/
│ ├── data/
│ │ └── projects.json # ⭐ EDITEAZĂ AICI proiectele
│ ├── layouts/
│ │ └── Layout.astro # Navbar + Footer + meta tags
│ ├── pages/
│ │ ├── index.astro # Pagina Home
│ │ ├── about.astro # Pagina About
│ │ ├── projects.astro # Pagina Projects
│ │ ├── contact.astro # Pagina Contact
│ │ └── 404.astro # Pagina 404
│ └── styles/
│ └── global.css # Design system global
├── astro.config.mjs
└── package.json
- Linia 6:
descriptionimplicită a site-ului - Footer: editează linkurile GitHub, LinkedIn, Email (căutare
footer-links)
Adaugă un obiect nou în array:
{
"id": 4,
"title": "Numele proiectului",
"description": "Ce face proiectul în 1-2 propoziții.",
"stack": ["React", "Node.js", "PostgreSQL"],
"demo": "https://demo.example.com",
"github": "https://github.com/davidel/proiect",
"featured": false
}demoșigithubpot fi""dacă nu existăfeatured: trueadaugă badge-ul "Featured" pe card
- Linia 4-8: obiectul
skills— categorii și tehnologii - Linia 18-32: array-ul
experience— job-uri / proiecte majore - Secțiunea bio: textul personal (caută
<h2>Salut, sunt) - Linkurile bio: GitHub, LinkedIn, Email (caută
bio-links)
- Linia 4-36: array-ul
socials— editeazăhrefșivalue - Formularul: înlocuiește
YOUR_FORM_IDcu ID-ul de la Formspree (formspree.io)
- Subtitlul (caută
hero-sub) - Skills strip (caută
Tech stack)
- Creează cont gratuit pe formspree.io
- Creează un nou form — copiază Form ID (ex:
xabcdefg) - În
contact.astro, înlocuiește:cu:https://formspree.io/f/YOUR_FORM_IDhttps://formspree.io/f/xabcdefg
Alternativă: șterge action și method din form și gestionează cu un Cloudflare Worker sau Web3Forms.
# Instalează dependențele
npm install
# Pornește server dev (http://localhost:4321)
npm run dev
# Build pentru producție
npm run build
# Preview build local
npm run preview- Push codul pe GitHub (sau GitLab)
- Mergi pe pages.cloudflare.com
- Click Create a project → Connect to Git
- Selectează repository-ul
davidel-portfolio - Configurare build:
- Framework preset: Astro
- Build command:
npm run build - Build output directory:
dist
- Click Save and Deploy ✅
- În Cloudflare Pages → proiectul tău → Custom domains
- Click Set up a custom domain
- Introdu
davidel.dev - Urmează instrucțiunile pentru DNS (dacă domeniul e pe Cloudflare, e automat)
Orice git push pe branch-ul principal → Cloudflare Pages redeploy-ează automat. Nu trebuie să faci nimic manual.
# 1. Editează fișierul JSON
nano src/data/projects.json
# 2. Commit și push
git add src/data/projects.json
git commit -m "add: proiect nou X"
git push
# 3. Cloudflare Pages se redeploy-ează automat în ~1 minut| Variabilă | Valoare | Utilizare |
|---|---|---|
--bg-primary |
#080810 |
Background principal |
--accent |
#8b5cf6 |
Violet principal |
--accent-bright |
#a78bfa |
Violet deschis |
--text-primary |
#f0eeff |
Text principal |
--text-secondary |
#a09bc0 |
Text secundar |
Toate culorile sunt CSS variables în src/styles/global.css.
- Static site generation — perfect pentru Cloudflare Pages (fișiere HTML pure)
- Zero JS by default — site rapid, fără bundle inutil
- Component-based — ușor de extins cu noi pagini/componente
- Markdown support — poți scrie pagini în
.mddacă vrei un blog - Oficial suportat pe Cloudflare Pages