i defined in panel/bootstrap.php
if(!defined('READONLY')) define('READONLY', true);
and used this everywhere
if(!READONLY) { ... }
so it should be pretty self explanatory. but i still need to test it. 
i defined in panel/bootstrap.php
if(!defined('READONLY')) define('READONLY', true);
and used this everywhere
if(!READONLY) { ... }
so it should be pretty self explanatory. but i still need to test it. 
as texnixe suspected i need a special version of the panel, not a demo to show of how what the panel is.
but like you said i also had troubles showing customers what exactly the panel is and can do, just from the documentation available on https://getkirby.com/docs/panel. like how pages and files can be created and edited. but i most cases they did trust me if i said ‘it will be easy to do’.
I think the demo / read-only / sandbox / kiosk mode would be awesome;
Last week I wanted to demo the panel of Kirby, but could not do this - because it has no read-only mode at the moment.
My client is miles away and I didn’t want to set-up a fully functional Kirby site; I just wanted him to log in at an existing site (with real content / front-end), so he was able to see by himself how nice the panel can be customized and how it shows the content in the front-end.
Hope a kiosk-mode / sandbox-mode (were the content will be resetted after you log-out) once 
Frankly a kiosk mode or anything that strongly changes the CRUD (create, read, update, delete) rules of the panel would be an enormous undertaking with a lot of security implications. No one wants to go down that rabbit hole.
If you want to demo the panel to a client or prospective client there are plenty of options: you can do screenshots, video captures, a screen sharing session (you demo the panel on a test website), or you can install a throwaway test website on a server.
Or something like user-roles?
Like;
Where the last one can not do anything - but registering and lurking 
- edit - Of course you can cmod the content directory to read permission only and hide any error-message when trying to do so…
…or you can copy the site to another webroot and delete it once the client is done testing as @fvsch wrote.
i did test it and works as intended.