Keystone.js: Production Ready?

By | CMS, Software Architecture, Technology | No Comments

People equate it as the WordPress for the Node.js community. We have recently used it on a project. I’ve played with it previous to this project, and I thought that it was pretty cool.

Playing with it, and actually using it, are two different things.

When I was just setting up a hypothetical website, everything worked out. I was able to quickly scaffold up the site, set up content objects and a contact form, and I thought that the utilization of Cloudinary as image upload / CDN was brilliant.

BUT, as we started to build a full website from it, we started to see the gaps.

First of all, the web admin side is not so easily extensible. It’s hard to integrate anything into the content management system except for the content objects that you have set up as a model. Second, most CMS has a concept of one-off content versus iterative content objects (for example, you might have a content admin screen for the home page, which may contain different fields from other pages, but your web admin for available job openings might allow you to add multiple openings, each having the same set of fields). There is no such concept in the Keystone.js admin. All objects are iterative. So, if you want to create a one-off admin, you basically create an iterative object and just tell the user to only create one.

Second, some of the object models are still under-developed. For example there is a field type for Cloudinary objects, which is the de-facto location for all images, videos, and documents uploaded. But, the Cloudinary object assumes that every file that is uploaded is an image. There is no functionality to retrieve a PDF or video that is uploaded to Cloudinary, or retrieve any metadata (file size, type, etc) for any file other than images.

What we found out was that we ended up spending just as much time, writing work-arounds as we spent on developing the page templates.

Keystone.js has the potential to become a real contender. For now, it’s still in the early stages.

Unless you are looking to implement a very simple brochure site, I would not recommend utilizing Keystone.js. For now, it’s really for early adopters who have the technology expertise and resources to develop work-arounds that are part of many developed CMSes.

Accelerating Your Site for the Chinese Audience

By | Software Architecture, Technology | No Comments

I get asked by companies a lot about how to make “our site run faster in China.” It’s a difficult question to answer.

First, there is the issue of distance: Internet data travels fast, but it’s not instantaneous. Data can travel at almost 125,000 miles per second ( ), which means the signal from the origin of your website to anywhere in China would take 200 milliseconds to 300 milliseconds ( Since Internet communications are two-way (request / response), the total latency is 1/2 second to almost 1 second for the round trip. And, that’s just before you start to download the web page and all associated images and supporting assets. The distance between the origin of your website and the visitor’s computer may be even longer, depending on how it is routed at each intersection point (just as how Google Maps may have different routes to the same destination).

The second challenge with accelerating your website in China is the Great Firewall. In short, China has a system in place to monitor and regulate speech and activities that are considered criminal. This system is the great bottleneck for websites originating outside of China. While one method to address this barrier is to utilize CDN (Content Distribution Network) with POP (Point of Presence) inside China, it’s only effective for static content like images, video, and presentation-layer assets (CSS, JavaScript, HTML, etc).

Both of these challenges culminate in a drastic decrease in speed. In my experience with viewing western websites in China is around a three to four times slower. In a world where every second counts, this can be a contributing factor in losing out to the competition.

So, how can you make your site run faster in China? The surest way is to put your infrastructure inside China. This isn’t as easy as purchasing web hosting from a Chinese company and slapping your website on it; there are government requirements and licenses that must be obtained in order for Chinese hosting companies to host your site. One such license is called ICP (Internet Content Provider) Number. Without this number, no hosting company can sell its service to you.

Remember, ALL infrastructure must be inside China for the site to load quickly. If your DNS (Domain Name System) is managed by GoDaddy, or some other service, and the servers are outside China, it will slow down your site, even if the origin of your website is in China.

Oh, and the idea of building one site to serve the whole world? It just became harder. It can still be done, but it takes a bit of planning. Software architecture, from back end to front (that jQuery library hosted by Google? blocked), and network (CDN, DNS, geo-fencing) architecture all need to be thought out accordingly.

Bottom line: If you want your site to load faster for the visitors in China, there is no silver bullet. You need to plan and architect your site accordingly. Just utilizing a CDN or multicast DNS may not be good enough. You will need to consider how and where to serve the site out of, and your best option may be a custom, locally hosted website for China.

Why Your Brand Should Leverage WeChat Authentication for Mobile Apps

By | Commerce, Mobile Apps | No Comments

Earlier this month marked the release of Mary Meeker’s 2016 Internet Trends Report ( It’s an insightful read for anyone in the marketing and technology space.

One of the more surprising insights surrounds the rise of messaging platforms and their evolution towards business-focused uses. This rings especially true for WeChat, the mobile social network application in China.

As of May, WeChat has reached 762 million monthly active users (only 70 million are outside of China). In China, it’s used daily for messaging, broadcast messages, location sharing, in-store payments, shopping, sending money to friends, and even transportation. There’s even an enterprise version that let’s employees keep track of vacation days.

WeChat’s parent company, Tencent, has it’s own online bank, which promises higher returns than a traditional savings account. And yes, banking services can be accessed via WeChat. The messaging platform has already become what Facebook Payments, Apple Wallet and Google Pay aspire to be—with a sizable user base.

Major US brands with an eye towards the East already have a WeChat presence and are looking for new ways to tap into that audience. Just as users can sign up for your product or service with a Facebook or Twitter account, WeChat authentication allows for the same. The primary benefit would be to allow a Chinese consumer to access your product or service with their existing WeChat credentials.

Urban Pixels has experience implementing WeChat authentication for clients. If your service or brand would like to do the same, please don’t hesitate to reach out at

LIFX Firmware Force Update

By | Food for thought, IoT, Technology | No Comments

I love my LIFX. I got an Amazon Echo a few months ago, and I explored all the options under “Smart Home”.

After some research, I decided on LIFX WiFi Bulb (I chose the LIFX 1000 ).

Although it is the most expensive option of the bunch, I feel that having each bulb be its own controller eliminates the issue of “single point of failure”. With Philips Hue and GE Link, you need to purchase a hub to connect all the light. The hub becomes your single point of failure.

I initially bought two LIFX bulbs. Within a week, I realized that I needed this in some key places: living room, kitchen, bedroom, and my office. I ended up buying six light altogether, and got them connected to my Echo.

Yesterday, I realized just how important the LIFX bulbs were in my day-to-day life.

All of a sudden, all the bulbs went offline. Alexa was not able to find them, and I was not able to connect to any of the bulbs via the iOS app. I scoured the internet for any fixes that might be available, and tried everything: I did the LIFX reset, I reset my Airport Extreme, I turned off all the power in my apartment… nothing.

I didn’t realize how useful voice-activation for lights have been in my household.

So What happened?!?

The most logical explanation was that all the lights crashed during an automated firmware upgrade. I was not able to connect to my bulbs, even after a LIFX reset. After a few frustrating hours, I came across the LIFX desktop firmware updater. I decided to give it a try.

I downloaded it, and launched the app. It searched my WiFi for any LIFX devices, and it said it wasn’t able to find any. I was disappointed. It was my last ditch effort.

I came up with another idea: What if I did a LIFX reset, and then connect my laptop to the LIFX WiFi, and then forced the firmware update via the desktop app?

And… That WORKED!!!

I am a happy camper again.



Download the LIFX desktop firmware updater

Reset the LIFX Bulb by using this:

Find the WiFi hotspot of the reset bulb from your laptop.

Force update the firmware via the firmware updater desktop app.

12 iOS Apps You’re Not Using (But Should Be)

By | Press | No Comments

There are a wealth of online video streaming services out there, each with its own library of movies, television shows, documentaries and other films. Can I Stream It helps you find out which particular services and websites allow you to rent, buy or otherwise stream a particular film. The app covers a good array of major streaming media providers, such as iTunes, Hulu, Netflix, Crackle and Xfinity among others, with the app continuously adding to its list of supported services.

Read more »