ASTRO · CLOUDFLARE · GITHUB

This site.

How jelopez.link is built: stack, deployment and design decisions.

Stack

Framework

Astro: a static site generator. Every page is built as plain HTML, with no client-side framework.

Deployment

Cloudflare Pages connected to the GitHub repository. Every push to master deploys automatically.

Domain & DNS

jelopez.link registered and managed in Cloudflare. DNS, TLS certificate and CDN with no own infrastructure.

Structure

There are two independent projects: web (jelopez.link) and blog (blog.jelopez.link), each with its own GitHub repository and Cloudflare Pages project.

webMain site. Static Astro, no database or server. All copy lives in a single content file.
blogTechnical blog with posts in Markdown and MDX, RSS and sitemap. Astro handles routing and the content collection.
commentsGiscus, built on GitHub Discussions. No own database and no cost.
languagesEvery page exists in Spanish and English with its own URL (/ and /en/), generated at build time and linked with hreflang for search engines.
privacyNo cookies, no analytics and no third-party resources: even the fonts are served from this domain.
securityStrict HTTP headers (CSP, HSTS, Permissions-Policy) defined in the Cloudflare Pages _headers file.

Design

A "liquid glass" style inspired by Apple's: blurred colour orbs in the background and translucent glass panels with blur, glowing edges and a highlight that follows the cursor. Dark palette with coral as the accent colour.

Inter + MonoInter for text and interface; JetBrains Mono for labels and technical details.
SyneDisplay typeface for headings. Weight 800 for the main titles.
AccentCoral #ff5a5f on a near-black background, with violet and blue orbs adding depth to the glass.

Workflow

Publishing a post is a local process: write in Markdown or MDX, commit and push. Cloudflare Pages picks up the change and deploys in under a minute.

  1. 01

    Write

    Post in Markdown or MDX in src/content/blog/, with title, description, date and tags in the frontmatter.

  2. 02

    Commit & push

    Push to the master branch of the Juanen47/blog repository on GitHub.

  3. 03

    Automatic build

    Cloudflare Pages runs npm run build and deploys the generated static site.

  4. 04

    Published

    The post is live on blog.jelopez.link less than a minute after the push.