没有不值得去解决的问题,也没有不值得去学习的技术!

Promoting A Tour of Go Multilingual Project Across Go Weekly, Reddit, DEV, and Go Forum

Figure 5: Comment successfully posted

作者:

Recently, I have been pushing forward my A Tour of Go multilingual translation project.

Project URL:

https://github.com/shuijingwan/go-tour-i18n

Currently, 11 language versions are officially live:

  • Brazilian Portuguese
  • Dutch
  • French
  • German
  • Italian
  • Japanese
  • Korean
  • Simplified Chinese
  • Spanish
  • Swedish
  • Turkish

Some of these language versions have also appeared on the official A Tour of Go localization page:

https://go.dev/tour/welcome/2

Previously, I mainly relied on a few channels for promotion:

  • Links provided on the official go.dev page;
  • Search engines like Google and Bing;
  • GitHub;
  • My own tech blog.

But as the number of languages grew, I started to realize an issue:

If I just launch the sites and wait for search engines to slowly index them, the growth rate might be very slow.

Also, based on the data I saw in the search engine consoles, many of the new language sites had very few backlinks.

So this time, I decided to try a more systematic approach for the first time:

Besides go.dev, search engines, and GitHub, where else can I actively let Go developers know about this project?

I ended up actually trying:

  • Go Weekly
  • Golang News
  • Reddit r/golang
  • DEV Community
  • Go Forum

The process was much more interesting than I originally imagined.


1. Submitting to Go Weekly First

The first thing I tried was Go Weekly.

Go Weekly is an English newsletter specifically for Go developers, meaning the readers themselves are a highly targeted group of Go users.

For me, this kind of channel is more valuable than dropping links all over a general tech community.

In the end, instead of submitting for one specific language site, I promoted the entire:

go-tour-i18n

project.

The email subject line I used was:

Go Weekly link suggestion: A Tour of Go in 11 languages

In the body, I highlighted a few key points:

  • This is an unofficial, community-maintained multilingual A Tour of Go project;
  • It currently has 11 production languages;
  • The project continuously syncs with the official Go upstream;
  • It has a complete workflow for translation, validation, language review, and production publishing;
  • Some language versions have already appeared on the official A Tour of Go localization page.

I only kept two core links in the email:

  • The GitHub project
  • The official go.dev localization page

I didn’t cram all 11 sites into it.

Figure 1: Sending a project recommendation email to the Go Weekly editorial team. The mail server shows it was successfully delivered to the recipient's server.
Figure 1: Sending a project recommendation email to the Go Weekly editorial team. The mail server shows it was successfully delivered to the recipient’s server.

This time, I specifically used my own enterprise email:

admin@shuijingwanwq.com

instead of Gmail.

The reason is simple: I am reaching out in my capacity as the project maintainer, and using an email address matching my website domain makes it easier to establish identity association.

Of course, the prerequisite here is that the enterprise email itself delivers normally.

After sending it, all I can do is wait and see if the editors pick it up.

Even if this kind of submission is eventually included, it doesn’t necessarily mean I’ll receive a separate reply.


2. Golang News: Registered and Found the Community Is No Longer Very Active

The second thing I tried was Golang News.

This is a site specifically for aggregating Go news, projects, and articles.

Based on its positioning, it seemed perfectly suited for this project.

I registered an account first.

But right after I finished registering, as soon as I opened the homepage, something felt a bit off.

Figure 2: 8 users online
Figure 2: 8 users online

The most recent content on the homepage had been published days, dozens of days, or even over a hundred days ago.

Compared to communities like Reddit and DEV, the activity level was clearly much lower.

However, since I had already registered the account, I went ahead and tried to submit a post anyway.

At first, I could even access the Submit Story page normally, so I thought for a moment that new accounts could submit directly.

But it was only after I actually clicked submit that the server gave the final restriction.

Figure 3: The page prompts: You need to be registered and have more than 2 points to submit stories.
Figure 3: The page prompts: You need to be registered and have more than 2 points to submit stories.

In other words, you can’t post immediately after registering.

And what it says here is:

more than 2 points

You need at least 3 points.

My new account only had:

1 point

Theoretically, I could continue participating in community discussions to slowly build up my points until I could submit a post.

But considering the community activity level I saw earlier, I ultimately decided:

Not to spend time specifically for these 2 points for now.

I’ll keep the account.

If I naturally earn enough points later, I can just submit the project then.

This was also a pretty important judgment call during this promotion process:

Not all “Go-specific communities” are worth investing the same amount of time in.

The channels themselves also need to be evaluated for return on investment.


3. Reddit: Choosing Small Projects Instead of Posting a Direct Ad

Next, I moved on to Reddit’s:

r/golang

Compared to Golang News, the community here is clearly much more active.

But Reddit has another issue:

If a new account registers and immediately creates a post solely to promote its own project, it easily looks like an ad.

Fortunately, r/golang has a very suitable recurring post:

Small Projects

This is a weekly thread where developers share their Go projects, and the posting standards are much more lenient than the main subreddit.

Figure 4: This entry point is perfect for go-tour-i18n.
Figure 4: This entry point is perfect for go-tour-i18n.

So instead of creating a standalone thread, I posted a comment under Small Projects:

go-tour-i18n — A Tour of Go in 11 languages

The content briefly introduced:

  • That I am the project maintainer;
  • That there are currently 11 officially live language versions;
  • That the project continuously syncs with the official Go upstream;
  • That there is a workflow for translation, validation, language review, syncing, and production publishing;
  • That some translations have also appeared on the official Tour localization page.

I still only included two links:

  • GitHub
  • go.dev
Figure 5: Comment successfully posted
Figure 5: Comment successfully posted

After the comment was successfully posted, I didn’t immediately go and create a second standalone thread in r/golang.

I felt this was more natural.

First, integrate into the community normally, have genuine interactions, and then decide later if it’s necessary to write a standalone post with more discussion value.

For example, later on I could totally write:

I’m maintaining A Tour of Go in 20 languages — lessons learned from keeping translations in sync with upstream

This kind of post has technical discussion value in itself, rather than just being:

Please visit my website.

Encountered a Reddit Bug Along the Way

I originally planned to complete my profile as well.

For example:

  • Upload my avatar;
  • Set an English bio;
  • Let people know I’m the project maintainer when they click into my account.

As it turned out, Reddit’s profile saving feature kept throwing errors.

I could select an avatar, but saving failed.

Later, saving the bio failed too.

After fiddling with it a few times, I decided to just give up.

This matter had little to do with the promotion itself, and there was no need to spend too much time on an avatar.


4. DEV Community: Upgrading from “Posting Links” to “Writing a Genuinely Substantial Article”

The next step was DEV Community:

https://dev.to

This is the channel I felt had the highest long-term value among this round of attempts.

Because DEV is not a simple link aggregation site.

The more suitable approach here is:

Write an article that has actual content, experience, and search value, and then let the project naturally become part of the article.

I registered an account first and set the username to:

shuijingwan

This way, it can stay consistent with GitHub.

For my profile, instead of just introducing the Go Tour project, I wrote it from my personal direction:

Independent developer and technical writer. Building open-source projects, writing about software, infrastructure, and AI, and documenting what I learn along the way.

This way, even if I write about other topics in the future, I won’t need to readjust my identity positioning.


5. Making a Normal New Member Introduction in the Welcome Thread First

After registering on DEV, there is a Signup Checklist.

One of the tasks is:

Say hi in the Welcome thread

I didn’t skip it.

Instead, I first made a very simple self-introduction in the Welcome Thread:

Hi! I’m Shiqiang Wang, an independent developer and technical writer. I work on open-source projects and write about software, infrastructure, AI, and Go. I’m currently maintaining a multilingual A Tour of Go project as well. Looking forward to learning from the community and sharing some of what I build along the way.

I didn’t include a GitHub link.

I didn’t list the 11 sites either.

The goal was simply:

To show up as a normal community member first, rather than starting to post ads right after creating the account.

Figure 6: First making a very simple self-introduction in the Welcome Thread
Figure 6: First making a very simple self-introduction in the Welcome Thread

Although this step is small, I felt it was quite necessary.

Community promotion and search engine submission are not the same thing.

When facing a community of real people, identity and interaction style still matter a lot.


6. First DEV Article: How I Maintain A Tour of Go in 11 Languages

After completing the Welcome Thread, I started preparing my first DEV article.

The final title was:

How I Maintain A Tour of Go in 11 Languages

Figure 7: After completing the Welcome Thread, I started preparing my first DEV article
Figure 7: After completing the Welcome Thread, I started preparing my first DEV article

I didn’t write the article as:

My project has 11 websites, please visit them.

Instead, I focused the content on:

After maintaining 11 language versions, what did I find to be the truly hard part of a multilingual technical tutorial?

The article mainly discussed:

  • TranslationUnit;
  • Independent glossary for each locale;
  • Why translations can’t be arbitrarily split into very small text fragments;
  • Why automatic validation doesn’t equal language quality;
  • Why validator passed doesn’t mean translation finished;
  • AI can speed up translation, but can’t replace language review;
  • How to track the official Go upstream;
  • stale detection;
  • locale surface like UI, metadata, SEO, etc.;
  • production publishing;
  • Why the project is still explicitly marked as unofficial.

The current formal TranslationUnit workflow is roughly:

Plaintext
glossary preparation
→ translation
→ automatic validation
→ Candidate Snapshot
→ language quality review
→ machine finalization
→ promotion
→ deployment

Here, I specifically emphasized one thing:

Validation is not language quality.

The job of machine validation is to protect:

  • code;
  • Go identifiers;
  • URLs;
  • link targets;
  • directives;
  • protected tokens;
  • preformatted content;
  • machine semantics.

But even if a sentence passes all these checks, it can still be:

  • stiff;
  • unnatural;
  • slightly off in meaning;
  • technically phrased in a way that doesn’t match local developer habits.

Therefore, language quality must be reviewed independently.

This is also a very important principle in my entire multilingual translation workflow now.

The article has been officially published:

https://dev.to/shuijingwan/how-i-maintain-a-tour-of-go-in-11-languages-ahl

The tags used for this article were project-related ones like Go, Open Source, i18n, and Show DEV.

At the end of the article, I still only kept:

  • GitHub
  • go.dev localization page

I didn’t deliberately pile in 11 subdomains just for the sake of “number of backlinks.”


7. More Backlinks Isn’t Always Better

During this promotion process, I also rethought the concept of “backlinks.”

Initially, I did consider:

Since many language sites show almost no backlinks in the search engine consoles, should I list all 11 sites every time I make a post?

Later, I abandoned this approach.

Because from an SEO perspective:

A single page linking to 11 sites doesn’t equal gaining 11 independent, high-quality referring domains.

The source is still the same website.

And from the perspective of a real human community, suddenly dumping a row of URLs easily looks like spam.

So now I lean more towards:

Promoting the entire go-tour-i18n project first.

Then, in the future, I can target specific languages and find the local developer communities for those respective languages.

For example:

  • Japanese version → Japanese developer communities
  • Brazilian Portuguese → Brazilian developer communities
  • German version → German tech communities
  • French version → French developer communities
  • Spanish version → Spanish-speaking communities
  • Korean version → Korean developer communities

If a Japanese developer community naturally links to:

ja-go-dev...

this kind of link is much more natural—both from a real user perspective and an SEO perspective—than stuffing 11 URLs into an English page all at once.


8. Go Forum: Adding Another Go Niche Community Entry Point

After finishing DEV, I went to Go Forum.

This forum is also specifically for Go developers.

I posted the thread in a category suited for project releases, keeping the title very direct:

go-tour-i18n: A Tour of Go in 11 languages

The content mainly introduced:

  • What the project is;
  • Why I built it;
  • How many languages it has now;
  • How the project is maintained;
  • GitHub;
  • go.dev;
  • The detailed article on DEV.

However, because it was a new account, the first post wasn’t immediately made public.

Figure 8: The post has been submitted successfully, but requires moderator approval
Figure 8: The post has been submitted successfully, but requires moderator approval

The system prompted:

Post Needs Approval

And:

You have 1 post pending.

In other words, the post was submitted successfully, but it needs moderator approval.

This kind of manual review for a new account’s first post is very normal.

So I’m not submitting it again, I just need to wait.


9. What Promotion Was Actually Accomplished This Day

Ultimately, what started as just:

“Besides go.dev, search engines, and GitHub, where else can I promote this?”

turned into a real round of off-site promotion practice.

As of now:

Go Weekly

A project recommendation email has been sent to the editorial team.

Status:

Delivered to the recipient’s mail server.

Whether it gets included is pending further results.

Golang News

Account has been registered.

But:

  • The community currently has low activity;
  • Submitting requires more than 2 points;
  • The new account only has 1 point.

So it’s on hold, and I won’t spend time specifically to earn points.

Reddit r/golang

A project introduction has been successfully posted in the weekly Small Projects thread.

For now, I’ll observe natural interactions and won’t immediately post repeated standalone threads.

DEV Community

Account has been set up.

I have already:

  • Completed my profile;
  • Made a self-introduction in the Welcome Thread;
  • Officially published my first English technical article.

Article:

https://dev.to/shuijingwan/how-i-maintain-a-tour-of-go-in-11-languages-ahl

Go Forum

The project introduction has been submitted.

Currently:

Waiting for moderator approval.


10. The Biggest Change This Time: Shifting from “Waiting for Search Engines” to “Actively Going Where Developers Are”

In the past, when building sites, my routine was usually:

Plaintext
Launch
→ Submit Sitemap
→ GSC
→ Bing
→ IndexNow
→ Wait for search engines to crawl

Of course, I still need to keep doing these things.

But for a completely new subdomain and new language site, relying solely on search engines might take a very long time.

Especially since my A Tour of Go multilingual sites don’t have much natural traffic yet.

So this time, I started trying another route:

Plaintext
Search engines
+
Official links
+
GitHub
+
Go niche communities
+
Developer content communities
+
Local communities for each language

I feel this is the only way to gradually form a healthier traffic source structure.

Of course, doing a few promotions in one day won’t immediately cause a noticeable change in traffic.

Even today’s actions might very well not bring in a single user in the short term.

But at least it solves another problem:

Previously, besides waiting for search engines, I basically never actively put the project where Go developers actually hang out.

Now I’ve started doing that.


11. Next Step Isn’t to Keep Covering Dozens of Platforms in One Day

After finishing this round, I don’t plan to go and register on a dozen more sites today.

The reason is simple.

Promotion has marginal costs.

Every new platform means:

  • Registering an account;
  • Completing a profile;
  • Understanding the rules;
  • Writing content suited for the platform;
  • Dealing with reviews;
  • Replying to comments;
  • Ongoing maintenance.

If it’s just to generate links, copying the same text everywhere quickly turns into low-quality promotion.

So the more reasonable approach next is to:

  1. See if Go Weekly includes it;
  2. Wait for the Go Forum review result;
  3. See if comments appear on Reddit;
  4. See if the DEV article gets reads and interactions;
  5. Continue pushing the multilingual project to more production locales;
  6. Wait until the number of languages hits a new milestone before considering broader exposure.

For example:

20 languages

Or:

30 languages

At that point, considering Hacker News / Show HN will make for a much stronger news angle.


Conclusion

The biggest takeaway this time isn’t actually gaining a few backlinks.

It’s starting to transition this project from:

“A set of multilingual sites I maintain myself”

gradually into:

“An open-source project that can be discovered, discussed, and given feedback by different Go communities.”

Currently, the A Tour of Go multilingual translation project still has very little real traffic.

Search engine indexing also still takes time.

So at this stage, it’s far from being a “successful promotion.”

But at least today, I took a concrete step.

Rather than constantly staring at the search engine console waiting for data to change, it’s better to simultaneously and actively go to:

Where Go developers already are.

Next, I’ll keep translating, keep launching new languages, and keep observing whether these promotion channels can actually bring in users.

If Go Weekly includes it later, Go Forum approves it, or Reddit / DEV starts bringing in actual visits, I’ll continue to document the results.

系列导航

需要长期技术维护或远程问题排查?

我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。

如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:

  • ✅ PHP / Laravel / Yii2 老项目无人维护
  • ✅ Go / Gin 后端接口需要排查或优化
  • ✅ WordPress 网站访问慢、报错或插件冲突
  • ✅ Nginx / MySQL / Redis / Linux 服务器异常
  • ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
  • ✅ 需要长期远程技术支持或兼职维护

更多介绍请查看:关于我 & 合作

微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan