O index.tsx é um HTTP val em Deno com React Server-Side Rendering (SSR).
Tudo renderizado no servidor — sem JS no cliente.
| Camada | Tecnologia |
|---|---|
| Runtime | Deno (Val Town) |
| UI | React 18.2 (SSR via renderToString) |
| i18n | rosetta (EN + PT) |
| Styling | CSS inline (custom, sem framework) |
| Routing | Manual (pathname matching) |
| Markdown | Renderer próprio (regex-based) |
rosetta para traduções?lang= param ou Accept-Language headerprofile = {
name: "Nuno Silva",
initials: "NS",
location: { en: "Alcofra, Portugal", pt: "Alcofra, Portugal" },
email: "nuno4slb@gmail.com",
github: "https://github.com/nmsilva",
valtown: "https://www.val.town/u/nmsilva",
}
4 posts completos em EN/PT com conteúdo técnico:
| Slug | Título | Tags |
|---|---|---|
orm-vs-raw-sql | Why I stopped using ORM | Node.js, PostgreSQL, Backend |
valtown-scratchpad | Val.town is the scratchpad I always wanted | Val.town, TypeScript |
react-server-components-one-year-in | React Server Components — one year in | React, Frontend, Performance |
football-stats-pipeline | Building a real-time football stats pipeline | AI, TypeScript, Data Engineering |
Posts com: title EN/PT, excerpt EN/PT, read time, tags, conteúdo completo em Markdown.
| Rota | Comportamento |
|---|---|
/ | Página principal (homepage) |
/posts/{slug} | Post individual |
?lang=en|pt | Override de idioma |
Sem formulário — links directos:
nuno4slb@gmail.comgithub.com/nmsilvaval.town/u/nmsilvamax-width: 1024px, max-width: 640px12 tecnologias com emoji icons: Node.js, React, TypeScript, PostgreSQL, MongoDB, Docker, AWS, Git, REST APIs, GraphQL, Redis, Jest
```) → <pre><code>## headings → <h2>**bold** → <strong>[link](url) → <a><code>| Ficheiro | Tipo | Descrição |
|---|---|---|
Layout.tsx | script | Layout component básico (classless.css) — não usado pelo index.tsx principal |
posts/001-first-post.md | - | Post exemplo (não usado pelo index.tsx) |
posts/002-second-post.md | - | Post exemplo (não usado pelo index.tsx) |
README.md | - | README do projecto (template original) |
https://nmsilva--019cdcc1687b73e8a526d410d2c5adc7.web.val.run
marked)index.tsx (não lê ficheiros .md do projecto)