NFC tags are small passive circuits that draw power from the device that reads them, using magnetic induction and respond with a small piece of information (usually a few bytes long). Which means that they don't need a battery. They function much like RFID, but in the case of NFC the reader has to be really close to the tag, in most of the cases, actually touching it.
They are cheap, small and you can purchase them in the form of small stickers, the size of a small coin. And your mobile phone is probably able to read them (for example, any iPhone since iPhone 7 with iOS 11 or later).
I knew little about NFC tags, so I got a 10-pack for €6.95 from Amazon.
It is important to understand that the tag itself does not implement any logic. If you read about "programming NFC tags", this is not about implementing some logic on the tag, but writting some piece of information on it. An NFC tag is as smart as a piece of paper with a QR code on it.
The tags I purchased can hold up to 888 bytes. If you don't write any additional info on them, when read they will just return an ID.
In order to use them on iPhone, go to the Shortcuts app, create a new Automation and select NFC.
At the end of this post are the steps I followed to create an automation that will turn on/off the (Philips Hue) lamp on my desk.
I'm not sure if it's the tags, my iPhone or the NFC spec itself, but in some occasions the phone may not read the tag and you have to try again. I found it useful to add some indication (vibration in this case) as the first step of the automation, in order to have a clear sign if the automation was triggered or not.
You can read/write the info on a tag using apps like NFC TagInfo by NXP and NFC TagWriter by NXP. I tried it, it works, but I did not have any use for it at the moment.
These are my first steps on NFC tags. If you think something sould be corrected on this article, please let me know! (@vrypan)