Penso cose
digitali.
Pensieri, parole, codice, arte, citazioni, articoli e link in ordine cronologico. Niente qui è finito, ed è esattamente questo il punto.

Pensieri, parole, codice, arte, citazioni, articoli e link in ordine cronologico. Niente qui è finito, ed è esattamente questo il punto.

Principe azzurro, tragedia italiana e relazioni così così
Snippet PHP per personalizzare esteticamente la pagina di login di WordPress tramite functions.php. Logo, colori e redirect.
function custom_login_styles() { ?>
<style type="text/css">
/* Modifica il logo */
#login h1 a, .login h1 a {
background-image: url(<?php echo get_stylesheet_directory_uri(); ?>/assets/images/custom-logo.png);
height: 80px;
width: 320px;
background-size: contain;
background-repeat: no-repeat;
padding-bottom: 20px;
}
/* Modifica il colore di sfondo della pagina */
body.login {
background-color: #1a1a1a;
}
/* Modifica il pulsante di login */
#wp-submit {
background-color: #0073aa;
border-color: #006799;
box-shadow: none;
text-shadow: none;
}
</style>
<?php }
add_action( 'login_enqueue_scripts', 'custom_login_styles' );
Come usare Keystatic come CMS per authoring e Zod per validare la SEO e i tipi al build-time in Next.js senza lock-in.
import fs from "node:fs";
import path from "node:path";
import matter from "gray-matter";
import { z } from "zod";
// Schema Zod per validare il contenuto generato dal CMS
const articleSchema = z.object({
title: z.string().min(1).max(80),
date: z.coerce.date(),
// La SEO description è obbligatoria tra 50 e 160 caratteri:
// se manca o è troppo corta, il build di Next.js fallisce.
description: z.string().min(50).max(160),
status: z.enum(["beta", "rc", "production"]).default("beta"),
draft: z.boolean().default(false),
});
export function getArticle(filePath: string) {
const fileContent = fs.readFileSync(filePath, "utf8");
const { data, content } = matter(fileContent);
// Validazione rigida prima della generazione statica
const parsed = articleSchema.safeParse(data);
if (!parsed.success) {
throw new Error(
`Frontmatter non valido in ${filePath}:\n${parsed.error.message}`,
);
}
return {
...parsed.data,
body: content.trim(),
};
}«Fuggite Sciocchi !»
Gandalf il GrigioDall'AI slop agli "agent swarm": come redazioni di intelligenze artificiali cambieranno la scrittura e perché l'esperienza umana sarà l'unico differenziale.
Perché ho abbandonato i CMS tradizionali per ricostruire il mio archivio di pensieri con Keystatic, React e Next.js.
Come usare un AI coding agent per mantenere una wiki coerente e interconnessa per la tua campagna di D&D 5e senza fatica.
Trasforma qualsiasi sito web in codice pulito e componentizzato in Next.js o Vite con Ditto, lo strumento open-source per sviluppatori.
Il mito del CPO nel marketing nasconde insidie letali per gli e-commerce. Scopri perché il rapporto LTV:CAC è l'unica metrica che salva davvero i margini.
