Slide 1

Slide 1 text

The history of how Screenly OSE became the most popular digital signage project on GitHub

Slide 2

Slide 2 text

@vpetersson Before we begin, let's start with a history lesson

Slide 3

Slide 3 text

@vpetersson WireLoad's history ● 2006: YippieMail ● 2008: YippieMail pivoted into YippieMove ● 2011: Blotter ● 2012: Screenly ● 2018: Screenly turns into Screenly, Inc ● 2019: RIP YippieMove

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

@vpetersson At a glance ● Fully bootrapped (i.e. never took investment) ● Fully distributed since inception (i.e. we were remote before it was cool) ● Over a decade of remote ● Turns out to be helpful for open source projects too

Slide 7

Slide 7 text

@vpetersson In a galaxy country far, far not that far away...

Slide 8

Slide 8 text

@vpetersson Skarmverket AB ● Joint venture / acquisition ● Our first exposure to digital signage ● Small deployment (~10 screens) ● Horrible existing software ● Flash, Windows, RDP ● 30 days from acquisition to go-live and no software

Slide 9

Slide 9 text

@vpetersson Market due diligence ● Two "buckets" of signage solutions ● "Black boxes" and commercial (e.g. Brightsign etc) ● Hobbyist and open source (e.g. Xibo) ● Neither felt like a good fit

Slide 10

Slide 10 text

@vpetersson We can do better... ● Asus EeePC running Linux ● 3G Modem for connectivity ● Software glued together using Bash: ● mplayer ● ffmpeg ● cron ● rsync ● at ● puppet ● Total price per unit: ~$300

Slide 11

Slide 11 text

@vpetersson nerd trivia: `man at(1)` "at and batch read commands from standard input or a specified file which are to be executed at a later time." $ at 11:00 AM next fri warning: commands will be executed using /bin/sh at> /usr/local/bin/myscript.sh at> job 1 at Fri Apr 3 11:00:00 2020 $ atq 1 Fri Apr 3 11:00:00 2020 a root

Slide 12

Slide 12 text

@vpetersson nerd trivia: Debian/Ubuntu preseed ● Enables for automatic installation ● Useful for batch automation [....] ### Package selection tasksel tasksel/first multiselect ubuntu-desktop #tasksel tasksel/first multiselect lamp-server, print-se [...]

Slide 13

Slide 13 text

@vpetersson nerd side-note: cellular modems *suck* ● USB 3G/4G Modems are unreliable ● Required multiple levels of "fallback" ● Sometimes required physical power cycle to recover (i.e. unplug/plug back in) ● Avoid consuming USB modems directly at any cost. ● Use a router. ● Positive note: Required me to refresh my Hayes commands (and minicom)

Slide 14

Slide 14 text

@vpetersson nerd side-note: puppet ● ...just don't

Slide 15

Slide 15 text

@vpetersson Enter the Raspberry Pi

Slide 16

Slide 16 text

@vpetersson A perfect device for digital signage ● $35 price point (plus accessories) ● Low power draw ● Runs Linux ● Supports 1080p video playback ● h264 video support ● What's the catch?

Slide 17

Slide 17 text

@vpetersson Porting our player to the Raspberry Pi ● Turns out it wasn't that difficult ● Required some customization and optimization ● Most software were available

Slide 18

Slide 18 text

@vpetersson

Slide 19

Slide 19 text

@vpetersson

Slide 20

Slide 20 text

@vpetersson We hit it out of the ballpark ● We got a ton of interest ● Drove a lot of traffic ● One of the most popular forum threads on the Raspberry Pi Forum ● Screenly OSE is today the most popular digital signage project on Github ● Within weeks we had our first commercial request

Slide 21

Slide 21 text

@vpetersson

Slide 22

Slide 22 text

@vpetersson Screenly Pro

Slide 23

Slide 23 text

@vpetersson How Screenly Pro came to be ● Screenly OSE was great for one screen, but... ● Users wanted to manage multiple screens from one interface ● Did not want to rely on community support channels ● Wanted a turn-key solution (e.g. automatic updates) ● Were happy to pay for it ● ...Allows us to spend money on OSE

Slide 24

Slide 24 text

@vpetersson Screenly Pro v1 ● Forked Screenly OSE with central management interface ● Device management was very rough ● Scaling was hard ● The technical debt from the early days became increasingly challenging to deal with ● Yet we managed to scale the system to support thousands of screens and build out a team

Slide 25

Slide 25 text

@vpetersson Screenly Pro v2 ● No shared code base with Screenly OSE or Screenly Pro v1 ● Incorporate lessons learned from v1 ● Don't re-invent the wheel - find partners ● Transactional (and automatic) updates ● Goals ● Commercially managed operating system ● "Unified" player with seamless playback ● Transitions between assets ● Locked down and secure ● Full hardware acceleration ● Full compositing / future proof

Slide 26

Slide 26 text

@vpetersson Back to OSE

Slide 27

Slide 27 text

@vpetersson Open Source Community Learnings (1/2) ● Open source communities can be amazing ● Documentation is very important ● Try to lower the barrier for new developers ● Have good test coverage and automated tests ● KISS ● Successful open source projects require financial resources (or lots of your time) ● Take good care of your contributors

Slide 28

Slide 28 text

@vpetersson Open Source Community Learnings (2/2) ● Stick to popular languages and frameworks ● Content marketing is important ● Partners and integrations are important to drive engagement/users ● Don't assume new contributors are familiar with "modern" dev flows

Slide 29

Slide 29 text

@vpetersson Raspberry Pi Learnings ● SD cards *suck* ● Raspbian requires a fair amount of tweaking ● No, your old phone charger is not a sufficient power supply ● Lack of RTC can be painful at times

Slide 30

Slide 30 text

@vpetersson Notes about Raspberry Pi 4 Model B ● Was rushed out (IMHO) ● Still missing some drivers ● Some hardware issues ● We still haven't fully adopted it

Slide 31

Slide 31 text

@vpetersson Questions?