Site update
Ops, security, and visual cleanup pass. Fixed nightly backup and uptime cron scripts (executable bits so maintenance actually runs); removed a broken missing-script cron entry. Blocked public download of ops docs, tools, and SQLite databases on the blog and changelog hosts; locked guestbook internal PHP bootstrap files at the edge. Blog public pages no longer open a session for anonymous readers; guestbook sessions start only when a form/captcha needs them. Blog gained HSTS/CSP headers; legacy blog login redirects to the unified admin. Friend/badge links that only work over plain HTTP (lolwut, 711chan, 9p.sdf, etc.) use http:// so they stop looking “dead” under TLS. Homepage dropped the “more links loading…” filler tiles; startpage now uses the shared site footer (comfort spacing stays on the header control); collection empty photo slots and badge alts tidied; guestbook form/comments pick up site mono fonts; admin panel styles moved into a dedicated stylesheet; 404/50x got skip-to-content anchors; bbs.php permanently redirects to the diary BBS. Locale key parity cleaned up. Link/html audits still green.
Site update
Hardening and hygiene. Admin password moved out of the web root (supports password_hash + legacy sha256); robots.txt disallows admin/API/tools; security headers are nginx-only (no PHP duplicates); homepage no longer sets a session cookie for anonymous visitors. /mstartpage/ permanently redirects to /startpage/. Shared head_meta on section indexes; locale dicts filled to parity; image budget scans startpage/gaming/computers and oversized assets recompressed; maintenance cron for backup, uptime, and audits; docs refreshed for the PHP layout.
Site update
Homepage polish pass III. Removed scanline screen textures in favour of soft radial ambient glows; improved secondary text contrast, prose typography for blog/changelog panels, and section breathing room. The vibe video placeholder now uses a terminal-style overlay; protocol pills gained a sidebar alt-nets nav; Friends, Countries, and Buttons collapse into accordions on mobile. Images stay PNG — no WebP conversion.
Site update
Visual polish pass across the homepage and startpage. Added a hero block with the Lain avatar, animated monospace tagline, and a more prominent "Where to start" card grid with emoji icons and neon accent hovers. Introduced subtle CSS-only ambient background textures (soft radial glows in dark mode, paper grain in light mode), section accent underlines, timeline-style update panels, guestbook card containers, and unified badge hover styling for friends/country/tile grids. Protocol pills and theme toggle now have smoother transitions; the footer gained a "made with ♥ on the small web" line. The startpage footer also picked up a comfort-spacing toggle that widens line height on long card link lists (persisted in localStorage).
Site update
Footer and badge polish. Reworked the EFF "Free Speech Online" badge so it reads in both themes: dark mode now shows it on a black tile with red lettering and the blue ribbon kept, while light mode keeps the snow/ice white card with blue trim. Recoloured the ribbon image so its text shows on the dark background, dimmed the badge's red border at rest (brightening on hover), and removed the stray red glow that popped up underneath it on hover. On hover the light-mode badge now matches the other button tiles. Finally, lined the homepage footer up with the main content column so it starts and ends where the page content does instead of drifting left.
Full changelog →