Merryking

E-commerce site and operations automation

Built an e-commerce site that links inquiries to Google Ads clicks, plus scripts to import, export, and bulk-edit Alibaba.com products and improve product images.

Period
2025 — Present
Role
Solo developer
Stack
Next.jsTailwind CSSNode.jsAliyun/OSSCDNDockerFeishu

Key numbers

Background

Merryking makes power adapters and chargers, mainly for overseas customers. Its website ran on a SaaS site builder, which controlled the content and data. Routine work was manual: forwarding inquiries, answering repeated questions from factory job applicants, and migrating over a thousand Alibaba.com products.

What I did

  • Website: Rewrote the website in Next.js. Specs and details for 158 products were extracted from the old site and PDF manuals. Images are stored on Alibaba Cloud OSS, served worldwide through a CDN. GitHub Actions builds the Docker image. The server pulls it, and Caddy acts as the reverse proxy and issues certificates automatically.
  • Operations dashboard: The dashboard shows inquiries and contact-link clicks. The team can see each lead’s ad parameters and IP location, and a Feishu bot sends new inquiries to a group chat.
  • Alibaba.com toolchain: Tampermonkey and local Node.js scripts exported 1301 products and 31713 images. They also generated Excel listing templates for direct import, with titles, specs, prices, and selling points filled in bulk. An OpenAI image generation model restyled 720 main images.

Technical details

Google Ads conversions and attribution: Google Ads counted contact-link clicks, such as clicks on the email address, as primary conversions. Bidding therefore optimized for contact intent rather than actual inquiries. I planned a workflow to link ad clicks to inquiries, let sales staff qualify them, and send qualified inquiries back to Google Ads to guide bidding.

  1. 01Ad visitStore the ad click ID and UTM parameters
  2. 02ContactSubmit a form or email with a contact code
  3. 03Log inquiryMatch it to the ad source by contact code
  4. 04QualifySales staff assess the inquiry
  5. 05Send to Google AdsUpload qualified inquiries through Data Manager
Google Ads conversion workflow

On-demand image optimization: A custom loader for Next.js <Image> uses OSS parameters to resize images and convert them to WebP. The CDN caches each size by its parameters. The Core Web Vitals performance score is 98.