anton.garavelli.io Open in urlscan Pro
95.216.36.183  Public Scan

URL: https://anton.garavelli.io/
Submission: On January 11 via api from US — Scanned from US

Form analysis 2 forms found in the DOM

<form class="gh-form" data-members-form="">
  <input class="gh-form-input" type="email" placeholder="jamie@example.com" required="" data-members-email="">
  <button class="gh-button" type="submit">
    <span><span>Subscribe</span> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256">
        <path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path>
      </svg></span>
    <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
      <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
        <g class="nc-loop-dots-4-24-icon-o">
          <circle cx="4" cy="12" r="3"></circle>
          <circle cx="12" cy="12" r="3"></circle>
          <circle cx="20" cy="12" r="3"></circle>
        </g>
        <style data-cap="butt">
          .nc-loop-dots-4-24-icon-o {
            --animation-duration: 0.8s
          }

          .nc-loop-dots-4-24-icon-o * {
            opacity: .4;
            transform: scale(.75);
            animation: nc-loop-dots-4-anim var(--animation-duration) infinite
          }

          .nc-loop-dots-4-24-icon-o :nth-child(1) {
            transform-origin: 4px 12px;
            animation-delay: -.3s;
            animation-delay: calc(var(--animation-duration)/-2.666)
          }

          .nc-loop-dots-4-24-icon-o :nth-child(2) {
            transform-origin: 12px 12px;
            animation-delay: -.15s;
            animation-delay: calc(var(--animation-duration)/-5.333)
          }

          .nc-loop-dots-4-24-icon-o :nth-child(3) {
            transform-origin: 20px 12px
          }

          @keyframes nc-loop-dots-4-anim {

            0%,
            100% {
              opacity: .4;
              transform: scale(.75)
            }

            50% {
              opacity: 1;
              transform: scale(1)
            }
          }
        </style>
      </g>
    </svg> <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
      <path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"></path>
      <style>
        .checkmark {
          width: 40px;
          height: 40px;
          display: block;
          stroke-width: 2.5;
          stroke: currentColor;
          stroke-miterlimit: 10;
        }

        .checkmark__check {
          transform-origin: 50% 50%;
          stroke-dasharray: 48;
          stroke-dashoffset: 48;
          animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) forwards;
        }

        @keyframes stroke {
          100% {
            stroke-dashoffset: 0;
          }
        }
      </style>
    </svg> </button>
</form>

<form class="gh-form" data-members-form="">
  <input class="gh-form-input" type="email" placeholder="jamie@example.com" required="" data-members-email="">
  <button class="gh-button" type="submit">
    <span><span>Subscribe</span> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256">
        <path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path>
      </svg></span>
    <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
      <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
        <g class="nc-loop-dots-4-24-icon-o">
          <circle cx="4" cy="12" r="3"></circle>
          <circle cx="12" cy="12" r="3"></circle>
          <circle cx="20" cy="12" r="3"></circle>
        </g>
        <style data-cap="butt">
          .nc-loop-dots-4-24-icon-o {
            --animation-duration: 0.8s
          }

          .nc-loop-dots-4-24-icon-o * {
            opacity: .4;
            transform: scale(.75);
            animation: nc-loop-dots-4-anim var(--animation-duration) infinite
          }

          .nc-loop-dots-4-24-icon-o :nth-child(1) {
            transform-origin: 4px 12px;
            animation-delay: -.3s;
            animation-delay: calc(var(--animation-duration)/-2.666)
          }

          .nc-loop-dots-4-24-icon-o :nth-child(2) {
            transform-origin: 12px 12px;
            animation-delay: -.15s;
            animation-delay: calc(var(--animation-duration)/-5.333)
          }

          .nc-loop-dots-4-24-icon-o :nth-child(3) {
            transform-origin: 20px 12px
          }

          @keyframes nc-loop-dots-4-anim {

            0%,
            100% {
              opacity: .4;
              transform: scale(.75)
            }

            50% {
              opacity: 1;
              transform: scale(1)
            }
          }
        </style>
      </g>
    </svg> <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
      <path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"></path>
      <style>
        .checkmark {
          width: 40px;
          height: 40px;
          display: block;
          stroke-width: 2.5;
          stroke: currentColor;
          stroke-miterlimit: 10;
        }

        .checkmark__check {
          transform-origin: 50% 50%;
          stroke-dasharray: 48;
          stroke-dashoffset: 48;
          animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) forwards;
        }

        @keyframes stroke {
          100% {
            stroke-dashoffset: 0;
          }
        }
      </style>
    </svg> </button>
</form>

Text Content

Stefano Garavelli
 * Home

Sign in Subscribe


TECHNICAL PRODUCT MANAGER. DIGITAL MARKETING AND PUBLISHING

Subscribe


LATEST


HOW TO CONFIGURE GHOST TRANSACTIONAL EMAILS WITH DOCKER COMPOSE ENV VARIABLES

If you are getting errors in Ghost running on Docker when signing up for a new
user, adjust your ENV variables to get rid of a couple of variables.

By Stefano Garavelli Dec 30, 2023


CLICKHOUSE FOR BUSINESS INTELLIGENCE AND WEB ANALYTICS

How to import MySQL data in Clickhouse for fast business intelligence analysis
of large data sets

By Stefano Garavelli Dec 22, 2023


HOW TO START A WEB AND EMAIL NEWSLETTER PUBLICATION IN 2023

I have been working in digital publishing since 2012 and it's been a ride.
Lately, and 100M+ page views later, I came to the conclusion that figuring out a
simple and effective way to start a web and email publication can be
overwhelming. Let me offer my hard-gained experience with

By Stefano Garavelli Oct 26, 2023


LOW LATENCY REMOTE DESKTOP SOLUTION FOR MULTIPLE OS

If you manage multiple servers and desktops, be it your own home lab servers,
gaming desktop or work computers or servers, the ideal solution to quickly and
conveniently screen share with another computer running different OSes is hard
to find. Even harder is to find a low latency remote desktop

By Stefano Garavelli Oct 6, 2023


HOW TO RUN A FREE VIRTUAL MACHINE ON APPLE SILICON M1

Apple Silicon was introduced a few years back and I had the opportunity of
testing the first MacBook Pro M1 13" and then the MacBook Pro 14" and the Mac
Studio which I used for a couple of years. To run a free virtual machine on
Apple Silicon M1 UTM

By Stefano Garavelli Sep 27, 2023


ELECTRIC CAR OWNERSHIP AND DRIVING GUIDE

I have had my driving licence since I was 18. It's been 22 years – and even
though I'm not keeping records – I have certainly averaged 40,000 miles a year
which brings the total a little over 800,000 miles driven so far. I have had
electric cars since 2016.

By Stefano Garavelli Feb 18, 2020


CUSTOMER CARE IS THE NEW KILLER PRODUCT

Traditional businesses are poised to the threat of incumbent companies entering
the same space with a simpler product and an even simpler statement: we value
our customers. As a result, consumption behaviours will change adapting to a new
offering and uplifted expectations, rendering the traditional offering out of
scope. Business

By Stefano Garavelli Jun 26, 2018


THE STORY SO FAR WITH MEDIUM

A friend of mine who works at Automattic once moved his personal blog from a
self-hosted WordPress site to Medium. He wanted to research if there was any
effective network effect on the platform. After just a couple of weeks, he moved
back to WordPress. His page-view count didn’t

By Stefano Garavelli May 16, 2018


FACEBOOK REAL NAME POLICIES AND RULING THE WORLD

Facebook’s real name policy is inherently naive, dangerous and evil. Ever since
Silicon Valley was empowered to strive for real-world domination, there have
been countless attempts to disrupt lives by collecting, storing, redistributing
personal information to turn a profit and grow power. The Guardian revealed that
Facebook’s contractors

By Stefano Garavelli Jun 18, 2017


NEWSPAPERS COULD BE SAVED BY LOOKING AT THE METRICS THAT REALLY SUPPORT THEIR
BUSINESS

Product people look at the right metrics to support both the company’s vision
and the business model. Attention minutes are way more valuable than pageviews

By Stefano Garavelli Jul 25, 2016
Stefano Garavelli
 * Sign up

Powered by Ghost


STEFANO GARAVELLI

Technical Product Manager. Digital marketing and publishing

Subscribe