New
Latest Notes & Updates

Short thoughts, work in progress, lessons learned, & the occasional personal update.

I’m at the point where I want to offer businesses stuck on WPBakery a free rebuild.

Nah maybe a discount lol!

But seriously, if you’re going with WordPress, at least use a solid page builder like Bricks (my bias), Beaver, Divi, or Elementor. Launching a site is just a small part of it.

Building new pages and optimizing over time is the long game, and your site builder matters for that.

Posted 2 days ago

Been handling website projects in the home improvement space, especially clients in AU.

Looking at these skylight photos all day got me thinking. What’s it like living in a house with a transparent roof like that? Then I imagined having one here in PH. Sounds great when it rains. Then summer hits šŸ˜‚

jk, these skylights are actually automated and packed with features.

Posted 5 days ago

WPBakery might be the only page builder where the experience is equally rough whether you’re using backend or frontend editing. Divi handles this way better.

Sorry, I keep comparing these two because they both offer both modes, but the quality gap is real. Credit to the Divi team for getting that right!

Posted 5 days ago

Got a chance to attend the HighLevel Manila 2-day event!

I just realized I wasn’t able to record everything. Now I’m trying to piece together all the info I remember and the photos I have.

The insights they shared were pretty overwhelming šŸ˜…

Posted August 10, 2026

I have an urgent page build using WPBakery. Although we have a 1-week deadline, I’m confident I can deliver. But seriously, at least give us a custom CSS field per widget. Even Divi has that!

I’m not really the type to rant about tools I use for work. I get that every builder is built differently. But every time I have a project using this one, it just takes so much longer than it should.

Posted August 8, 2026

You know, one thing that still bugs me is not asking my old clients to leave their review on my Google Business page.

I just collected them through email or other apps. Should’ve known better 😬

Posted August 7, 2026

You know what makes doing this stuff worth it? People who still remember you and refer you even if you haven’t spoken in a long time!

Just got an inquiry! Turns out someone I spoke with 2 years ago referred them. As a small service provider, that kind of thing means a lot šŸ™‚

Image of my recent web design & development inquiry from Australia
Posted August 4, 2026

Late night timelapse of us getting things done. I don’t know why, but I always feel more productive at night.

Also, I just recently got that standing desk, and I can’t appreciate enough how helpful it is when you’re getting older šŸ˜‚

Posted July 31, 2026

Currently redesigning the website of a flooring company based in Erina, NSW.

See those long page designs? It’s still Wednesday but I guess I’m gonna be working even on the weekend 🄲

Image of my workstation redesigning the website of a flooring company based in Erina, NSW.
Posted July 28, 2026

I’m not sure if this is just me, but handling web projects + creating content at the same time is kinda stressful.

Especially when you’re working on it alone. Still grateful for it though.

Just analyzing the new project brief.
Posted July 26, 2026

Finally set up a quick way to share thoughts on my site. Not everything needs to be a full blog post.

New blog about this feature coming soon!

Posted July 23, 2026
Table of contents

A Digital Signage Builder powered by React.

September 19, 2022

10 mins read

Reader Disclosure

Disclosure: I may occasionally include affiliate links in my posts or pages. If you click on one of these links and make a purchase, I may receive a small commission, which helps me keep this website running and create more useful content. However, this does not affect my opinion on the product or service in any way. I only recommend products and services that I truly believe in and use myself.

A custom-built WordPress plugin that helps to create image slideshows and videos for a client’s in-store monitor display.

This article may contain some technical terms which provides an overview of how I constructed this custom functionality. If you have any questions, pleaseĀ let me know.

What is the main problem?

The main reason why the client wants this type of functionality is that they want to cut some operational costs. Digital signage services are quite expensive services. I developed this functionality so that the client can just create unlimited image slideshows and videos that can be displayed in their stores.

How I built the application?

This digital signage builder was divided into two parts; the back-end part, and the front-facing of the digital signage.

The Back-end – Signage Settings:

The back-end part was developed using React JS for the settings’ user interface.

I didn’t use the create-react-app package to develop the Settings UI, because of its default configurations. The reason for this is because when a create-react-app initiates the build process, it will export a lot of files (js, CSS, assets, etc.) which I don’t like for this task. It will just add some more configurations when building the entire plugin.

What I need are just a single script & stylesheet files that contain all the customization and logic of the app. I can just include these files in the settings area when needed. 

To accomplish this goal, I need a custom Webpack setup and configuration. This custom configuration will give me control over where to export my files and use some of the Webpack plugins.

Now let’s talk about the application’s state. As always, I used Redux to manage the state of the app. It was easy to change some settings by controlling the global state.

The Front-end:

This part of the signage builder is responsible for the view only, so I just need a simple React setup. Although create-react-app is a good choice for this, I still didn’t use it. I built a custom setup and this time I used the Parcel bundler instead of Webpack. I want to try Parcel not because it was gaining popularity at that time, but I want to see if it’s much simpler to use than Webpack. So far for this project, the configuration is much less compare to Webpack.

Since the front-end is for view only, I just need it to fetch data and not POSTing something back. I still used the WP REST API to fetch the signage data.

Feature overview:

  • Three media type available: Images, Vimeo videos, Self-hosted Videos
  • WordPress Media Library integration
  • Unlimited signages
  • Add schedules – display different media types according to their schedules.
  • Developed on a WP Plugin environment so it’s easy to share with other stores.

How does the application work?

Using the signage builder is simple. Since this is a WordPress plugin, the user needs to install the Digital Signage Builder plugin first to activate the functionality.

If the plugin is activated successfully, the plugin will add a custom post type to the admin area. The user can add unlimited signages.

If the user has added new signage, it will show the signage settings. The user needs to choose between Images, Vimeo, or Self-hosted Video media type. By default, the Image media type is selected.

The Image media type is completely integrated with the WP Media Library.

The user can add schedules for each media. This will control what media to show on the front-end. The client requested this feature because they are creating signage for a whole week of operation at once. They just need to reload the digital signage in the front-end and the correct media type will be displayed on their monitors.

If all signage settings were configured properly, they can click the Publish or the Update button to save the signage. After saving it, they can go to the signage display by clicking the link at the top after the signage title.

The user will be redirected to the signage display. The media type that will be displayed depends on what media type is selected in the backend.

The signage display contains some basic info about each media type. Toggling fullscreen depends on each media type. For Image, there’s a Toggle Fullscreen button, while the Videos have their toggle fullscreen by default. The Edit Signage button is displayed only when an admin user was logged in.

New Service

Direct Booking Websites for Vacation Rentals

Get a direct booking website built for your vacation rental or resort. Keep more revenue and let repeat guests book with you directly.

Learn More

Related
Articles

Featured image of blog post - Getting Cited & Ranked in Google as a Bricks Developer

Just A Small Win: Getting Ranked & Cited in Google as a Bricks Developer

As a small service provider and a freelancer, I don’t have a big marketing budget.…

Read more
Featured image of WP Booking System Review post

WP Booking System Review: A Lightweight Booking Plugin for Vacation Rentals

A fair breakdown of WP Booking System, what it does well, where it falls short,…

Read more

Went to My First WP Meetup – WordPress Manila

I went to my first WordPress meetup after almost 10 years of using WP. WordPress…

Read more