One of my projects is a desktop app in Python for a retail business, backed by a local SQL database. It covers inventory and stock, point-of-sale transactions for both cash and credit sales, customer accounts and payment tracking, daily earnings and expense logging, and PDF customer statements you can export.
with an app like this, the database file is the business. That drove two decisions. The first is a layered architecture that keeps data access, business logic and the UI separate, so changing a screen can't quietly break how a sale gets recorded. The second is an automatic backup every time the app starts, so there's always a recent copy to fall back on.
the startup backup is deliberately unglamorous: there's no schedule to configure or forget, the app just does it every time it opens.
it's a plain desktop app on purpose. For a single shop, a local database and a reliable backup beat anything that needs a server to stay up.