Site de página única (single-page) com foco em performance e SEO. Construído com Astro — HTML estático, zero JavaScript por padrão — então carrega rápido e funciona em qualquer hospedagem que sirva arquivos estáticos.
- 🎮 Portfólio — jogos da franquia VMonsters (Unity, Godot, Flutter)
- 🌑 Tema dark com design tokens próprios (sem framework de CSS)
- 📱 Responsivo — menu mobile, layout fluido
- ✨ Animações de revelar ao rolar (respeita
prefers-reduced-motion) - 🔍 SEO — Open Graph, canonical,
sitemap.xml,robots.txt, favicon - ♿ Acessível — skip-link, foco visível, HTML semântico
- 🚀 Deploy via FTP em um comando
| Camada | Tecnologia |
|---|---|
| Framework | Astro 7 (static output) |
| Linguagem | TypeScript (strict) |
| Estilo | CSS puro + design tokens (:root) |
| SEO | @astrojs/sitemap |
| Fontes | Inter + JetBrains Mono |
| Deploy | FTP (curl) |
Pré-requisito: Node.js 18+.
git clone https://github.com/omanoloneto/omanoloneto.pro.git
cd omanoloneto.pro
npm install
npm run dev # http://localhost:4321| Comando | O que faz |
|---|---|
npm run dev |
Servidor de desenvolvimento (hot reload) |
npm run build |
Gera o site estático em dist/ |
npm run preview |
Serve o dist/ localmente (igual produção) |
./deploy.sh |
Build + upload via FTP |
src/
├─ data/
│ ├─ site.ts # nome, bio, email, redes sociais
│ └─ projects.ts # projetos do portfólio
├─ components/ # Header, Hero, About, Projects, Skills, Teaching, Contact, Footer, Icon
├─ layouts/
│ └─ Layout.astro # <head>, SEO, fontes, script de reveal
├─ pages/
│ └─ index.astro # monta a home
└─ styles/
└─ global.css # design tokens, reset, utilitários
public/ # favicon, robots.txt (copiados como estão)
| O quê | Arquivo |
|---|---|
| Nome, bio, email, redes | src/data/site.ts |
| Projetos | src/data/projects.ts |
| Skills / stack | src/components/Skills.astro |
| Cores / fontes / tema | src/styles/global.css (bloco :root) |
A saída em dist/ é estática — sobe em qualquer host (FTP, GitHub Pages, Vercel, Netlify…).
cp .env.example .env # preencha as credenciais (o .env é ignorado pelo git)
./deploy.sh # build + uploadO deploy.sh lê as variáveis de .env (ou do ambiente) e nunca guarda segredos no repositório.
A pasta pública neste host (Hostinger) é domains/<dominio>/public_html/.
Antes de publicar em outro domínio, ajuste
site:emastro.config.mjs(afeta canonical e sitemap).
MIT © Manolo Neto
