Blog
Subscribe via RSS to keep up with new posts.
- Use clip-path for Edges and mask for Fades
- CSS Masks Are Better Than Editing a Fade Into an Image
- CSS shape() Makes Responsive Paths Easier
- CSS @property Gives Variables a Type
- Modern CSS You Can Actually Use Today
- Image Alt Text: When to Use It and When Not To
- Why PageSpeed Tests Give Different Results
- Build Disclosures With HTML <details> and <summary>
- The Modern CSS Color Functions I Find Useful
- CSS Scroll-Driven Animations Without JavaScript
- Start Modal Windows With the HTML <dialog> Element
- HTML Popover API: Popovers Without JavaScript
- Why Every Website Should Have an RSS Feed
- Native HTML and CSS Features That Replaced JavaScript
- Why I Still Build Static Websites in 2026
- How to Hide Content Accessibly
- The Back/Forward Cache Makes Return Visits Feel Instant
- How Third-Party Scripts Slow Down Websites
- Why You Shouldn't Lazy-Load Every Image
- When to Use preload, prefetch, and preconnect
- Change Hugo's Markdown Output With Render Hooks
- Responsive Images in Hugo Without a Plugin
- HTML Forms Can Do More Than You Think
- Show Better Mobile Keyboards With HTML inputmode
- Disable a Whole Page Section With HTML inert
- CSS interpolate-size: Animate From 0 to auto
- CSS Cascade Layers: What @layer Is Actually For
- Keep Component Styles Contained With CSS @scope
- Position Tooltips and Menus With CSS Anchor Positioning
- Kāpēc tavs Mac bremzē?
- Vai mākslīgais intelekts atņems darbu digitālā mārketinga speciālistiem?
- Kā uzrakstīt labu specifikāciju mākslīgā intelekta aģentam
- Kā apiet algoritmus ar RSS
- Kas ir robots.txt un kā tas ietekmē SEO?
- Perfekti noapaļoti stūri
- Kā gudrāk rakstīt promptus GPT-5.1
- Beidzas Facebook Like un Comment pogu ēra
- Kad negatīvas atsauksmes kļūst par šantāžu
- Kā uzlabot sava zīmola redzamību AI rīkos
- Google uzlabo Display kampaņu atskaiti
- Meta jaunais ģeneratīvais reklāmu modelis
- Waze reklāmas tagad arī PMax kampaņās
- YouTube ievieš jaunus rīkus satura veidotājiem
- Meta Advantage+ Leads kampaņas
- App Store tagad arī kā mājaslapa
- Kā ieslēgt Split View Google Chrome pārlūkā
- TikTok atvieglo satura radīšanu ar AI palīdzību
- Adobe un YouTube apvieno spēkus
- Jauni reklāmu formāti Threads
- Performance Max tagad atbalsta 9:16 attēlus
- Instagram pievieno skatīto Reelu vēsturi
- IndexNow: Tūlītēja indeksēšana AI un meklētājos
- Query Groups tagad Google Search Console
- ChatGPT pārlūks ir klāt
- Google Ads dzēsīs neaktīvos kontus
- Viss kas jāzina par Google AI Max
- Kādu reklāmas platformu izvēlēties?
- ChatGPT drīzumā varēs iepirkties
- Apple Ads: Kas jāzina 2026. gadā
- Gudrākas PPC kampaņas ar AI
- Noderīgas bezmaksas MacOS programmas
- X (Twitter) ir miris bezmaksas kontiem
- Open Graph: Tava satura vizītkarte
- Mākslīgais intelekts reklāmā
- Populārākie sociālie tīkli Latvijā 2025. gadā
- Kā palielināt sekotāju skaitu Instagram?
- Google Ads iesācējiem: vienkāršs ceļvedis
- Lietoju GitHub Copilot Pro bez maksas
- Kā izdzēst “Liked videos” saturu no YouTube playlistes
- Kā iestatīt laika joslu Hugo un Cloudflare Pages projektā
- Kā pasargāt savu saturu no AI robotiem?
- Manas pārdomas par ChatGPT-5
- SEO ir miris. Sveiks, GEO.
- Why I Still Curate My Own Bookmarks
- I Miss Personal Websites That Actually Feel Personal
- Theme a Site with CSS Custom Properties
- Technical SEO Audit Checklist for Static Sites
- How I Recover from Common Git Mistakes
- Build, Minify, and Fingerprint SCSS with Hugo Pipes
- Choose Where Hugo Gets a Page's Last-Modified Date
- Change a Hugo Post URL Without Breaking the Old Link
- Add Line Numbers to a Hugo Code Block
- The Inner Corner Radius Should Follow the Outer One
- CSS Nesting Is Useful When It Keeps Context Close
- Blocking AI Scrapers Is More Useful Than Playing Games with Them
- The Fediverse Is Social Media Without One Central Platform
- Bluesky Search Operators I Actually Use
- Use a Bluesky Post as the Comment Thread for a Hugo Page
- Bulk Unsubscribe From YouTube Channels With a Browser Script
- Add Mastodon Author Attribution to Your Articles
- Let Form Controls Size Themselves With field-sizing
- A Simpler Light and Dark Theme With CSS light-dark()
- Technical Blogging Works When the Article Solves Something
- Delete Your Old Tweets With TweetXer
- AI Is Changing Marketing, but It Still Needs Supervision
- Should You Block AI Crawlers?
- Good Bots, Bad Bots, and the Messy Middle
- What the EU Digital Services Act Changes Online
- The Open Graph Tags a Shared Page Needs
- A Free Route Into Learning AI
- What Google's March 2024 Update Targeted
- UTM Tags Are Simple Until Everyone Names Them Differently
- A To-Do List That Is Just a Text File
- Self-Hosting Web Fonts Without Overcomplicating It
- Start TypeScript With the Code You Already Have
- Invert an Image With One CSS Filter
- Why a Huge z-index Still Does Not Work
- The HTTP Status Codes I Actually Check
- Schema.org Gives Search Engines Better Facts, Not Better Rankings
- robots.txt Is a Crawling Hint, Not a Security Feature
- FFmpeg Commands Worth Keeping Nearby
- Large Language Models Are Prediction Engines
- Running a Local LLM With Ollama
- Keeping Elements in Proportion With CSS aspect-ratio
- Better Headlines With CSS text-wrap
- Use AI as an Editor, Not a Ghostwriter
- Better AI Prompts Start With Better Constraints
- Use margin-inline for Writing-Mode-Aware Spacing
- What CSS color-scheme Actually Does
- What Cloudflare Fonts Changes
- How to Block AI Crawlers Without Blocking Search
- AGI Is an Idea, Not a Product Category
- Figma or Sketch: The Choice Is Mostly About Workflow
- Make Facebook Ads Better by Testing the Right Things
- Making Digital Advertising Decisions With Data
- The Apps I Actually Use Every Day
- Native CSS Nesting Without Sass
- Sizing Things With CSS clamp()
- Aligning Nested Layouts With CSS Subgrid
- Lazy-Loading Video Without Surprises
- Cutting Elements Into Shapes With CSS clip-path
- What Makes a Website a Progressive Web App?
- A Vim Cheat Sheet for Commands I Keep Forgetting
- Filtering Content With the CSS :has() Selector
- The ABCD Framework for YouTube Ads
- Setting Up SSH Keys on Ubuntu 20.04
- Installing Node.js on Ubuntu 20.04
- Google Analytics 4 vs. Universal Analytics
- Jekyll vs Hugo: Two Good Static Site Generators
- Writing for SEO Without Writing for Robots
- Facebook Ads vs Google Ads vs Microsoft Ads: Start With Intent
- Adding Structured Data Without Promising Rich Results
- What Google Search Console Is Actually Useful For
- Mastodon Is a Network, Not One Social Website
- Improving Core Web Vitals Without Chasing a Perfect Score
- Figma vs Sketch: The Workflow Matters More Than the Feature List
- Eleventy vs Hugo: Which One Fits Your Workflow?
- What a Static Site Generator Actually Does
- Canonical URLs Are Hints, Not Redirects
- Serverless Functions Still Run on Servers
- Redirect Chains Add Requests You Usually Do Not Need
- What Makes Code Maintainable?
- Git habits that keep a project understandable
- Web accessibility starts with the basics
- Writing an article with ChatGPT
- Use your Netlify domain as a Mastodon username alias
- CSS Grid or Flexbox? Choose by layout direction
- The non-technical skills that make developers better
- Pull website data into Google Sheets with IMPORTXML
- Embedding audio with Hugo shortcodes
- Enable raw HTML in Hugo
- Why Linux is a strong choice for programming
- Technical SEO for beginners
- Hugo shortcode for raw HTML
- Show related content in Hugo
- Set up Tailwind CSS in Hugo
- What makes a good laptop for web development?
- Practical ways to improve search visibility
- Count the pages in a Hugo section
- Write code that is easier to maintain
- CSS :has() Can Select a Parent
- One Font File, Many Weights: Variable Fonts
- Add Anchor Links to Hugo Headings
- Let Safari Draw the Apple Pay Button
- Fluid Typography Without Runaway Font Sizes
- Add Custom Headers to Cloudflare Pages
- OpenType and TrueType Fonts Are Closer Than They Look
- Text-Only Websites for a Lighter Web
- Preload, Preconnect, or Prefetch?
- Useful File Variables in Hugo
- Invert Colours With One CSS Filter
- AVIF Images: Smaller Files With a Sensible Fallback
- Move Google Photos to iCloud Photos With Takeout
- Make an Iframe Responsive With CSS
- Add a "Skip to Main Content" Link
- Google Search Operators Worth Remembering
- How Netlify Sites Opted Out of FLoC
- Nesting Media Queries in CSS
- Practical image loading improvements for the web
- Scheduling Netlify builds with GitHub Actions
- Programming quotes worth keeping around
- A simple tag cloud for Hugo
- Social sharing buttons without JavaScript
- Installing MySQL on macOS
- A practical meta-tag snippet for Kirby
- How to take screenshots with Chrome DevTools
- Adding JSON-LD to a Hugo site
- Illustration libraries for websites and apps
- Creating a Hugo theme from scratch
- Adding Google Tag Manager to a Hugo site
- Comma-separated tags in Hugo
- Client-side search for a Hugo site
- The hidden fonts included with macOS Catalina
- The CSS calc() function
- The web open font format (WOFF)
- Dark mode images without JavaScript
- The CSS list-style property
- Working around the 100vh problem in Mobile Safari
- Dark mode for SVG favicon
- The HTML progress element
- RSS feeds for GitHub releases, tags, and activity
- A one-line CSS layout debugger
- Use an emoji as a favicon
- Facebook advertising trends that mattered in 2020
- How the SameSite cookie attribute works
- Git cheat sheet for beginners
- The web development tools that earn their place
- Styling the hr element with CSS
- What to try when Photoshop feels slow
- Technical SEO tools worth keeping around
- Social media image sizes for 2020
- Replace a Dropbox file without changing its shared link
- Respecting prefers-reduced-motion with animated GIFs
- Semantic HTML and SEO
- Adding dark mode with prefers-color-scheme
- Give every meaningful iframe a useful title
- Getting a free SSL certificate with Cloudflare
- Tags in Jekyll
- A practical SEO setup for a Jekyll site
- Environments in Jekyll
- Chrome extensions for accessibility testing
- Which font format should you use?
- Selecting empty elements with CSS :empty
- Adding Staticman comments to a Jekyll site
- Google Analytics alternatives
- Changing the text cursor with CSS caret-color
- Web pages can use the Vibration API
- Adding HTTP response headers to a Netlify site
- CSS variables make repeated values easier to manage
- Using the HTML autofocus attribute
- text-decoration is a useful CSS shorthand
- Centering flexbox items
- Use autocomplete=new-password for new password fields
- Using CSS without getting in the way of accessibility
- Adding Outlook-only CSS to an HTML email
- Embedding video with the HTML video element
- Set up Rouge syntax highlighting in Jekyll
- HTML can spellcheck editable text
- Using the CSS font-variant property
- Load page-specific CSS and JavaScript in Jekyll
- Add reading time to Jekyll without a plugin
- Add an RSS feed to a Jekyll blog
- Useful WordPress plugins for testing and maintenance
- Use aria-current to mark the active item
- How to install Jekyll on macOS
- Highlight the current page in Jekyll navigation
- Do you need a static site generator?
- Embedding GitHub Gists in Jekyll
- A simple print style sheet for your website
- Responsive web design starts with flexible defaults
- How to disable Rouge syntax highlighting in Jekyll
- Add image captions in Jekyll without a plugin
- Start website performance work with the biggest bottleneck
- Show a post's word count in Jekyll
- Add a Custom 404 Page to Jekyll on GitHub Pages
- Redirect Old URLs in Jekyll
- Style Selected Text With CSS
- CSS Can Adapt to the Kind of Pointer Someone Uses
- How to Improve Website Traffic Without Chasing Every Tactic
- Using the HTML abbr Element
- Build a Navigation Menu From Jekyll Data
- Tools for Testing Structured Data Markup
- Monospaced Fonts for Coding
- How to Secure Your Website With HTTPS
- Marking Up Keyboard Input With HTML kbd
- Designing a Website Layout People Can Actually Use
- Highlighting Relevant Text With HTML mark
- Open-Source Email Templates Worth Knowing About
- You can transition z-index
- Places to Learn How to Code Online
- Sublime Text Packages for Front-End Development
- Rename Downloads With the HTML download Attribute
- A Few CSS Tricks You May Not Know