JSFiddle - React, Tailwind, and code Playground

HTML

<span id="cookies"></span><br/>
    <button onclick="cookieClick(1)">Cookie</button>
    <button onclick="buyCursor()">Buy cursor</button>
    <br/>
    Cursors: <span id="cursors">0</span><br />
    Cost: <span id="cursorCost">10</span>
    <br/>

    <button onclick="save()">Save game</button>
    <button onclick="load()">Load game</button>

<script>
// liczba ciasteczek na początku gry
var cookies = 0;

//klikając podnosimy liczbę ciastek o 1 po kliknięciu w przycisk
function cookieClick(number) {
    cookies = cookies + number;
    document.getElementById("cookies").innerHTML = cookies;
}
// liczba cursors na początku wynosi 0
var cursors = 0;

// funkcja odpowiada za kupowanie kursorow
function buyCursor(){
    // koszt kursora jako 10* 1,1 ^ liczba kursorów
    var cursorCost = Math.floor(10 * Math.pow(1.1,cursors));
    //sprawdzamy czy liczba cookies jest wieksza czy rowna kosztowi cursora, jesli tak, to kup 1
    if(cookies >= cursorCost){
        cursors = cursors + 1;
        cookies = cookies - cursorCost;
        document.getElementById('cursors').innerHTML = cursors;
        document.getElementById('cookies').innerHTML = cookies;
    }
    //obliczamy koszt kolejnego kursora 10*1.1^liczba cursorow
    var nextCost = Math.floor(10 * Math.pow(1.1,cursors));
    document.getElementById('cursorCost').innerHTML = nextCost;
}



//co sekunde zwiekszamy liczbe cookies o liczbe cursorow
window.setInterval(function(){
    cookieClick(cursors);
}, 1000);


//zapis gry
function save() {
    var save = {
        cookies: cookies,
        cursors: cursors
        };

    localStorage.setItem("save",JSON.stringify(save));
}

//wczytanie gry
function load() {
    var savegame = JSON.parse(localStorage.getItem("save"));
    if (typeof savegame.cookies !== "undefined") {cookies = savegame.cookies}
    if (typeof savegame.cursors !== "undefined") {cursors = savegame.cursors}
}
</script>