A picture of Sjors van Holst playing VR in nature
A picture of Sjors van Holst playing VR in nature

Sjors van Holst


A display software for schools to upload and display PowerPoints, running on Raspberry Pi with a frontend built using the IBM Carbon System and Next.js, and backend using Supabase and CloudConvert.

My mother, who runs an international primary school, wanted to install a TV in the hallway to keep parents and students informed about school-related information. She had approached a few services, but they all turned out to be too expensive. So, she asked me if I could develop software to run on the screen that would allow her to upload PowerPoints. I teamed up with Wouter de Bruijn, who developed a Nuxt frontend for the software while I focused on creating a Node application that ran on Windows to control PowerPoint.

We set up the software for my mother, and everything seemed great on the first day. However, running PowerPoint on Windows proved to be quite unstable, with frequent pop-ups and update requests. To address this, I rewrote the application in .NET with C#, which allowed me to tap into the PowerPoint API and stabilize the software somewhat. However, I wasn't satisfied with the solution yet.

After yet another rewrite, I settled on a system where PowerPoints get uploaded to Supabase, and then converted to a series of images using CloudConvert. The displays in the school run a stripped-down version of Raspbian, with a Deno application that downloads and displays the slides. The front end is written with the IBM Carbon System and Next, using Supabase for storage, database, authentication, and edge functions. I should once again thank Wouter de Bruijn for setting up the stripped-down Raspbian, configuring the Raspberry Pi's, and managing the VPNs.

Presently allows you to upload, delete, and replay PowerPoints on all or specific displays with a customized interval, pause/play functionality, and live preview. I'm very proud of what I've created. This project has taught me a lot about managing expenses, project planning, and time management. Once I complete the front end, I hope to start selling Presently as a service to small businesses. It is currently being used for its intended purpose at Optimist International School.