Creating a One-of-a-Kind NFT with Solidity

I am trying to write a Solidity contract that allows minting only one unique NFT. Most guides show how to create multiple tokens using ERC721. I would like a contract that stops additional minting once the single token is created.

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";

contract SoloNFT is ERC721URIStorage {
    bool public isMinted;

    constructor() ERC721("UniqueArt", "UART") {
        isMinted = false;
    }

    function mintToken(string memory tokenLink) public returns (uint256) {
        require(!isMinted, "Token already minted");
        uint256 newId = 1;
        _safeMint(msg.sender, newId);
        _setTokenURI(newId, tokenLink);
        isMinted = true;
        return newId;
    }
}

How can I adjust my code so that only one exclusive NFT is ever minted?

hey all, i was lookin at the code and it seems pretty straightforwrd. one idea i had was to use a modifier to encapsulate that check so that even if you want to expand or alter the contract later, you have a neat way to ensure no extra mints happen. i mean, maybe you could do something like:

modifier mintable() {
    require(!isMinted, "Token already minted");
    _;
}

function mintToken(string memory tokenLink) public mintable returns (uint256) {
    uint256 newId = 1;
    _safeMint(msg.sender, newId);
    _setTokenURI(newId, tokenLink);
    isMinted = true;
    return newId;
}

what do you guys think about this approach? has anyone tried integrating similar patterns in their contracts for a bit more modularity? also, how do you normally handle state changes like this in more complex scenarios? would love to hear some thoughts and any alternative strategies!