gabeefran.co-blog/.vercel/output/static/posts/index.html

15 lines
No EOL
7.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="alternate icon" href="/favicon.ico"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="canonical" href="https://gabeefran.co/posts/"><link rel="alternate" hreflang="en" href="https://gabeefran.co/posts/"><link rel="alternate" hreflang="pt-BR" href="https://gabeefran.co/pt/posts/"><meta name="generator" content="Astro v7.2.10"><title>All posts — gabeefranco</title><meta name="description" content="Everything I’ve written, oldest to newest below, newest on top."><meta property="og:type" content="website"><meta property="og:title" content="All posts — gabeefranco"><meta property="og:description" content="Everything I’ve written, oldest to newest below, newest on top."><meta property="og:url" content="https://gabeefran.co/posts/"><meta property="og:image" content="https://gabeefran.co/logo.png"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="https://gabeefran.co/logo.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400..700;1,400..700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet"><script>
// Runs before paint to avoid a flash of the wrong theme.
(function () {
const stored = localStorage.getItem('theme');
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
const dark = stored ? stored === 'dark' : prefersDark;
document.documentElement.classList.toggle('dark', dark);
})();
</script><link rel="stylesheet" href="/_astro/BaseLayout.C3cx7DTv.css"><script>window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
var script = document.createElement('script');
script.defer = true;
script.src = '/_vercel/insights/script.js';
var head = document.querySelector('head');
head.appendChild(script);
</script></head><body class="flex min-h-screen flex-col bg-bg font-sans text-text antialiased selection:bg-primary selection:text-white"><header class="sticky top-0 z-40 border-b border-border/80 bg-bg/85 backdrop-blur"><div class="flex flex-col justify-center gap-4 px-4 py-3 sm:px-6"><div class="flex flex-row justify-between items-end"><a href="/" class="flex hover:underline shrink-0 items-center gap-2.5" aria-label="gabeefranco"><img src="/logo.png" class="h-4"><span class="font-mono text-[15px] font-semibold tracking-tight text-text">gabeefranco</span></a><div class="ml-10 flex sm:hidden justify-end gap-3"><a href="/pt/posts/" hreflang="pt" title="Switch language" aria-label="Switch language: Português" class="text-accent max-w-fit font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep">Switch language: Português</a><button type="button" class="theme-toggle text-accent sm:ml-2 font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep" aria-label="Toggle color theme" title="Toggle color theme">Toggle color theme</button><script type="module">function e(){document.querySelectorAll(`.theme-toggle`).forEach(e=>{e.addEventListener(`click`,function(){let e=document.documentElement.classList.toggle(`dark`);localStorage.setItem(`theme`,e?`dark`:`light`)})})}e(),document.addEventListener(`astro:after-swap`,e);</script></div><div class="hidden sm:flex items-center gap-2"><nav class="flex items-center gap-1 justify-right" aria-label="Menu"><a href="/" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Home</a><a href="/posts" aria-current="page" class="px-2 py-1 text-sm font-medium font-mono underline text-primary hover:text-primary-hover">Posts</a><a href="/about" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">About</a></nav><a href="/pt/posts/" hreflang="pt" title="Switch language" aria-label="Switch language: Português" class="text-accent max-w-fit py-1 font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep ">Switch language: Português</a><button type="button" class="theme-toggle text-accent sm:ml-2 font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep" aria-label="Toggle color theme" title="Toggle color theme">Toggle color theme</button></div></div><div class="flex justify-end sm:hidden items-center gap-2"><nav class="flex items-center gap-1 justify-right" aria-label="Menu"><a href="/" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Home</a><a href="/posts" aria-current="page" class="px-2 py-1 text-sm font-medium font-mono underline text-primary hover:text-primary-hover">Posts</a><a href="/about" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">About</a></nav></div></div></header><main class="flex-1"><section class="mx-10 mt-10"><h1 class="font-mono text-3xl font-bold tracking-tight text-text">All posts</h1><p class="font-mono mt-2 text-text-muted">Everything I’ve written, oldest to newest below, newest on top.</p><div class="mt-8"><article class="group border-b border-border py-6 first:pt-0 last:border-b-0 font-mono"><a href="/posts/hello-world" class="block"><time datetime="2026-09-22T00:00:00.000Z" class="text-xs font-medium uppercase tracking-wide text-text-muted">September 21, 2026</time><h3 class="mt-1.5 text-xl font-semibold text-text group-hover:text-primary group-hover:underline">This blog&#39;s Hello World (or whatever you want to call this site)</h3><p class="mt-1.5 text-[15px] leading-relaxed text-text-muted">A short note on why this exists and what I plan to write about here.</p></a><div class="mt-3 flex flex-wrap gap-2"><a href="/tags/meta" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#meta</a><a href="/tags/blogging" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#blogging</a></div></article><article class="group border-b border-border py-6 first:pt-0 last:border-b-0 font-mono"><a href="/posts/spotify-complaining" class="block"><time datetime="2026-09-02T03:00:00.000Z" class="text-xs font-medium uppercase tracking-wide text-text-muted">September 2, 2026</time><h3 class="mt-1.5 text-xl font-semibold text-text group-hover:text-primary group-hover:underline">Spotify&#39;s Time Capsule Change and the Enshittification of Software</h3><p class="mt-1.5 text-[15px] leading-relaxed text-text-muted">Spotify just removed one of its best features. Beyond a bit of complaining, I want to open a debate about what software is turning into.</p></a><div class="mt-3 flex flex-wrap gap-2"><a href="/tags/software" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#software</a><a href="/tags/life" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#life</a></div></article></div></section></main><footer class="border-t border-border/80 font-mono"><div class="mx-auto flex max-w-3xl flex-col gap-2 px-4 py-8 text-sm text-text-muted sm:flex-row sm:items-center sm:justify-between sm:px-6"><p>&copy; 2026 <span class="font-mono text-text">gabeefranco</span> &middot; All rights reserved.</p><div class="flex items-center gap-4"><span class="hidden sm:inline">Written by hand in Porto Alegre.</span><a href="https://github.com/gabeefranco" target="_blank" rel="noopener noreferrer me" class="transition-colors hover:text-primary">GitHub</a><a href="https://github.com/gabeefranco/gabeefran.co-blog" target="_blank" rel="noopener noreferrer" class="transition-colors hover:text-primary">Source</a></div></div></footer></body></html>