Merry Christmas Eve! I hope Santa finds your stocking and fills it with AWS compute credits. I'm in Ghana visiting my dad's hotel! About this trip: I haven't seen my father in 20+ years and my wife encouraged me to connect to the half of myself that's missing. This post is about that but it's also about Ghana's position in the global cloud ecosystem. I got a chance to speak with my Dad and my Stepmom about their life here and of course I wanted to know more about the technology and how they do business. My father owns a hotel that he constructed himself between about 2001 and 2007. We are staying at their hotel for two weeks to reconnect and see the country. I'm half-Ewe (google it) but I'm very sheltered and this is my first trip to a developing country and my homeland. My wife is an experienced international traveller and between her and my Dad they made the majority of the arrangements for our stay. The country and this visit encouraged me to reflect on aspects of web development that people in the West (me) take for granted.
Quick facts about Ghana
Ghana is a presidential parliamentary republic located in West Africa. The population is approximately 32 million as of 2022. The capital and largest city is Accra. Ghana is situated on the Gulf of Guinea between Côte d'Ivoire in the west, Benin in the east, and Burkina Faso in the north. Ghana's largest export is cocoa, and it supplies 25% of the world's cocoa, second only to Côte d'Ivoire which produces 40% of the world's cocoa (still trying to find some chocolate, I will update you). Ghanaians enjoy a tropical climate and mostly humid conditions in the region surrounding Accra, the capital.
Developers should know these key facts about which services are available:
- Cloudflare
- Dedicated region, at publication traffic is being rerouted
- Amazon Web Services
- Nearest region is Cape Town, South Africa
- Nearest edge location is Nairobi, Kenya
- Microsoft Azure and Google Cloud
- Nearest region is South Africa North, Johannesburg
- Alibaba Cloud
- Find a different continent
Addressing customer needs
If you want to do cloud development prepare for latency. Real numbers, we did Speedtest and the latency is something like 28ms in the city and 100+ ms in the northern region. Caveat emptor, I tested both on mobile. Ghana hosts five datacenters which are centered around Accra. These datacenters are owned by the major telcos and are not vendor agnostic. Despite these constraints I found high speed internet access is readily available in Accra. Often, we had 4G LTE service in areas you would not expect to have service in the United States like mountain tops and largely deserted regions of paved road. It seemed like most people we saw in Accra have cell phones, usually they have imported Chinese smartphones that run some version of Android. The only place I saw Nokia dumbphones was in the northern part of the country. Our safari guides use them to communicate around Mole National Park. The park is extremely remote but I actually had 3G coverage the entire time although communication is spotty so I think this is maintained via satellite. It's comforting to know that your phone works when travelling around the country. As an American it's frustrating to visit Europe and find that your phone is either useless or exponentially more expensive to operate.
I'm talking to my Stepmom about a new project to improve their hotel's website. She manages the business full-time and I pointed out opportunities to improve the site and attract more customers. My limited observations in Ghana demonstrate how important mobile-first design is for developing countries. Assume that most customers search for your product on their phone. Assume they have internet, but speeds will range from fast enough to almost unusable. Without the advantage of a CDN, it's essential that apps are interactive quickly and use the minimum payload. Don't drop your CDN, but don't use it as an excuse to build a massive app that only people with 100+ Mbps landlines use. I'd optimize for payload size and Time-to-Interactive if you want to succeed.
Second, internationalization is a requirement. Ghana uses English as its administrative language, but the majority of people speak English as a foreign language and one of five dominant tribal languages as their vernacular (Akan family of languages, Dangme, Ewe, Ga, and Guan) although there are numerous languages I omitted for brevity. People we spoke with in English usually defaulted to their native language with coworkers and friends. The customer should feel comfortable navigating your site. Make it easy for them to understand why they should do business with you. I haven't done any work with internationalization but as I provide design and development advice for the hotel website, I plan to learn more about the subject and how to apply it to their stack. I have also been 0 for all on any idioms and American expressions. Tell your copy editors this is no joke and life's a beach but time flies when you're having fun.
Payment systems
TL;DR - Figure out how to accept cash even if you also accept online payments.
How do you get paid? Stripe is out. Paypal is out. Square is out. Systems that I definitely took for granted simply aren't available. Cash is the preferred transaction method, and please have exact change. ("No I do not have change for 50 Cedi do you have anything smaller? No? That's a you problem not a me problem"). I almost paid cash for two plane tickets but the credit card went through at the airport #AmazonRewardsVisa. The exchange rate between Ghanaian Cedi (GHS) and the US Dollar is volatile. When we arrived it was 8.33 GHS to 1 USD, and a week later it is 9.22 GHS to 1 USD. In November of this year it peaked at a rate of 14.75 GHS to 1 USD, so over the course of a month you could gain or lose half the value of any foreign currency. The main businesses I observed were dry goods like over-the-counter pharmaceuticals, SIM cards, clothing, and auto maintenance supplies. The other popular small businesses are either unmixed cement, cement and clay bricks, or agro-chemicals. 41% of the country lives in rural areas. So figure out how to accept cash since the customer will be walking up to the store and leaving with a bag full of something. Or a dozen bags. Or one HGV of bags. But in person, with cash.
If you operate a business in Ghana and serve locals, you have options like MoMo (Mobile Money), operated by WorldRemit. This is the most popular payment system in Ghana according to their research. This is a phone-based mobile wallet that your local bank may opt-in to. Then you can link your account to your phone like you would link Zelle (if you live in the US, how many places does Zelle operate?). Incidentally,, members of the diaspora can use it to send money to friends and relatives. You can also register your business for free with GhQR (Ghana Quick Response) and accept payments via QR code. GhQR is powered by Hubtel and GhPass which are assocated with the local banking system. The fee structure seems reasonable to me however I don't live here! It's 0.05 Cedi or 1% up to 1,000 Cedi, then 10 Cedi per transaction over 1,000. In Ghana, people who use credit cards are responsible for paying merchant transaction fees, which discourages their use (I believe this is separate from GhQR you're responsible for your own research). Customers don't like to see a fee on top of their credit card purchase, even if they are paying off 100% of the balance. If you're a retail business, figure out how to take cash and just be happy if someone pays with their phone.
For online businesses, I haven't gotten a clear answer about how to accept payments. There are a few services that are based in other countries which are supported in Ghana, but for eCommerce I don't have any answers. I hope I can get more information to share because it would be nice to know what alternatives are available for business owners.
Other thoughts
Ghana is a wonderful country for a vacation, but I'm not sure I could live here. There are structural limitations here that make it hard to get things done the way they work in the United States. I'm grateful for everyone we met on the trip who helped us through, and for my father for letting us stay for such a long period. I hope to return soon and share more insights on how to build apps successfully.