Você vê algum problema se o usuário tiver duas tabs ou janelas abertas? Normalmente, ao utilizar o localStorage, precisamos pensar em alguma estratégia de concorrência quando o usuário tem várias tab abertas.

Pra falar a verdade, nunca tinha pensado nisso sobre o usuário possuir várias abas abertas. Nesse caso, realmente poderia dar um problema na persistência de dados. Por isso, seria melhor url state, ou seja, persistir os dados na propria url, com search params.

Pra pegar o search params no lado do cliente, voce pode usar o hook "useSearchParams" do proprio Next.js

Pra pegar no lado do servidor, voce precisa adicionar como parametro da funcao.

ex:

interface AppProps {
    searchParams: {
        [key: string]: string
    }
}

const App = ({ searchParams }: AppProps) => {
    const dado = searchParams.<nome>;

    return <><\>
}