“China is a blackhole!” a man disclaimed in a meet up after I said that I was going to China to do software development.

He continued his story about how his idea was stolen and his company went bankrupt after the copy cats took the market.

I was scared, but I came to China anyways.

After almost a year, frankly, it’s not that scary.

It’s different, but it’s not vicious.

Here are a few tips for building software in China or for Chinese audience.

Play by the rules

To play within the Great Firewall, you need an ICP license, Internet Content Provider to put any website on the public internet.

Failure to do so, your website could be blocked. Yes, it wouldn’t even load.

Say goodbye to your familiar APIs

Google, Facebook, Twitter, or even the platform here, Medium, all provide some kind of API to speed up our development process.

We have grown to become attached to their services. Back then, when I needed to embed a map in a website. It’s a no-brainer: Google map all the way.

Now I have to compare and evaluate between Baidu map, Amap, QQ map, Mapbox, …

Same with cloud provider. AWS has a China version, but some features are not provided.

AWS related links have to constantly worry about if WeChat will block it. Even if you just want a demo link with S3 bucket, WeChat can just say, “Nope, this is not legal” Then you’re back to step number 1.

Hello Tencent WeChat

If you do any consumer facing software development, there’s no escape from WeChat. With over 1 billion monthly active user, WeChat dominates the mobile internet space in China.

The most common scenario is that the user wants to share the app(mobile or website) to WeChat.

When I started, I thought, “Oh, I just add some meta tags then WeChat just pick it up, right?”

Nope, you need WeChat’s JSSDK to have a nice card show up in the message thread.

One thing to keep in mind is that WeChat for developer is not as simple as “get an account and play”.

You will have to find the right account. Official, Subscription, Service or Mini-program. There are sandbox accounts for development purposes, but WeChat payment can’t be tested with sandbox accounts.

Most of the time, you will find yourself waiting for approval from Tencent to have some feature activated, so I recommend getting your Chinese company information readily available to have the process go smoother.

Not everything is on Stack Overflow

As developer, we often copy the error message and paste it straight into Google, then Mr. Google presents a Stack Overflow solution.

When you do the same thing when you run into an error in WeChat SDK, you will often come up empty. (That’s why I am writing on Medium to provide more transparent information)

Meanwhile, you could use Baidu or SegmentFault, to find your answers.

Most people don’t know what they are talking about

Everyone can read document and WeChat related articles, but very few people are willing to themselves through the trial and error process to test what’s possible.

That’s why we have bosses who are just chasing the shiny object. This year has been WeChat Mini-program, WeChat’s app within an app.

Everyone wants to do something with mini-program, because, well, everyone is doing it.

In reality, they can’t tell the difference between a web-app and WeChat Mini-program.

As developers, we need to help them make better technology decision by equipping the necessary knowledge.

Mobile first…Just do mobile version

89% of the population uses mobile phone.

My first website in China, we started with desktop version. When we looked at the analytics, only 5 people visited per day.

When we built the mobile version, the number went up 100 times.

If you build anything public facing, make sure it’s easy to access on mobile phone.

Check if things still work with or without VPN

VPN is a common staple in China. It’s how Chinese people stay connected with the outside world.

The Great Firewall goes both ways. It can deny access to foreign website or throttle the connection speed to the point where you question the existence of life.

Server hosted in China will be slow in the U.S. Server hosted in the U.S. will be slow in China. Picking the correct CDN will be crucial for a globally accessible website.

Know your coordinates

GPS coordinates are distorted in China.

Here are the coordinate systems:

WGS84 — What Google Map uses

GCJ02 — What Tencent Map/Amap uses

BD09 — What Baidu Map uses

Library that help you with coordinate conversion:

Website for coordinate testing:

http://www.gpsspg.com/maps.htm

Conclusion

It has been fun doing software development in China, because it’s like going into an unchartered region and exploring.

If you’re like me who is always learning, click here to get my condensed list of lessons from learning how to code and Japanese.