Blog
Subscribe via RSS to keep up with new posts.
- What You Get With a Real HTML Button
- When to Use a Link or a Button
- The Difference Between HTML meter and progress
- Showing Calculation Results With HTML output
- Input Suggestions With HTML datalist
- HTML autocomplete Values Worth Using
- What the HTML search Element Is For
- When CSS @supports Is Useful
- Show Form Errors After Interaction With :user-invalid
- Smoother Page Changes With View Transitions
- Styling Scrollbars With Modern CSS
- When to use CSS clip-path or mask
- Fading images with CSS masks
- Responsive shapes with CSS shape()
- 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
- Expandable sections with HTML details and summary
- The Modern CSS Color Functions I Find Useful
- CSS Scroll-Driven Animations Without JavaScript
- Building a modal with HTML dialog
- 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
- What HTML forms can do without JavaScript
- Show Better Mobile Keyboards With HTML inputmode
- Making a page section inactive 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?
- Kā saskaņot iekšējo un ārējo border-radius
- Kā gudrāk rakstīt promptus GPT-5.1
- Beidzas Facebook Like un Comment pogu ēra
- Ko darīt, ja ar Google atsauksmēm pieprasa naudu
- Kā uzlabot sava zīmola redzamību AI rīkos
- Google uzlabo Display kampaņu atskaiti
- GEM: kā Meta izvēlas, kuras reklāmas rādīt
- Waze reklāmas tagad arī PMax kampaņās
- YouTube jaunumi video montāžai un audio vairākās valodās
- Meta Advantage+ Leads kampaņas
- App Store lietotnes tagad var meklēt arī pārlūkā
- Kā ieslēgt Split View Google Chrome pārlūkā
- TikTok atvieglo satura radīšanu ar AI palīdzību
- Adobe Premiere Mobile pievieno rīkus YouTube Shorts veidošanai
- Jauni reklāmu formāti Threads
- Performance Max tagad atbalsta 9:16 attēlus
- Instagram pievieno skatīto Reelu vēsturi
- Kā paziņot meklētājiem par jaunu saturu ar IndexNow
- Google Search Console tagad grupē līdzīgus meklējumus
- ChatGPT Atlas: pārlūks ar iebūvētu ChatGPT
- Google Ads dzēsīs atceltos kontus pēc sešiem mēnešiem
- Kas mainās Google meklēšanas kampaņās ar AI Max
- Kādu reklāmas platformu izvēlēties?
- ChatGPT drīzumā varēs iepirkties
- Apple Ads: Kas jāzina 2026. gadā
- Kā AI var palīdzēt ikdienas darbā ar PPC kampaņām
- Noderīgas bezmaksas MacOS programmas
- Kāpēc bezmaksas X konta ierakstus redz tik maz cilvēku
- Kā mainīt kopīgotas saites attēlu un tekstu ar Open Graph
- Kā reklāmas platformas izmanto mākslīgo intelektu
- 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
- Kas ir GEO un kā tas saistīts ar SEO
- 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
- Getting border-radius right on nested elements
- Why I block AI scrapers instead of setting traps
- Where I use CSS nesting and where I keep selectors flat
- 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()
- Writing a technical blog people want to read
- Delete Your Old Tweets With TweetXer
- AI Is Changing Marketing, but It Still Needs Supervision
- Should You Block AI Crawlers?
- Which bots should you let crawl your website?
- What the EU Digital Services Act Changes Online
- The Open Graph Tags a Shared Page Needs
- Free courses to start learning AI
- What Google's March 2024 Update Targeted
- Using UTM tags without making a mess of campaign names
- A plain text task list with Todo.txt
- 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
- What Schema.org tells search engines about a page
- What robots.txt does and what it doesn't
- FFmpeg Commands Worth Keeping Nearby
- How large language models generate text
- 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
- Writing an AI prompt that says what you need
- How margin-inline follows the text direction
- What CSS color-scheme Actually Does
- Serving Google Fonts from your own domain with Cloudflare
- How to Block AI Crawlers Without Blocking Search
- What people mean when they talk about AGI
- Figma vs Sketch in 2024
- What to test when Facebook ads aren't working
- Making Digital Advertising Decisions With Data
- The Apps I Actually Use Every Day
- Native CSS Nesting Without Sass
- Font sizes and spacing that scale with CSS clamp()
- Aligning Nested Layouts With CSS Subgrid
- Loading videos only when they're needed
- 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 with JSON-LD
- 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
- What a canonical URL tells search engines
- How serverless functions work
- Finding and fixing redirect chains
- 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
- Font sizes that scale with the screen using CSS clamp()
- Add Custom Headers to Cloudflare Pages
- What's different about OpenType and TrueType fonts?
- Text-Only Websites for a Lighter Web
- Preload, Preconnect, or Prefetch?
- Invert Colours With One CSS Filter
- Getting a content file's name and path in Hugo
- 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
- Adding page metadata and Open Graph tags in 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
- Mixing percentages and pixels with CSS calc()
- The web open font format (WOFF)
- Dark mode images without JavaScript
- Styling list markers with CSS list-style
- Working around the 100vh problem in Mobile Safari
- Dark mode for SVG favicon
- Showing task progress with HTML progress
- 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
- Creating a page for each tag in Jekyll
- A practical SEO setup for a Jekyll site
- Keeping scripts out of local Jekyll builds
- Chrome extensions for accessibility testing
- Which font files do you need for a website?
- Selecting empty elements with CSS :empty
- Adding Staticman comments to a Jekyll site
- Google Analytics alternatives
- Changing the text cursor with CSS caret-color
- Making a device vibrate from a web page
- 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
- Checking editable text with HTML spellcheck
- Using small caps with CSS font-variant
- Load page-specific CSS and JavaScript in Jekyll
- Add reading time to Jekyll without a plugin
- Add an RSS feed to a Jekyll blog
- WordPress plugins for backups, testing, and maintenance (2018)
- 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
- Different CSS for touch and mouse input
- How to Improve Website Traffic Without Chasing Every Tactic
- Marking up abbreviations with HTML abbr
- 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 and old browser hacks