digraph G { node [ shape=box ] # rankdir=LR; label="Nico's Christmas shopping flow (2019)" start [ label="Start" ]; needpresents [ label="Do I want to buy presents?" ]; stayhome [ label="All good. Let's do something else." ]; # lookforpresents [ label="Let's look for presents!" ]; isitdigital [ label="Is the present digital?" ]; runsopensource [ label="Does it run Open Source?" ]; usesnet [ label="Does it connect to the network?" ]; supportsv6 [ label="Does it support IPv6?" ]; buyit [ label="Ok, let's buy it!" ]; notgood [ label="Don't buy, this is trouble" ]; # isvirtual [ label="Does a VM/VPN work?" ]; start->needpresents; needpresents->stayhome [ label="No" ]; needpresents->isitdigital [ label="Yes" ]; isitdigital->runsopensource [ label="Yes" ]; isitdigital->buyit [ label="No" ]; runsopensource->notgood [ label="No" ]; runsopensource->usesnet [ label="Yes" ]; usesnet->buyit [ label="No" ]; usesnet->supportsv6 [ label="Yes" ]; supportsv6->notgood [ label="No" ]; supportsv6->buyit [ label="Yes" ]; # supportsv6->isvirtual [ label="Yes" ]; }