Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Viktor Petersson

April 01, 2020
Tweet

More Decks by Viktor Petersson

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. View Slide

  5. View Slide

  6. @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

    View Slide

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

    View Slide

  8. @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

    View Slide

  9. @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

    View Slide

  10. @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

    View Slide

  11. @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

    View Slide

  12. @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
    [...]

    View Slide

  13. @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)

    View Slide

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

    View Slide

  15. @vpetersson
    Enter the Raspberry Pi

    View Slide

  16. @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?

    View Slide

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

    View Slide

  18. @vpetersson

    View Slide

  19. @vpetersson

    View Slide

  20. @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

    View Slide

  21. @vpetersson

    View Slide

  22. @vpetersson
    Screenly Pro

    View Slide

  23. @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

    View Slide

  24. @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

    View Slide

  25. @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

    View Slide

  26. @vpetersson
    Back to OSE

    View Slide

  27. @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

    View Slide

  28. @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

    View Slide

  29. @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

    View Slide

  30. @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

    View Slide

  31. @vpetersson
    Questions?

    View Slide