Long before progressive web apps came along we were using iOS’
add to home screen function for bookmarking websites, which can make them run full-screen with some options like leaving space for status bar indicators. This combined with the applicationCache and localStorage APIs for offline capability allowed us to create native-app-feeling web applications. Many of these are prize give-away apps, sometimes with a mechanic like a scratch-card with Bootstrap theming (for which I used the Lavish Bootstrap ruby app to conjure a bootstrap theme to match brand colours).
In the last few iterations of these apps we’ve made the move to Python3 and PWAs (Progressive Web Apps) with a simple RethinkDB-based CherryPy backend, with the reporting simply generated with the excellent pyexcel library, which creates proper actual .xlsx files (goodbye having to explain how to change delimiters to end-users for CSV imports!)