AdKloud: commercial digital billboard
AdKloud was a commercial SaaS digital signage platform for small businesses. Store owners could create and manage animated ads from a mobile web app and push them live to an in-store display, powered by custom-configured single-board computers running CSS3 3D animations.
Story
AdKloud grew out of an earlier digital signage kiosk I had built for a mosque in 2013, a proof of concept that showed clear potential for small businesses. By 2014 I had reimagined it as a commercial SaaS product: a personalized digital billboard platform that let retail stores and restaurants design animated ads on their phones and display them live in-store, with no dedicated hardware expertise required.
The hardware was the hardest part. The ad experience was built on CSS3 3D animations, which are lightweight for a desktop browser but demanding for the underpowered GPUs inside affordable single-board computers. Raspberry Pi 2 and 3 could not keep up. I spent months testing nearly every SBC available at the time including the CX-919, Amlogic S802, T-R42, and R89, before finding two that cleared the bar. The Hardkernel ODROID C1 ran Linux and shipped with a Mali GPU that handled the animation workload without jitter. The OEM Q8 RK3288 ran Android and used an RK3288 chip with a Mali-T764. Both shipped to clients with custom bootloaders and AdKloud branding.
On the software side, I built the full SaaS stack on Laravel covering multi-tenant account management, media storage, and display scheduling. The Cordova mobile app ran on both iOS and Android and gave business owners an in-browser ad editor where they could compose animated layouts, preview them, and push updates live. The ODROID C1 Linux deployment required significant DevOps work: kiosk-mode auto-start, display configuration, and a remote update pipeline, all maintained solo.
AdKloud launched with two paying customers in New York City. It was a complete product across hardware, firmware, SaaS backend, and mobile app, built by one person. Life and full-time employment eventually took priority over scaling the business, but AdKloud remains one of my broadest solo builds, touching embedded Linux, cloud SaaS, and mobile development in one system.
Who created and perfected all things, and Who destined and guided them.
Impacts
- Deployed to two paying clients in New York City, a pharmacy and a restaurant, running live in-store as a complete digital signage product
- Shipped two hardware configurations, ODROID C1 on Linux and OEM Q8 RK3288 on Android, both with custom bootloaders and branding
- Built and launched a multi-tenant Laravel SaaS platform with a Cordova mobile ad editor, end-to-end as a solo builder
Challenges & Solutions
Challenges
- CSS3 3D animations stuttered on Raspberry Pi 2 and 3, whose Broadcom VideoCore IV GPU could not sustain smooth frame rates under the ad workload
- Business owners needed to compose and update animated ads from their phones without any design experience
- Running a stable, unattended kiosk environment on Linux-based SBCs with no commercial OS support
Solutions
- Benchmarked nearly every available SBC on the market including the CX-919, Amlogic S802, T-R42, and R89, before settling on the Hardkernel ODROID C1 for Linux deployments and the OEM Q8 RK3288 for Android, both of which had Mali GPUs capable of handling the animation load
- Built a mobile web app with Apache Cordova targeting both iOS and Android, with an in-browser editor for composing, previewing, and pushing CSS3 animated layouts directly to the in-store display
- Handled all embedded Linux DevOps from scratch including custom bootloader configuration, auto-start on power-on, display output tuning, and a remote update pipeline
