网站可持续性发展思考

关于网站的可持续性发展的相关思考

如果你只想知道网站为什么有的页面被加密,请直接跳转到 【文章加密】 一节。

背景

最近发现了一个完全复刻我的网站的网站,并且在搜索引擎的排名比我要高,显然这个网站剽窃了我的成果:

image.png|300
这个行为让我想到了个人开发者的窘境,作为个人开发者:

  1. 如果你的产出内容是免费的:你的产出很可能会被一些团体窃取,成为别人的获利工具,不管是代码还是文章。
  2. 如果你的产出内容是付费的:那么你的用户很可能会抱怨付费内容、付费墙或者是相关的广告,从而流失掉很多用户。

这个问题没有一个完美的解决办法,仅凭热爱是无法推动高效的产出,或者说是缺乏持续性的。而另一方面,如果你不进行开源,也无法让遇到更多和你志同道合的人。

这个世界上所有的事情都需要权衡,我觉得作为一个个人开发者,在开源世界保持持续性最重要,所以我初步思考出一个结合我自身情况的权衡方式。

我的思考

我曾在之前的文章分享过,我写作的目的就是为了让我感到自己在成长、进步,而少量的获利能形成正反馈,从而加速这个过程。目前我获得正反馈的方式就是在medium上写作。

在medium写作,将文章加入付费墙后,用户的阅读、点赞等互动,都能给作者带来少量收益,这个收益虽然比较微薄,但确实是一个非常好的正反馈方式,因为这里是一个拥有百万愿意付费阅读的用户,你的文章随着时间的增长总会对有些人带来帮助。

但是medium上写作也有缺点,当你把自己的meidum付费文章通过免费链接分享出去,仍旧会有很多人冷嘲热讽,因为他们会觉得技术写作等内容分享不应该付费。这种想法有一定道理,毕竟每个人都有自己的选择,而且我也不想失去这部分用户。

那么有没有一种方式可以既能照顾付费的用户,又能一定程度上留住希望免费的用户呢?

我调研了一下网上的模式,发现一种或许可行的方式:最新的文章首先由付费用户可见,免费用户第一时间看不到;而随着时间的流逝和产出的增多,老的文章可以逐步展示给免费用户。

优缺点

优点我觉得有几点:

  1. 适合技术写作。各种编程技术底层思想是类似的,早一些、晚一些放出来并不会有时效性的差异,它不像新闻热点,如果新闻不够“新”,则意味着观众不愿意买账。
  2. 留住部分免费用户。很多人看到medium文章感觉厌恶,我觉得是因为他们先入为主,先有了厌恶的情绪,又怎么会深层次阅读文章?而老的文章通过网站的免费链接分享,能够避免这种情绪。
  3. 增加网站的人气。当你的文章是免费阅读的,你会更坦然地将你认为可能对他人有帮助的文章分享出去,而这部分用户也更有可能愿意阅读并和你互动。

缺点:

  1. 平衡则意味着不彻底。如果你既想要又还要,可能会引起付费和免费两个群体中的少数人共同的反感。比如讨厌付费的人群发现你的最新两篇文章需要付费阅读,他们有可能恼羞成怒,因为他们厌恶营销手段。这些人或许在有一天随着生活思想改变而理解你,或许永远不理解,毕竟在人生的道路上,大部分人的喜怒哀乐并不想通。

行动 && 实现过程

接入 cloudflare

原本我的网站是一层 SSL/TLS,如下图:
image.png|300

避免爬虫和恶意请求,接入 cloudflare 后现在变成两层:

image.png|300
cloudflare 优缺点简单提一下,网上有很多分享:

  1. 优点一:保证安全。我可以在 cloudflare 上对特定资源进行保护,鉴别是否是人类请求或者是否是非恶意的爬虫。这些基本的功能免费的账户就可以拥有。
  2. 优点二:方便运维、管理。对于网站的请求,以及请求的用户和IP来源都可以查看。

image.png|300
3. 缺点:多了一层加密方式,从某种程度上来说并没有必要。而且有些国家或者地区访问我的网站延迟会变得更高。

安全的攻防总是道高一尺,魔高一丈,想要更安全,就是要牺牲一些东西。现在网站已经有了基本的安全保证,这对于现在的我来说,已经足够了。

文章加密

使用 robinmoisson/staticrypt对 HTML 页面进行加密,并通过 Github Action 自动化处理:

1
2
3
4
5
6
7
8
9
10
- name: Encrypted file
run: |
path1=$(grep -o '<a href="/[^"]*"' ./public/index.html | grep -v '#more' | sed 's/<a href="\([^"]*\)"/\1/' | sed -n '4p'| sed 's|^/||; s|/$||')
path2=$(grep -o '<a href="/[^"]*"' ./public/index.html | grep -v '#more' | sed 's/<a href="\([^"]*\)"/\1/' | sed -n '5p'| sed 's|^/||; s|/$||')
link1=$(npx staticrypt "./public/$path1/index.html" -p "${{ vars.STATICRYPT_PASSWORD }}" --share "https://programmerscareer.com/$path1/")
link2=$(npx staticrypt "./public/$path2/index.html" -p "${{ vars.STATICRYPT_PASSWORD }}" --share "https://programmerscareer.com/$path2/")
echo $link1
echo $link2
npx staticrypt "./public/$path1/index.html" -p "${{ vars.STATICRYPT_PASSWORD }}" --template-instructions "Why can't read it now, reason here:[https://programmerscareer.com/opensource-thinking/]" -r -d "./public/$path1"
npx staticrypt "./public/$path2/index.html" -p "${{ vars.STATICRYPT_PASSWORD }}" --short --template-instructions "Why can't read it now, reason here:[https://programmerscareer.com/opensource-thinking/]" -r -d "./public/$path2"

目前的文章密码都是:

1
#staticrypt_pwd=5f77eb18a6c18446fe6411fad44920c6d7abcd8d43047260e811a6c71fb59a5b

在文章url 的后面加上这个就可以访问,例如:

1
https://programmerscareer.com/golang-syncOnce/

需要输入密码才能访问。

1
https://programmerscareer.com/golang-syncOnce/#staticrypt_pwd=5f77eb18a6c18446fe6411fad44920c6d7abcd8d43047260e811a6c71fb59a5b

可以自动进入页面。

这里的密码当然可以变,可以通过更改salt的值,或者通过更改Github Action的 STATICRYPT_PASSWORD 变量来实现。

当然目前我不准备改变密码。

重中之重

上文已经提到,我的静态网站的前两篇内容将会自动化锁住,medium 上的文章内容则保持不变,但是网站的谷歌的广告我准备初步关闭。

为什么将谷歌的广告关闭?
I am worried about Google Chrome manifest version 3
谷歌正在不断缩小人们的选择,随着广告屏蔽扩展慢慢受限,普通用户无法屏蔽浏览器广告,而网站维护者也无法控制网站究竟会展示什么广告,这些都会被谷歌控制。坏的广告很可能会影响到普通人,诱导人们做出不理智的选择。

总之,这段时间在网站上做了一些小变动,我觉得这些变动会有益于我与其他人交流,能更近一步帮助我认识更多朋友,也能加速我学习英语,加速我的成长。

当然,我明白最重要的事情是什么,那就是不断坚持,不断写作。就像一条溪流,坚持写作就是溪流的源泉,各种优化措施就像更好的河道。好的河道能让溪流流的更远,但是这永远都只是次要的,最重要还是保持溪流的源头永不枯竭。

继续加油,快乐编码,快乐写作。

English post: https://programmerscareer.com/opensource-thinking/
作者:微信公众号,Medium,LinkedIn,Twitter
发表日期:原文在 2024-10-06 18:07 时创作于 https://programmerscareer.com/zh-cn/opensource-thinking/
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证

增长注意力的三种方式 golang 中你应该知道的slice知识

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×