Tonino Jankov, Nov 19

How to Build a WordPress Theme from Scratch: the Basics

This second part on creating a WordPress theme from scratch shows how to create a very basic WordPress theme, add in Bootstrap styles and scripts, separate header and footer output into their respective partials, and leverage the crucial functions.php file.
Angela Phung, Nov 16

Get to Know the Winners of the Alibaba Cloud Competition

As you may have seen, we’ve recently partnered with Alibaba Cloud to find the best tips and tutorials for making the most out of Alibaba Cloud Services.
Design & UX
Daniel Schwarz, Nov 13

Fonts and Colors Used by Facebook, Twitter, Instagram, Google + More

A cheatsheet of the fonts and colors used by Facebook, Twitter, Instagram, Pinterest, Messenger, Snapchat, and YouTube, with links to official brand assets.
Tom Ewer, Nov 13

Developing a WordPress REST API App: Getting Started

This introductory article is part one in a tutorial series taking non-technical users through the building of a WordPress REST API app using React.
Tonino Jankov, Nov 13

How to Build a WordPress Theme from Scratch: First Steps

Tonino introduces WordPress themes, showing how they work, how they’re structured, the PHP architecture behind them, and other relevant information, as the first step in learning how to build a WordPress theme from scratch.
Martin Tumusiime, Nov 12

How to Deploy and Host a Joomla Website on Alibaba Cloud ECS

This guide will walk you through setting up and deploying a Joomla! website on an Alibaba Cloud Elastic Compute Service (ECS) instance with Ubuntu 16.04.
Maria Antonietta Perna, Nov 11

Five Techniques to Lazy Load Images for Website Performance

Maria Antonietta Perna highlights the benefits of lazy loading images on websites and shows five approaches to implement lazy loading for your website.
Natalie Harris-Briggs, Nov 09

6 Ways to Bring Your Development Team Together with Technology

Are you looking for better ways of bringing the team together? Would you benefit from an arsenal of tools that facilitate team working?
Ghulam Qadir, Nov 09

How to Install Cockpit on Ubuntu 18.04

In this tutorial, we will be installing Cockpit on an Alibaba Cloud ECS instance with Ubuntu 18.04.
Derek Wang, Nov 07

Best Practices of Web Application Hosting in Alibaba Cloud

This document intends to provide practical solutions and best practices when it comes to scaling your web application on Alibaba Cloud.
Tonino Jankov, Nov 06

An Introductory Guide to Managing WordPress with WP-CLI

Tonino Jankov introduces WP-CLI, a command-line interface for managing a WordPress site (as opposed to working through the default admin interface), covering its main commands and also introducing some of its third-party packages.
Tonino Jankov, Nov 05

Using the WordPress Settings API to Build a Custom Admin Page

Tonino Jankov introduces the WordPress Settings API, and showing how to create a WordPress administration page to demonstrate the use of this API. In this article, he shows how to wrap this functionality into a plugin, though it can also be a part of a WordPress theme.
Sufyan bin Uzayr, Nov 02

Three Ways to Create Your Own WordPress Theme

Sufyan bin Uzayr provides a bird's-eye view of three basic ways to approach building your own WordPress theme, covering child themes, adapting existing themes, and building a theme from scratch, as well as how to use basic starter themes and theme frameworks to speed up your workflow.
Liptan Biswas, Nov 01

My Best Practices for Deploying a Web Application on Alibaba Cloud

In this article, I want to share the best practices I use when deploying a web application to Alibaba Cloud.
David Banham, Oct 31

Statically Compiled Go on Alibaba Cloud Container Service

A succinct tutorial on statically compiling a Go program, and using Docker to containerize and distribute it.
Ahmed Bouchefra, Oct 30

Building a WordPress Plugin with Vue

Ahmed Bouchefra shows how to create a WordPress plugin that makes use of the Vue.js library, creating a shortcode that can be used to display a Vue component in posts and pages that fetches and displays the latest posts every five seconds.
Nhi Nam Ha, Oct 30

Building a Serverless REST API with Function Compute and MongoDB

We received a lot of great entries in our recent competition to find the best tip for making the most out of Alibaba Cloud services. It was a fun but challenging task for our judges to pick the winners amongst so many helpful and interesting entries. But alas after fiery deliberations and heated debates they've decided that the second prize of the competition goes to Nhi Nam Ha. His winning tip is a part of a series on serverless app architecture on Alibaba Cloud, and it covers several Alibaba products.

This tutorial will show you how to deploy a MongoDB database on Alibaba Cloud and use Function Compute to develop a back-end API system to interact with the database.

Overview of NoSQL and MongoDB

Relational databases have been selected as the primary system to manage data in software development for a long time. Its ACID principals promote the data persistency, transaction integrity and concurrency control. Over the last few years, NoSQL (Not only SQL) has become popular. This model solves the impedance mismatch between the relational data structures (tables, rows, fields) and the in-memory data structures of the application (objects). Most importantly, NoSQL is designed to scale horizontally which makes it an excellent choice for modern web applications.

NoSQL could be categorized into 4 groups:

  • Key-Value
  • Document
  • Column family
  • Graph

MongoDB is the most popular system within the document database group. As defined on mongodb.com,

A record in MongoDB is a document, which is a data structure composed of field and value pairs. MongoDB documents are similar to JSON objects. The values of fields may include other documents, arrays, and arrays of documents.

Alibaba Cloud ApsaraDB for MongoDB

MongoDB databases can be deployed on Alibaba Cloud via its ApsaraDB for MongoDB service. Users can select among 3 pricing schemes:

  • Subscription (Replica Set)
  • PAYG (Pay-As-You-Go) (Replica Set)
  • PAYG (Sharding)

Replication and sharding refers to the data distribution models:

  • Replication copies data across multiple servers. The same piece of data is stored in different places. ApsaraDB for MongoDB uses a 3-server replica set. Replication may help with horizontal scaling of reads.
  • Sharding distributes data across multiple machines so different machine contains different subset of data. This model allows for horizontal scaling of writes.

Create an Instance

In the Alibaba Cloud console, click on Products and you will see ApsaraDB for MongoDB under the ApsaraDB group. Alternatively, you can use the search box to filter the desired service.

Select the pricing scheme, the region, the server specification, and set a password for your database. Alibaba Cloud will tell you how much the service cost you based on what you chose.

More info about the instance parameters is here.

Note: if you are using a free trial account, remember to select a subscription instance. PAYG instances do not include in the trial program.

Set IP Whitelists

To ensure database security Alibaba Cloud automatically block all access to the database. You have to specify IP addresses in the whitelist to gain access to the target instance.


Connection String

After you set your IP whitelist, click on “Database Connection” to see the connection parameters


Use this connection string to connect to the database in your Node.js code.

Function Compute

Function Compute lets you run code without provisioning or managing servers. This service prepares computing resources for you and runs your codes on your behalf elastically and reliably. You only pay for resources actually consumed when running the codes. If your code isn’t executed, you don’t pay.

Function Compute runs your code in response to events. When the event source service triggers an event, the associated function is automatically called to process the event.

From the Alibaba Cloud console, select Function Compute and click on the “+” icon to create a new service


In the newly created service, click on the “+” icon to create a new function. You will go through a multi-step wizard to select options for your function.

For Function Template, select “Empty Function”


In the “Configure Triggers” step, select “HTTP Trigger” and give it a name. Other settings are as the image below


In the “Configure Function Settings” step, set a name for your function and select “nodejs6” as runtime


Click “Next” in the last two steps to finish the wizard and create the fucntion.

Program Your Function

Click on the function you have just created and click on the “Code” tab. This is where you provide your code for the function to run


Use the connection string from your MongoDB server.

Also in this screen you can view the HTTP trigger that will invoke your function. You can also run the trigger to test you function here.



In this tutorial we have learnt about NoSQL database with MongoDB as a popular example. Alibaba Cloud provides its ApsaraDB for MongoDB service to those who want to run MongoDB servers on its cloud. The tutorial then moves to discuss the Function Compute service as a new way to build your application following the emerging Serverless architecture. It shows an example of a Node.js function triggered by an HTTP request to connect to the MongoDB database and perform an “insert” command.

Magyar András, Oct 29

Deploy a Laravel App to Alibaba Cloud Using Docker

In this tutorial, we will deploy a Laravel application using Docker and Alibaba Cloud Container Service.
Nikki Stefanoff, Oct 29

The Importance of Resilience in Business

Mini Latif decided she wanted to run her own business at the age of seven and that nothing was going to stand in her way. Turns out she was right. She speaks of the importance of resilience in business.
Kleber Correia, Oct 26

Build a Single-Page App with Go and Vue

Learn how to build comprehensive single-page apps using Go and Vue.
Ahmed Bouchefra, Oct 26

Creating Custom Endpoints for the WordPress REST API

Ahmed Bouchefra shows how to create your own custom route(s) for WP-API, allowing you to create mobile and web clients for your WordPress website that can also interact with your custom post types, rather than just the built-in WordPress types such as posts and categories.
SitePoint Team, Oct 25

How to Eliminate Your Top 5 Web Design Pains

Designing a new website is not all that easy. The real question is how can web designers eliminate the pain that is associated with building a website?
Sufyan bin Uzayr, Oct 25

A Beginner's Guide to Selling Digital Goods with WordPress

Sufyan bin Uzayr introuces Easy Digital Downloads, a WordPress plugin that makes it easy to accept payment for digital products and provide immediate download links to customers.
Lee Brandt, Oct 24

Build Secure Node Authentication with Passport.js & OpenID Connect

We walk through using an identity provider with the generic passport-openidconnect package to build secure Node authentication and user management.