Compare commits

25 Commits
main ... dev

Author SHA1 Message Date
eric
272942af68 's' 2025-07-28 05:51:45 +08:00
hackrobot
209d37cd4e feat:更新 2025-04-22 01:13:05 -05:00
hackrobot
1b03aa833d feat: 加入社群 2025-04-22 01:02:10 -05:00
hackrobot
08882d0f82 feat: 付费 2025-04-22 00:34:45 -05:00
hackrobot
56ffe9c654 feat: 更换支付地址 2025-04-21 21:40:11 -05:00
WLT\Eric.hu
a72a1a4304 update 2025-04-21 16:56:11 +08:00
WLT\Eric.hu
f0fb6e2491 feat: update 2025-04-21 16:45:12 +08:00
hackrobot
8601c385f0 feat: 公众号二维码 2025-04-07 08:55:33 -05:00
hackrobot
dd2d9cd4ef feat: 阅读更多按钮 2025-04-07 07:57:54 -05:00
hackrobot
9e72892d04 feat: 使用ico图标 2025-04-03 04:44:11 -05:00
hackrobot
06aeb80c01 feat: 一人公司 2025-04-03 02:17:10 -05:00
hackrobot
bf32fbb797 feat: 地理套利 2025-04-03 01:39:08 -05:00
hackrobot
81a7b199c2 feat: 分布式团队 2025-04-02 23:53:33 -05:00
hackrobot
2d5d28b981 feat: 更新内容 2025-04-02 21:36:53 -05:00
hackrobot
f499ba80cd feat: 返回主页 2025-04-02 21:03:06 -05:00
hackrobot
b873831aaa feat: 独立开fasaas 2025-04-02 21:01:40 -05:00
hackrobot
59b302aead feat: wordpress建站 2025-04-02 20:26:12 -05:00
hackrobot
18e0e8b784 feat: js混淆 2025-04-02 19:57:09 -05:00
hackrobot
4c9641d91d 'ss' 2025-03-30 02:08:00 -05:00
hackrobot
6d4c7e0f7e 'ss 2025-03-30 01:03:04 -05:00
hackrobot
c08de34a8f 'ss' 2025-03-27 08:39:14 -05:00
hackrobot
0cf48879f5 feat: 手机UI优化 2025-03-27 08:33:54 -05:00
hackrobot
8958d61734 'ss' 2025-03-27 08:30:03 -05:00
hackrobot
d7008f6e2b 'init' 2025-03-25 18:32:04 -05:00
hackrobot
ed8ed3fcd9 'init' 2025-03-25 18:18:31 -05:00
20 changed files with 6298 additions and 4003 deletions

View File

@@ -1 +1 @@
process.env.TARO_API_API="https://web.hackrobot.cn"
process.env.TARO_API_API="https://api.nomadcna.com"

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
# dist/
dist/
deploy_versions/
.temp/
.rn_temp/

View File

@@ -1,3 +1,7 @@
import path from "path";
// const { GenerateSW } = require("workbox-webpack-plugin");
const WebpackObfuscator = require("webpack-obfuscator");
const config = {
projectName: "cityh5",
@@ -21,38 +25,61 @@ const config = {
cache: {
enable: false, // Webpack 持久化缓存配置建议开启。默认配置请参考https://docs.taro.zone/docs/config-detail#cache
},
mini: {
postcss: {
pxtransform: {
enable: true,
config: {},
},
url: {
enable: true,
config: {
limit: 1024, // 设定转换尺寸上限
},
},
cssModules: {
enable: false, // 默认为 false如需使用 css modules 功能,则设为 true
config: {
namingPattern: "module", // 转换模式,取值为 global/module
generateScopedName: "[name]__[local]___[hash:base64:5]",
},
},
},
},
h5: {
webpackChain (chain) {
webpackChain(chain) {
chain.output.filename("static/js/[name].[contenthash:8].js");
chain.output.chunkFilename("static/js/[name].[contenthash:8].js");
chain
.plugin("MiniCssExtractPlugin")
.use(require("mini-css-extract-plugin"), [
{
filename: "static/css/[name].[contenthash:8].css",
chunkFilename: "static/css/[name].[contenthash:8].css",
},
]);
if (process.env.NODE_ENV === "production") {
// js代码混淆
chain.plugin("obfuscator").use(WebpackObfuscator, [
{
rotateStringArray: true,
stringArray: true,
stringArrayThreshold: 0.5, // 降低比例,提高速度
compact: true,
controlFlowFlattening: false, // 关闭,提高速度
deadCodeInjection: false, // 关闭,提高速度
debugProtection: false,
disableConsoleOutput: true,
selfDefending: false, // 关闭,提高速度
simplify: true, // 开启简化,提高性能
// 禁用对 async/await 的转换
target: "browser", // 或设置为适合目标环境的 ECMAScript 版本
disableOptimizations: true, // 禁用某些优化来避免处理 async/await
},
["**/*.js", "!node_modules/**"], // 避免对 node_modules 进行混淆
]);
}
chain.module
.rule('markdown')
.rule("markdown")
.test(/\.md$/)
.use('raw-loader')
.loader('raw-loader')
.end();
.use("raw-loader")
.loader("raw-loader")
.end();
chain.module
.rule("ico")
.test(/\.ico$/)
.use("file-loader")
.loader("file-loader")
.options({
name: "static/images/[name].[ext]",
});
},
esnextModules: ["taro-ui"],
publicPath: "/",
// publicPath: `/v${new Date().getTime()}/`,
staticDirectory: "static",
postcss: {
autoprefixer: {
@@ -67,17 +94,19 @@ const config = {
},
},
},
// customRoutes: {
// // "页面路径": "自定义路由"
// "/pages/index/index": "/index",
// // '/pages/detail/index': ['/detail'], // 可以通过数组为页面配置多个自定义路由
// "pages/my/index": "/my",
// "pages/meetup/index": "/meetup",
// "pages/meetup/Detail/index": "/detail",
// },
router: {
// basename: '/myapp',
mode: "hash", // 或者是 'browser'
mode: "browser", // 或者是 'hash'
customRoutes: {
// "页面路径": "自定义路由"
"/pages/index/index": "/",
"/pages/book/index": "/book",
// '/pages/detail/index': ['/detail'], // 可以通过数组为页面配置多个自定义路由
// "pages/my/index": "/my",
// "pages/meetup/index": "/meetup",
// "pages/meetup/Detail/index": "/detail",
},
},
// defineConstants: {
// HOST: '"/api"'
@@ -86,20 +115,27 @@ const config = {
// host: 'nomad.hackrobot.cn', // 替换为您的域名
// port: 10087, // 选择一个适当的端口号
proxy: {
'/api/': {
"/api/": {
target: JSON.parse('"http://localhost:8700"'), //本地调试端口
pathRewrite: {
'^/api/': '/'
"^/api/": "/",
},
changeOrigin: true
}
changeOrigin: true,
},
},
// 允许特定域名访问
allowedHosts: [
// 'bot.hackrobot.cn'
'nomadvps.com'
],
}
allowedHosts: ["nomadro.com", "localhost", ".nomadro.com","hackrobot.cn"], // 允许所有 *.nomadyt.com 子域访问
},
htmlPluginOption: {
favicon: path.resolve(__dirname, "..", "src", "images", "dgnomad.png"), // 同样处理 favicon 路径
meta: {
"cache-control": "no-cache, no-store, must-revalidate",
pragma: "no-cache",
expires: "0",
},
},
target: ["web", "browserslist:> 0.25%, not dead"],
},
};

View File

@@ -3,7 +3,7 @@ module.exports = {
NODE_ENV: '"production"'
},
defineConstants: {
'process.env.TARO_API_API': JSON.stringify("https://web.hackrobot.cn")
'process.env.TARO_API_API': JSON.stringify("https://api.nomadcna.com")
},
mini: {},
h5: {

View File

@@ -68,11 +68,13 @@
"eslint-plugin-import": "^2.12.0",
"eslint-plugin-react": "^7.8.2",
"eslint-plugin-react-hooks": "^1.6.1",
"javascript-obfuscator": "^4.1.1",
"postcss": "^8.4.18",
"react-refresh": "^0.11.0",
"stylelint": "9.3.0",
"ts-node": "^10.9.1",
"typescript": "^4.1.0",
"webpack": "^5.78.0"
"webpack": "^5.78.0",
"webpack-obfuscator": "^3.5.1"
}
}

23
src/images/book.svg Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
<g>
<path fill="#F9EBB2" d="M56,62H10c-2.209,0-4-1.791-4-4s1.791-4,4-4h46V62z"/>
<g>
<path fill="#45AAB8" d="M6,4v49.537C7.062,52.584,8.461,52,10,52h2V2H8C6.896,2,6,2.896,6,4z"/>
<path fill="#45AAB8" d="M56,2H14v50h42h2v-2V4C58,2.896,57.104,2,56,2z"/>
</g>
<g>
<path fill="#394240" d="M60,52V4c0-2.211-1.789-4-4-4H8C5.789,0,4,1.789,4,4v54c0,3.313,2.687,6,6,6h49c0.553,0,1-0.447,1-1
s-0.447-1-1-1h-1v-8C59.104,54,60,53.104,60,52z M6,4c0-1.104,0.896-2,2-2h4v50h-2c-1.539,0-2.938,0.584-4,1.537V4z M56,62H10
c-2.209,0-4-1.791-4-4s1.791-4,4-4h46V62z M56,52H14V2h42c1.104,0,2,0.896,2,2v46v2H56z"/>
<path fill="#394240" d="M43,26H23c-0.553,0-1,0.447-1,1s0.447,1,1,1h20c0.553,0,1-0.447,1-1S43.553,26,43,26z"/>
<path fill="#394240" d="M49,20H23c-0.553,0-1,0.447-1,1s0.447,1,1,1h26c0.553,0,1-0.447,1-1S49.553,20,49,20z"/>
<path fill="#394240" d="M23,16h12c0.553,0,1-0.447,1-1s-0.447-1-1-1H23c-0.553,0-1,0.447-1,1S22.447,16,23,16z"/>
</g>
<path opacity="0.2" fill="#231F20" d="M6,4v49.537C7.062,52.584,8.461,52,10,52h2V2H8C6.896,2,6,2.896,6,4z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/images/dgnomad.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

20
src/images/group.svg Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" ?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 512 512" id="Layer_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style type="text/css">
.st0{fill:#E6E6E6;}
.st1{fill:#69C9C9;}
.st2{fill:#4D5152;}
</style>
<g>
<path class="st0" d="M56.3,322.3v-10h-26c3.5-49.6,32.8-94,77.1-116.7c16.2,17.2,39.3,28,64.8,28c2.3,0,4.6-0.1,6.9-0.3 c2,16.9,7.7,32.7,16.4,46.5c-25.3,13.1-47.3,31.1-64.9,52.4L56.3,322.3z"/>
</g>
<g>
<path class="st1" d="M262.1,446.4H102.4c3.6-68.3,43.9-129.7,105.3-160.2c20.8,23,50.9,37.5,84.4,37.5c33.4,0,63.5-14.5,84.4-37.5 c61.4,30.5,101.7,91.9,105.3,160.2H322.1v10h-60V446.4z"/>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="red" d="M14.712 4.633a1.754 1.754 0 00-1.234-1.234C12.382 3.11 8 3.11 8 3.11s-4.382 0-5.478.289c-.6.161-1.072.634-1.234 1.234C1 5.728 1 8 1 8s0 2.283.288 3.367c.162.6.635 1.073 1.234 1.234C3.618 12.89 8 12.89 8 12.89s4.382 0 5.478-.289a1.754 1.754 0 001.234-1.234C15 10.272 15 8 15 8s0-2.272-.288-3.367z"/><path fill="#ffffff" d="M6.593 10.11l3.644-2.098-3.644-2.11v4.208z"/></svg>

After

Width:  |  Height:  |  Size: 613 B

BIN
src/images/youtube.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -8,13 +8,13 @@
<meta name="format-detection" content="telephone=no,address=no">
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
<link rel="apple-touch-icon" href="/static/images/images/touxiang.png" />
<link rel="apple-touch-icon" href="/static/images/images/dgnomad.png" />
<!-- <link rel="apple-touch-icon" href="/static/images/images/youtube.svg" /> -->
<link
rel="icon"
sizes="192x192"
href="/static/images/images/touxiang.png"
href="/static/images/images/dgnomad.png"
/>

View File

@@ -1,45 +1,701 @@
## Youtube运营笔记
# 前言
> 媒体是普通人的最好的杠杆
## 🚀 数字游民
从佛系到认真的运营youtube(油管),也快有1年的时间了
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfqwff.jpg?imageSlim" title="" alt="fqwfqwff.jpg" width="333">
在这里分享一些心得,以及踩过的坑
对于普通人而言,最好的杠杆依然是`媒体``代码`  
如今有了AIGC的加持  
以前创作的门槛,已经不再是`门槛`    
数字游民,翻译自`digital nomad`,指的是依靠依靠互联网获取收入,并且像游牧民族一样旅居各个地方的群体
## 目录
- 被动收入:YouTube运营
- 副业:wordpress建站
- 独立开发:sass业务
- 一人公司/分布式团队
- 展望与结束语
本书不是`教人赚钱`的指南,但作为参考,应该可以给你一些启发
持续更新中,未完待续
---
## 为什么youtube值得做?
# 远程工作
> 成本低
大多数人成为数字游民,还是依赖一份旱涝保收的`远程工作`
自媒体是普通人最好的杠杆,只需要1部手机,就可以拍摄vlog,也可以剪辑影片
现在的剪辑软件,不仅在手机端可以方便操作,还结合的ai功能,比如
然后经营自己的副业,直到成为主页
- 语音翻译/克隆
- 自动生成双语字幕
- 特效/音效
![2025-04-03-12-54-51-Hire a Freelance Developer for Programming Jobs _ Fiverr.png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-03-12-54-51-Hire%20a%20Freelance%20Developer%20for%20Programming%20Jobs%20_%20Fiverr.png?imageSlim)
随时随地都可以剪辑+上传
以下是海外常用的远程工作平台
> 赚美金,回报高
- [fiverr](https://go.fiverr.com/visit/?bta=1111508&brand=fiverrmarketplace)
同样的视频,在不同的平台上传后,收益汇率不一样
- [upwork](https://www.upwork.com/)
油管结算是美金,换成人民,就有7倍左右的购买力
- [remoteok](https://remoteok.com/)
而如果你居住下三四线城市,或者县城,那么由于生活成本低
英语和重要,必要的沟通,还是要行
每月即使1000$的收益,都可以过的不错了
## 谨防欺诈
> 商业模式健康
![afafwff.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/afafwff.jpg?imageSlim)
youtube给创作者的收益,长视频是`55%`,短视频shorts是`45%`
很多工作机会,并不是真实的,平台也不一定能监管到位
可以说是世界上很慷慨的公司了
从人力性价比来说,印度的更便宜,有原生的`语言和网络优势`,以及`汇率`
仅仅是平台广告,就能够带来巨大的收益
而菲律宾也是`呼叫中心`的核心外包国家
不用去接`业配/商单`,以及自己带货,纯粹的视频不会让人厌恶
作为一名中国人,在很多业务上,并没有优势,很多活跃都是外贸采购人员
但平台可以帮助我们确认:才是才是需求高的`业务方向`
## 国内平台
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/wegwgweg.jpg?imageSlim" title="" alt="wegwgweg.jpg" width="383">
国内有很多XX社区,在做致力于数字游民的事业
但由于本土众所周知的原因
大多都是套了一层壳,本质还是`劳务中介``二房东`的生意
不是创始人不够努力,也不是技术和运营的问题,而是土壤天生不允许发芽
如果寻求远程,可以在某直聘`搜索职位时,加上远程`
有些`开发,客户,运营`是存在远程岗位的
话说,这是一个向企业和用户双方都收费的平台🤣...可以试试
---
# 被动收入:YouTube运营
你可以在 [nomadyt.com](https://nomadyt.com) 阅读,关于youtube运营的电子书
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-03-30-01-40-00-Youtube%E8%BF%90%E8%90%A5%E7%AC%94%E8%AE%B0.png?imageSlim" title="" alt="2025-03-30-01-40-00-Youtube运营笔记.png" width="189">
但是本书,会展示更多运营的细节
比如无人直播,除了`ffmpeg推流`,以及`obs开源软件`之外
如何使用`安卓开发板+采集卡`的方案,模拟移动端直播,权重更高,平台推荐,且防封
除此之外,例如使用`链式代理`,如何选择`静态住宅ip`,也是出海业务的基础
如果没有掌握,一切都是徒劳,会面临0播,限流,甚至封号
---
# wordpess建站
> 网站已死?网站永生
网站,在国内,似乎是一个很古老的词,因为它是互联网的下等公民
在移动互联网时代,被各种`小程序`或者`快应用`取代
最不济也是用`自研app`,圈地画牢,获取用户的数据
而web网站,或者H5,都是排除在生态之外,用户信任度也较低
> 但如果目光望向海外呢
各种当下火热的AI,都是`网页为先,支持pwa`
如果想要成为成为独立开发者,只需要接入stripe支付即可
各种独立站,电子商务,私域也让各种商家大赚特赚
> wordpress建站
![afwqfqwf.png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/afwqfqwf.png?imageSlim)
wordpress是基于php开发的开源建站程序,拥有最丰富的`主题和插件`生态
即便是小白,也能分分钟上线一个网站,可以是:
- 个人博客
- 企业官网
- woocommerce独立站
- 网校/电子书/论坛
- 等等
一夜之间上线网站,全球访问,是一件很简单的事情
如果想要盈利,最简单的就是接入`谷歌的广告`,自动化嵌入
## 一夜之间上线网站
> 购买域名
可以在 [ namesilo](https://www.namesilo.com/?rid=3bd4047mc) 购买域名,也就是类似`google.com`的网址
因为是海外服务商,所以不需要备案
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-15-14-Low-Cost%20Domain%20Names%20%26%20Hosting%20from%20%240.99%20_%20NameSilo.png?imageSlim" title="" alt="2025-04-02-08-15-14-Low-Cost Domain Names & Hosting from $0.99 _ NameSilo.png" width="480">
> 购买vps服务器
域名虽然是英文字母, 但是用户访问后,实际是`google.com==>8.8.8.8`,
dns会把网址解析到 服务器的默认`公网ip`地址
因为是海外的厂商,所以也不要备案
在 [vultr](https://www.vultr.com/?ref=8985003) 购买一个vps服务器,后,建议立即用一键脚本部署`宝塔面板`
自带wordpress安装程序
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-18-13-index.tsx%20-%20nomadro.com%20-%20Visual%20Studio%20Code.png?imageSlim" alt="2025-04-02-08-18-13-index.tsx - nomadro.com - Visual Studio Code.png" width="469">
## adsense赚美金
> wordpress插件: [google site kit](https://wordpress.org/plugins/google-site-kit/)
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/afqfqfqwf.jpg?imageSlim" alt="afqfqfqwf.jpg" width="466">
插件会自动帮你关联`google分析`,与`adsense账户`
当你点击申请后,官方会人工审核网站的`内容和流量`,一般2周,快的次日就有结果
## 拓展其他收益:affiliate
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-09-25-35-images.jpg.png?imageSlim" title="" alt="2025-04-02-09-25-35-images.jpg.png" width="457">
仅仅在wordpress自动放广告,如果不是站群,收益不会太多
ps: 站群:可以基于`k8s,docker`技术,自动批量建站
但大多数人,都是技术小白,远不到玩站群的层次,也没必要
在自己没核心业务:比如无职业资源`律师,医生,销售`也没有商品.产品等背景下
建议采用`affiliate佣金`模式,增加收入,别入
- amazon: 商品佣金 + kindle书籍
- vps服务器: [vultr](https://www.vultr.com/?ref=8985003) 和域名平台: [namesilo](https://www.namesilo.com/?rid=3bd4047mc)
- 金融:[ wise](https://wise.com/invite/amc/xiaoshuangh)钱包 和 [okx](https://okx.com/join/84999861)交易所
- 等等
affiliate marketing的好处是,推广的服务基本都是互联网平台
而且.平台/推广者/用户,三方收益
平台有新客户,新用户有优惠,推广者有提成
---
# 独立开发sass
> web优先,ios app其次
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfqwfqw.jpg?imageSlim" alt="fqwfqwfqw.jpg" width="323">
web只需要解决`登录``支付`2个核心问题,优势就太多了
- 几分钟上线
- 快速迭代更新
- 用户点击进入(短信/文章/聊天框)
大多数人,之所以选择iOS app, 是因为它的生态:
- `推送`,`全球分发`,`云数据`,`身份id认证``支付收款`
`下载`的成本很高,在测试用户是否具有粘性之前
用web先行测试是一种策略
## 数字游民CNA
如果你了解过数字游民,那么一定会知晓`nomadlist`这个网站
模仿它的特色,我正在尝试开发类似的网站,针对中文用户
目前仍然很简陋,但会持续迭代,可访问: [nomadcna](https://nomadcna.com/)
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-38-51-%E6%95%B0%E5%AD%97%E6%B8%B8%E6%B0%91CNA.png?imageSlim" title="" alt="2025-04-02-08-38-51-数字游民CNA.png" width="391">
## 技术栈
在nomadlist的创始人的`MAKER`一书中,作者用着`最古老的jquery和php以及sqlite数据库`,却开发了平均 40k$/m纯利润各种网站,包括 `AI 工具站/电子商务`,其数据都在X上实时更新
其实只需要5$/月的  [vultr](https://www.vultr.com/?ref=8985003) 服务器,就足以支撑业务
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-46-57-%40levelsio%20(%40levelsio)%20_%20X.png?imageSlim" title="" alt="2025-04-02-08-46-57-@levelsio (@levelsio) _ X.png" width="427">
本人比较推荐基于js的react生态,它可以满足
- react开发web网站
- chrome插件
- electron开发pc客户端软件
- react native开发iOS app
当然,如果你想开发一个完整的应用,会涉及很多,体验/功能 比如`用户无法感知`
- 埋点:分析/错误监控
- 多语言 (翻译)
- 加固混淆 (防止逆向渗透)
- pwa (将web进行app化)
- wasm,three.js,webVR (边缘计算能力与3D可视化)
思虑越多,越难以行动,完美主义很致命
即便是一个`hello world`,当它被各个世界的用户,可点击访问时
你就成功了一半,因为它以为,除了`自媒体作品`之外,你有了`创造产品`的能力
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfwqfqwf.png?imageSlim" title="" alt="fqwfwqfqwf.png" width="390">
## 收益: admob广告与内购
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/wqfqwfqwf.png?imageSlim" title="" alt="wqfqwfqwf.png" width="400">
以iOS app为例子,收益的方式有很多
- admob广告
- 购买下载 (一次性买断)
- 内购:订阅制 (月付)
如果不想向用户收费,可以直接接入admob广告,也是google 广告
进一步可以采取pro升级模式,用户付费后,免广告,且提供高级功能
在国内,用户付费意愿较低
如果用户基础大,也可以采取`开屏广告``广告位`形式获取获取企业厂商赞助
最理想的模式的是`订阅制`,基于`1000个粉丝`的理论,开发者就可以实现客观的收入了
但风险也是对等的
一旦成功,就会无数团队模仿,利用资金/资源/投放广告,来碾压开发者
如果建立护城河,是一个难题
---
# 地理套利
数字游民最本质的优势在于`地理套利`
![qwfqfwqf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwfqfwqf.jpg?imageSlim)
更详细的优势如下:
- 地理优势:东亚气候温暖,风景唯美,适合旅居
- 生活成本:三四线城市消费水平低,物价便宜
- 汇率差:赚美元,换算成泰铢可以达到1:30,人民币1:7左右
- 当地特产/文化:比如泰国旅游业,印度仿制药,香港金融等等
- 时间差:淡季旅行性价比高,错峰出行,看见不一样的文化
即便是每月1000$/m的收益,也可以过得很舒服惬意,也拥有无限的可能性
## 大理与乌托邦
在中国境内,`大理`是所有裸辞打工人的第一站
逃离钢筋水泥,回归自然田园
![dwqdqwf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/dwqdqwf.jpg?imageSlim)
房租编译,风景怡人,各个XX社区,遍地开花
很多东南亚的客户,也来这里旅行,通过 [ctrip](https://www.trip.com/nomadcna?Allianceid=6238114&SID=193455508&trip_sub1=&trip_sub3=D2700672) 订票,也就是某程英文版
其实`惠州`也值得一试,离广东的`深圳/广州`一线城市距离近
![wgwggg.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/wgwggg.jpg?imageSlim)
房价/物价便宜,气候温暖
乘坐高铁,到附近省份也方便
至于`鹤岗`,个人认为纯粹不值得,生活在南方的人,无法理解北方的酷寒
不知道鹅毛大雪几米深的恐怖,也不知道暖气停供一晚,如何撑得过零下几十度
连救护车开到了医院大门,即便轮胎上了防滑链,都有没法开进去的情况
需要男护士/男医生踩着雪抬进去
当选择一个环境的时候,有时候,气候,是保证一个人生命安全的关键
## 泰国:曼谷与清迈
据nomadlist统计报告,泰国`曼谷`是最受欢迎的数字游民聚集地
![2025-04-03-01-37-27-Nomads.com - Best Places to Live for Digital Nomads (formerly Nomad List).png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-03-01-37-27-Nomads.com%20-%20Best%20Places%20to%20Live%20for%20Digital%20Nomads%20(formerly%20Nomad%20List).png?imageSlim)
其次是`清迈`
而且该国对数字游民,也比较友好,出台了很多`针对性的政策`
但不得不提醒的是,泰国也被列为最危险的国家
- 不禁枪支
- 风月场所合法,比如芭提雅
- 周边国家,存在贩毒与电诈
- 存在人口贩卖和地下奴隶市场
当一个博主从`印度`或者`泰国`回来,用"很安全,我不就是好好的吗?"来解答你的疑惑时
这个人要么愚蠢,要么下贱
`幸存者偏差`的意思是,只有或者的人,才有机会开口说话
那么遭遇危险的人,已无法发生
---
# 多元杠杆
成为一个数字游民,就必须让自己的过程,产生多元的杠杆价值,放大收益
![qfqwffwq.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qfqwffwq.jpg?imageSlim)
这里有个框架,3个关键词,可以套用在任何事物上,如下
- `直播`live
- `社群`互动
- `录制`存档
在框架的基础,我也会解释`副产品`的优势
现在我们举个栗子
假设你是一个开发者,`正在coding编程`,这个如何实现多元化呢?
![QWQWFQWF.png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/QWQWFQWF.png?imageSlim)
链路如下:
1. 实时直播,手机=>拍着正在敲键盘的你
2. 交流互动,针对观众的提问(看副屏),进行回答,让业务有实时的反馈
3. OBS后台录屏 (副产品:技术视频教程)
4. 编码本身 (软件产品,ios app,观众可以成为种子用户)
5. Api互动: 根据打赏的礼物,控制`显示器/esp32`进行趣味玩法
6. 橱窗带货:比如桌面炫酷/萌萌的摆件
总结一下,实时编码,不仅让业务有`即时反馈`,也会产生很多`副产品`
增加了收益渠道
## RPA自动化
![qwfqwfqwf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwfqwfqwf.jpg?imageSlim)
前面我们提到了直播,可以实现多元化杠杆,但,它是一个实时同步的过程
那么有没有24小时无人值守,自动化的方案呢?
有,比如
- 基于ffmmpeg/obs直播推流 (录播素材)
- 社媒mitm爬虫:数据分析/自动点赞评论
- 发卡平台: 虚拟资源,卡密网盘发货
- N8N: 平台与流程自动化,积木一样串联工作流
- 群机器人bot: telegram和微信群
- 等等
缺点是最技术的要求较高
---
# 分布式团队
成为一个数字游民,并不意味着一个人完成所有的项目过程
参与或者成立一个分布式团队,进行远程办公,也是必要的
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfqfqwf.jpg?imageSlim" title="" alt="fqwfqfqwf.jpg" width="397">
可以雇佣兼职/外包,或者让用户产生内容 [UGC]
接下来我会推荐`开源`的远程工具
1. 任务看板:`planka`
2. `eliment `(基于martix斜体的聊天工具)
3. 文档wiki/知识库: `docmost`
使用开源的好处在于:`低成本,保护隐私,完全控制,可拓展`
> 任务看板planka
以任务卡片的形式,给成员安排任务
设置子任务/完成时间/上传附件/以及评论@
所有进度一目了然
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-11-11-29-Sample%20Project%20_%20Sample%20Board.png?imageSlim" title="" alt="2025-04-02-11-11-29-Sample Project _ Sample Board.png" width="463">
> eliment
eleliment只是基于martrix协议的一个客户端
目前支持PC/mac/Android/ios/linux全平台
可以聊天/视频语音通话
后台可以进行消息统计/分析,防止商业机密泄露
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-11-14-33-Element%20_%20Secure%20collaboration%20and%20messaging.png?imageSlim" title="" alt="2025-04-02-11-14-33-Element _ Secure collaboration and messaging.png" width="469">
> wiki文档: docmost
它内置编辑器支持 Mermaid、Draw.io 和 Excalidraw 图表工具
可以将团队的文档整理输出
方便成员学习,分享
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwdqwdqwd.png?imageSlim" title="" alt="qwdqwdqwd.png" width="506">
> 如何搭建?
购买  [vultr](https://www.vultr.com/?ref=8985003) 服务器,按照官方提供的`docker镜像`,一键安装
---
# 一人公司
> 数字游民与一人公司区别很大
![qwqwfqwf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwqwfqwf.jpg?imageSlim)
数字游民一般是以`远程工作`为主,本质还是偶雇佣关系,把工位换成了远程旅居
也进行一些`副业`
但一人公司,更偏向于`创业`
经营`自媒体/独立开发/电商`等收益上限比较高的互联网业务
## 基础设备
一人公司,也意味着硬件和软件资产的流程化,比如
- windows办公主机
- 安卓手机:产品测试/社媒运营
- linux服务器:应用部署
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/1000029229.jpg?imageSlim" alt="1000029229.jpg" width="339">
图示是作者用mini主机+开发板打造的远程操作系统
可以随时随地,`远控/群控`
利用[vultr](https://www.vultr.com/?ref=8985003) 服务器,设置`frp内网穿透`即可,或者`wireguard点对点VPN异地组网`
## 开源部署
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-11-46-55-Uptime%20Kuma%20Status.png?imageSlim" title="" alt="2025-04-02-11-46-55-Uptime Kuma Status.png" width="395">
经营业务,必须准备大量的基础服务来支撑自动化运营,比如
- erp系统: ERPNext
- scrm客服:chatwoot
- 邮件营销:邮件营销
- 项目开发: `禅道`(项目管理) /` gitlab`(代码仓库)/`YAPI`接口文档
- 运维CI/CD:jenkins自动部署/`rancher`容器管理
- 埋点监控: `Sentry`错误监控/`plausible`统计/`Uptime Kuma`服务状态
- 流程自动化`N8N`
- 等等
都是开源免费
- 缺点:需要自己部署,维护
- 优点:省下数以万计的费用
---
# 展望与结束语
![efqwfegwegweg.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/efqwfegwegweg.jpg?imageSlim)
在以上内容,并没有提及2个领域:`跨境电商``加密货币`
前者偏向于实体,成本高,链路复杂,市场因政策变化频繁
后者遇到投机主义,一不小心就容易倾家荡产
换个思路,不做卖家,可以做amazon affiliate, 买入闲置,用涨跌来跨越大周期,穿越牛熊
原本只打算写2个小册
- [youtube运营笔记](https://nomadyt.com/) (free)
- [从零开始,成为数字游民](https://nomadro.com/) (试读80% +pay)
后续会酌情增加
- [一人公司](https://nomadvps.com/) (预订)
最初的是打算写技术书籍的~~
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-03-02-14-22-AI%20%E4%B8%8E%20RPA%E8%87%AA%E5%8A%A8%E5%8C%96.png?imageSlim" title="" alt="2025-04-03-02-14-22-AI 与 RPA自动化.png" width="375">
> 不管是生意还是创业,第一原则,先找到`买家`
在某个领域里,你发现了需求,或者有人为你的创造买单,就有收益,然后放大
如果没有调研市场
就默默地闭门造车,结局会很惨
持续更新中.....
---
# 数字游民与一人公司(vip)
`数字游民`更倾向于`远程工作`或者`副业`,用收益来支持`旅居`的生活
当然旅行不是必须的
`朝九晚五的坐班`抛弃才是核心意义,`身体和时间`成本非常可怕
提示:
- 以下内容均为`付费内容`
- 章节标题会有`(vip)`标识
---
# 写书(vip)
`写文章``写书`完全不是一个概念,即便是万字长文
书的框架更加立体
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-21-11-52-05-book%20-%20Google%20Search.png?imageSlim" title="" alt="2025-04-21-11-52-05-book - Google Search.png" width="221">
你现在看到的`web电子书`,是我用`reactjs`开发的,在此之前,也研究并实践了很多方案
比如:
- 亚马逊`kindle`,即kdp自出版,同步全球
- `BOOKDNA`,中文市场(微信读书/当当图书/豆瓣阅读..),仅调研
- `Docusaurus`:静态站点生成器 / ``github pages`
后来借鉴了`levelsio`的创业哲学,web优先,他的`MAKER`就是一个单页网站,连目录都没有
## 免费阅读,赚佣金
我本人是野生程序猿,无论是前端/后端/运维,还有大火的AI,边缘计算
无论是互联网还是实体商业
都离不开的`水电气`是: `域名`/`vps主机`/以及`ip池子`(静态住宅和动态代理)
白话而言,如果一本书,没有向用户收费
那么你可以借助`水电气`的佣金,让`平台/作者/用户`,实现三赢,也就是offer订阅,也可以说`affiliate佣金`
![fwfwqf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fwfwqf.jpg?imageSlim)
实际案例:
比如针对<<youtube运营笔记>>这本小书,是免费阅读的
但是如果读者想要运营油管,那么必定离不开vps: [vultr服务器](https://www.vultr.com/?ref=8985003)
## 经营你的利基niche
利基*市场*niche market):指该产品表现出来的许多独特利益有别于其他产品,同时也能得到消费者的认同
自媒体有很多平台,比如X/youtube/reddit等等
但是,平台只是放大器,在没有确定`利基业务`之前,我个人更推荐做`水电气`的模式
> 那么,如何确定业务呢?
比如程序员,可以做
- 知识付费:`编程课`
- 软件脚本开发:IOS app/PC客户端/chro插件
- saas (一般指网站)
具体的案例比如: <<独立开发者手册>>,就能帮助无数ios的开发者闭坑
## 付费阅读
前面说过,本书的网页,支付,都是我自己开发的,好处是
- 不需要经过平台审核
- 不需要与编辑,三对三校
- 不需要isbn出版号
可以实时上线,随时更新,样式自定义

View File

@@ -1,3 +1,3 @@
export default {
navigationBarTitleText: '一人公司方法论'
navigationBarTitleText: '数字游民'
}

View File

@@ -1,8 +1,69 @@
// 在 src/index.scss 中引入 GitHub Markdown 主题
@import "github-markdown-css/github-markdown.css";
// marktext的换行处理
.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
margin-bottom: 10px;
}
.markdown-body li > p {
margin-top: 0px;
}
.book_header_div {
width: 100%;
height: 80px;
}
.book_header {
position: fixed;
top: 0px;
width: 100%;
height: 80px;
// background-color: aquamarine;
// background-color: #f0f5ff;
border-bottom: 2px solid #f0f5ff;
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
.book_header_left {
width: 100px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
color: #69b1ff;
}
.book_header_middle {
flex: 1;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
color: #69b1ff;
}
.book_header_right {
width: 100px;
// background-color: yellow;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
color: #69b1ff;
}
}
.Book {
padding: 40px;
.markdown-body {
font-size: 30px;
// color: #72d572;
@@ -10,7 +71,25 @@
img {
max-width: 100%;
height: auto; /* 保持图像的纵横比 */
height: auto;
/* 保持图像的纵横比 */
}
.at-drawer__content {
.at-list {
.at-list__item {
font-size: 30px;
// background-color: aqua;
.at-list__item-container {
.at-list__item-content {
}
}
}
}
}
.joinSalon {
margin-top: 30px;
}
}
@@ -19,16 +98,17 @@
width: 100%;
// height: 100%;
display: flex;
flex-direction: row;
flex-direction: column;
align-items: center;
justify-content: center;
// background-color: yellow;
.book_left {
width: 400px;
height:100%;
height: 100%;
background-color: red;
}
.markdown-body {
width: 100%;
max-width: 1400px;
@@ -36,10 +116,18 @@
// color: red;
// background-color: #72d572;
}
.book_right {
width: 400px;
height: 100%;
background-color: greenyellow;
}
.joinSalon {
// width: 100%;
// height: 100px;
display: none;
// background-color: yellow;
}
}
}

View File

@@ -3,7 +3,7 @@ import { Component } from "react";
import { View, Text, Image } from "@tarojs/components";
import "./index.scss";
import { AtButton, AtInput, AtTabBar } from "taro-ui";
import React, { useCallback, useEffect, useState } from "react";
import React, { useCallback, useEffect, useState, useRef } from "react";
import { AtGrid } from "taro-ui";
import { Swiper, SwiperItem } from "@tarojs/components";
import { AtCard } from "taro-ui";
@@ -12,10 +12,11 @@ import Taro from "@tarojs/taro";
import { AtAvatar } from "taro-ui";
import { AtTag } from "taro-ui";
import { AtList, AtListItem } from "taro-ui";
import { AtForm, AtMessage } from "taro-ui";
import { AtForm, AtMessage, AtDrawer, AtIcon } from "taro-ui";
import { marked } from "marked";
import infoText from "./info.md";
import bookText from "./book.md";
// import youtubeIco from "../../images/youtube.ico";
marked.setOptions({
breaks: true, // 是否回车换行
@@ -39,15 +40,45 @@ marked.setOptions({
// export default class Index extends Component {
const Book = () => {
const [markText, setmarkText] = useState();
const [isWeChat, setisWeChat] = useState(false);
const [book, setbook] = useState(window.localStorage.getItem("book"));
const [markText, setmarkText] = useState(book == 1 ? bookText : infoText);
const [isWeChat, setisWeChat] = useState(false);
const [show, setshow] = useState(false);
const [headers, setHeaders] = useState([]); // 存储所有 <h1> 的内容
const contentRef = useRef(null); // 用于获取渲染后的 DOM
useEffect(() => {
// window.localStorage.removeItem("book");
isWeChatFun();
}, []);
useEffect(() => {
if (contentRef.current) {
const h1Elements = contentRef.current.querySelectorAll("h1");
const h2Elements = contentRef.current.querySelectorAll("h2");
const h1Texts = Array.from(h1Elements).map((el) => el.textContent);
const h2Texts = Array.from(h2Elements).map((el) => el.textContent);
setHeaders(h1Texts);
// console.log("获取到的 H1 标题:"); // 控制台查看
console.log("获取到的 H1 标题:", h1Texts); // 控制台查看
console.log("获取到的 H2 标题:", h2Texts); // 控制台查看
}
}, [markText]); // 监听 HTML 内容变化
const handleJump = (text) => {
const h1Elements = contentRef.current.querySelectorAll("h1");
for (let h1 of h1Elements) {
if (h1.textContent.trim() === text.trim()) {
// if (h1.textContent === text) {
h1.scrollIntoView({ behavior: "smooth" });
break;
}
}
};
// const handleClick = (value) => {
// // 跳转到目的页面,在当前页面打开
// Taro.navigateTo({
@@ -111,18 +142,105 @@ const Book = () => {
};
return (
<View className="Book">
{/* <View className="book_left">1 </View> */}
<View
className="markdown-body" // 添加 GitHub Markdown 主题类
dangerouslySetInnerHTML={{
__html: marked(book == 1 ? bookText : infoText),
}}
></View>
{/* <View className="book_right"> 22</View> */}
<>
<View className="book_header_div"></View>
<View className="book_header">
<View
className="book_header_left"
onClick={() => {
Taro.redirectTo({
url: `/`,
});
// Taro.navigateBack({
// delta: 1, // 表示返回的页面数,默认是 1表示返回上一页
// });
}}
>
<AtIcon value="chevron-left"></AtIcon>
</View>
<View className="book_header_middle">{`📗 数字游民`}</View>
<View
className="book_header_right"
onClick={() => {
setshow(!show);
}}
>
<AtIcon value="bullet-list"></AtIcon>
</View>
</View>
<View className="Book">
<View
ref={contentRef}
className="markdown-body" // 添加 GitHub Markdown 主题类
dangerouslySetInnerHTML={{
// __html: marked(markText),
__html: marked(book == 1 ? bookText : infoText),
}}
></View>
{/* <View className="bottomDiv"></View> */}
</View>
<AtDrawer
className="book_AtDrawer"
show={show}
mask
items={headers}
onItemClick={(index) => {
handleJump(headers[index]);
}}
onClose={() => {
setshow(false);
}}
>
<View className="drawer-item"></View>
{/* <View className="drawer-item">如果items没有数据就会展示children</View> */}
{/* <View className="drawer-item">
这是自定义内容 <AtIcon value="home" size="20" />
</View> */}
</AtDrawer>
{/* 判断有没有wxid */}
{book !=1 ? (
<AtButton
type="primary"
size="normal"
className="joinSalon"
onClick={() => {
if (book == 1) {
return false;
} else {
if (!!isWeChat) {
// 19.8元
payh5("book", 1980);
} else {
window.location.href = `https://mp.weixin.qq.com/s/GBU3THKaXRRkdpZXH_18jw`;
}
}
}}
>
{`阅读更多`}
</AtButton>
) : <span style={{color:'green'}}>....</span>}
{/* <AtButton
type="primary"
size="normal"
className="joinSalon"
onClick={() => {
if (book == 1) {
return false;
} else {
if (!!isWeChat) {
// 198元
payh5("group", 29800);
} else {
window.location.href = `https://mp.weixin.qq.com/s/GBU3THKaXRRkdpZXH_18jw`;
}
}
}}
>
{`游民社群`}
</AtButton> */}
</View>
</>
);
};

View File

@@ -1,8 +1,609 @@
🚀 技术杠杆与变现
1⃣ PVE: 压榨硬件,超融合,虚拟机
2⃣ frp: 内网穿透
3⃣ Docker 与 K8S:容器化部署
4⃣ GPU:本地大模型,私有化部署
5⃣ OTG:边缘计算 npu 与机器视觉
# 前言
内容待更新,目录已上线
## 🚀 数字游民
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfqwff.jpg?imageSlim" title="" alt="fqwfqwff.jpg" width="333">
对于普通人而言,最好的杠杆依然是`媒体``代码`  
如今有了AIGC的加持  
以前创作的门槛,已经不再是`门槛`    
数字游民,翻译自`digital nomad`,指的是依靠依靠互联网获取收入,并且像游牧民族一样旅居各个地方的群体
## 目录
- 被动收入:YouTube运营
- 副业:wordpress建站
- 独立开发:sass业务
- 一人公司/分布式团队
- 展望与结束语
本书不是`教人赚钱`的指南,但作为参考,应该可以给你一些启发
持续更新中,未完待续
---
# 远程工作
大多数人成为数字游民,还是依赖一份旱涝保收的`远程工作`
然后经营自己的副业,直到成为主页
![2025-04-03-12-54-51-Hire a Freelance Developer for Programming Jobs _ Fiverr.png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-03-12-54-51-Hire%20a%20Freelance%20Developer%20for%20Programming%20Jobs%20_%20Fiverr.png?imageSlim)
以下是海外常用的远程工作平台
- [fiverr](https://go.fiverr.com/visit/?bta=1111508&brand=fiverrmarketplace)
- [upwork](https://www.upwork.com/)
- [remoteok](https://remoteok.com/)
英语和重要,必要的沟通,还是要行
## 谨防欺诈
![afafwff.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/afafwff.jpg?imageSlim)
很多工作机会,并不是真实的,平台也不一定能监管到位
从人力性价比来说,印度的更便宜,有原生的`语言和网络优势`,以及`汇率`
而菲律宾也是`呼叫中心`的核心外包国家
作为一名中国人,在很多业务上,并没有优势,很多活跃都是外贸采购人员
但平台可以帮助我们确认:才是才是需求高的`业务方向`
## 国内平台
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/wegwgweg.jpg?imageSlim" title="" alt="wegwgweg.jpg" width="383">
国内有很多XX社区,在做致力于数字游民的事业
但由于本土众所周知的原因
大多都是套了一层壳,本质还是`劳务中介``二房东`的生意
不是创始人不够努力,也不是技术和运营的问题,而是土壤天生不允许发芽
如果寻求远程,可以在某直聘`搜索职位时,加上远程`
有些`开发,客户,运营`是存在远程岗位的
话说,这是一个向企业和用户双方都收费的平台🤣...可以试试
---
# 被动收入:YouTube运营
你可以在 [nomadyt.com](https://nomadyt.com) 阅读,关于youtube运营的电子书
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-03-30-01-40-00-Youtube%E8%BF%90%E8%90%A5%E7%AC%94%E8%AE%B0.png?imageSlim" title="" alt="2025-03-30-01-40-00-Youtube运营笔记.png" width="189">
但是本书,会展示更多运营的细节
比如无人直播,除了`ffmpeg推流`,以及`obs开源软件`之外
如何使用`安卓开发板+采集卡`的方案,模拟移动端直播,权重更高,平台推荐,且防封
除此之外,例如使用`链式代理`,如何选择`静态住宅ip`,也是出海业务的基础
如果没有掌握,一切都是徒劳,会面临0播,限流,甚至封号
---
# wordpess建站
> 网站已死?网站永生
网站,在国内,似乎是一个很古老的词,因为它是互联网的下等公民
在移动互联网时代,被各种`小程序`或者`快应用`取代
最不济也是用`自研app`,圈地画牢,获取用户的数据
而web网站,或者H5,都是排除在生态之外,用户信任度也较低
> 但如果目光望向海外呢
各种当下火热的AI,都是`网页为先,支持pwa`
如果想要成为成为独立开发者,只需要接入stripe支付即可
各种独立站,电子商务,私域也让各种商家大赚特赚
> wordpress建站
![afwqfqwf.png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/afwqfqwf.png?imageSlim)
wordpress是基于php开发的开源建站程序,拥有最丰富的`主题和插件`生态
即便是小白,也能分分钟上线一个网站,可以是:
- 个人博客
- 企业官网
- woocommerce独立站
- 网校/电子书/论坛
- 等等
一夜之间上线网站,全球访问,是一件很简单的事情
如果想要盈利,最简单的就是接入`谷歌的广告`,自动化嵌入
## 一夜之间上线网站
> 购买域名
可以在 [ namesilo](https://www.namesilo.com/?rid=3bd4047mc) 购买域名,也就是类似`google.com`的网址
因为是海外服务商,所以不需要备案
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-15-14-Low-Cost%20Domain%20Names%20%26%20Hosting%20from%20%240.99%20_%20NameSilo.png?imageSlim" title="" alt="2025-04-02-08-15-14-Low-Cost Domain Names & Hosting from $0.99 _ NameSilo.png" width="480">
> 购买vps服务器
域名虽然是英文字母, 但是用户访问后,实际是`google.com==>8.8.8.8`,
dns会把网址解析到 服务器的默认`公网ip`地址
因为是海外的厂商,所以也不要备案
在 [vultr](https://www.vultr.com/?ref=8985003) 购买一个vps服务器,后,建议立即用一键脚本部署`宝塔面板`
自带wordpress安装程序
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-18-13-index.tsx%20-%20nomadro.com%20-%20Visual%20Studio%20Code.png?imageSlim" alt="2025-04-02-08-18-13-index.tsx - nomadro.com - Visual Studio Code.png" width="469">
## adsense赚美金
> wordpress插件: [google site kit](https://wordpress.org/plugins/google-site-kit/)
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/afqfqfqwf.jpg?imageSlim" alt="afqfqfqwf.jpg" width="466">
插件会自动帮你关联`google分析`,与`adsense账户`
当你点击申请后,官方会人工审核网站的`内容和流量`,一般2周,快的次日就有结果
## 拓展其他收益:affiliate
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-09-25-35-images.jpg.png?imageSlim" title="" alt="2025-04-02-09-25-35-images.jpg.png" width="457">
仅仅在wordpress自动放广告,如果不是站群,收益不会太多
ps: 站群:可以基于`k8s,docker`技术,自动批量建站
但大多数人,都是技术小白,远不到玩站群的层次,也没必要
在自己没核心业务:比如无职业资源`律师,医生,销售`也没有商品.产品等背景下
建议采用`affiliate佣金`模式,增加收入,别入
- amazon: 商品佣金 + kindle书籍
- vps服务器: [vultr](https://www.vultr.com/?ref=8985003) 和域名平台: [namesilo](https://www.namesilo.com/?rid=3bd4047mc)
- 金融:[ wise](https://wise.com/invite/amc/xiaoshuangh)钱包 和 [okx](https://okx.com/join/84999861)交易所
- 等等
affiliate marketing的好处是,推广的服务基本都是互联网平台
而且.平台/推广者/用户,三方收益
平台有新客户,新用户有优惠,推广者有提成
---
# 独立开发sass
> web优先,ios app其次
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfqwfqw.jpg?imageSlim" alt="fqwfqwfqw.jpg" width="323">
web只需要解决`登录``支付`2个核心问题,优势就太多了
- 几分钟上线
- 快速迭代更新
- 用户点击进入(短信/文章/聊天框)
大多数人,之所以选择iOS app, 是因为它的生态:
- `推送`,`全球分发`,`云数据`,`身份id认证``支付收款`
`下载`的成本很高,在测试用户是否具有粘性之前
用web先行测试是一种策略
## 数字游民CNA
如果你了解过数字游民,那么一定会知晓`nomadlist`这个网站
模仿它的特色,我正在尝试开发类似的网站,针对中文用户
目前仍然很简陋,但会持续迭代,可访问: [nomadcna](https://nomadcna.com/)
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-38-51-%E6%95%B0%E5%AD%97%E6%B8%B8%E6%B0%91CNA.png?imageSlim" title="" alt="2025-04-02-08-38-51-数字游民CNA.png" width="391">
## 技术栈
在nomadlist的创始人的`MAKER`一书中,作者用着`最古老的jquery和php以及sqlite数据库`,却开发了平均 40k$/m纯利润各种网站,包括 `AI 工具站/电子商务`,其数据都在X上实时更新
其实只需要5$/月的  [vultr](https://www.vultr.com/?ref=8985003) 服务器,就足以支撑业务
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-08-46-57-%40levelsio%20(%40levelsio)%20_%20X.png?imageSlim" title="" alt="2025-04-02-08-46-57-@levelsio (@levelsio) _ X.png" width="427">
本人比较推荐基于js的react生态,它可以满足
- react开发web网站
- chrome插件
- electron开发pc客户端软件
- react native开发iOS app
当然,如果你想开发一个完整的应用,会涉及很多,体验/功能 比如`用户无法感知`
- 埋点:分析/错误监控
- 多语言 (翻译)
- 加固混淆 (防止逆向渗透)
- pwa (将web进行app化)
- wasm,three.js,webVR (边缘计算能力与3D可视化)
思虑越多,越难以行动,完美主义很致命
即便是一个`hello world`,当它被各个世界的用户,可点击访问时
你就成功了一半,因为它以为,除了`自媒体作品`之外,你有了`创造产品`的能力
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfwqfqwf.png?imageSlim" title="" alt="fqwfwqfqwf.png" width="390">
## 收益: admob广告与内购
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/wqfqwfqwf.png?imageSlim" title="" alt="wqfqwfqwf.png" width="400">
以iOS app为例子,收益的方式有很多
- admob广告
- 购买下载 (一次性买断)
- 内购:订阅制 (月付)
如果不想向用户收费,可以直接接入admob广告,也是google 广告
进一步可以采取pro升级模式,用户付费后,免广告,且提供高级功能
在国内,用户付费意愿较低
如果用户基础大,也可以采取`开屏广告``广告位`形式获取获取企业厂商赞助
最理想的模式的是`订阅制`,基于`1000个粉丝`的理论,开发者就可以实现客观的收入了
但风险也是对等的
一旦成功,就会无数团队模仿,利用资金/资源/投放广告,来碾压开发者
如果建立护城河,是一个难题
---
# 地理套利
数字游民最本质的优势在于`地理套利`
![qwfqfwqf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwfqfwqf.jpg?imageSlim)
更详细的优势如下:
- 地理优势:东亚气候温暖,风景唯美,适合旅居
- 生活成本:三四线城市消费水平低,物价便宜
- 汇率差:赚美元,换算成泰铢可以达到1:30,人民币1:7左右
- 当地特产/文化:比如泰国旅游业,印度仿制药,香港金融等等
- 时间差:淡季旅行性价比高,错峰出行,看见不一样的文化
即便是每月1000$/m的收益,也可以过得很舒服惬意,也拥有无限的可能性
## 大理与乌托邦
在中国境内,`大理`是所有裸辞打工人的第一站
逃离钢筋水泥,回归自然田园
![dwqdqwf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/dwqdqwf.jpg?imageSlim)
房租编译,风景怡人,各个XX社区,遍地开花
很多东南亚的客户,也来这里旅行,通过 [ctrip](https://www.trip.com/nomadcna?Allianceid=6238114&SID=193455508&trip_sub1=&trip_sub3=D2700672) 订票,也就是某程英文版
其实`惠州`也值得一试,离广东的`深圳/广州`一线城市距离近
![wgwggg.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/wgwggg.jpg?imageSlim)
房价/物价便宜,气候温暖
乘坐高铁,到附近省份也方便
至于`鹤岗`,个人认为纯粹不值得,生活在南方的人,无法理解北方的酷寒
不知道鹅毛大雪几米深的恐怖,也不知道暖气停供一晚,如何撑得过零下几十度
连救护车开到了医院大门,即便轮胎上了防滑链,都有没法开进去的情况
需要男护士/男医生踩着雪抬进去
当选择一个环境的时候,有时候,气候,是保证一个人生命安全的关键
## 泰国:曼谷与清迈
据nomadlist统计报告,泰国`曼谷`是最受欢迎的数字游民聚集地
![2025-04-03-01-37-27-Nomads.com - Best Places to Live for Digital Nomads (formerly Nomad List).png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-03-01-37-27-Nomads.com%20-%20Best%20Places%20to%20Live%20for%20Digital%20Nomads%20(formerly%20Nomad%20List).png?imageSlim)
其次是`清迈`
而且该国对数字游民,也比较友好,出台了很多`针对性的政策`
但不得不提醒的是,泰国也被列为最危险的国家
- 不禁枪支
- 风月场所合法,比如芭提雅
- 周边国家,存在贩毒与电诈
- 存在人口贩卖和地下奴隶市场
当一个博主从`印度`或者`泰国`回来,用"很安全,我不就是好好的吗?"来解答你的疑惑时
这个人要么愚蠢,要么下贱
`幸存者偏差`的意思是,只有或者的人,才有机会开口说话
那么遭遇危险的人,已无法发生
---
# 多元杠杆
成为一个数字游民,就必须让自己的过程,产生多元的杠杆价值,放大收益
![qfqwffwq.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qfqwffwq.jpg?imageSlim)
这里有个框架,3个关键词,可以套用在任何事物上,如下
- `直播`live
- `社群`互动
- `录制`存档
在框架的基础,我也会解释`副产品`的优势
现在我们举个栗子
假设你是一个开发者,`正在coding编程`,这个如何实现多元化呢?
![QWQWFQWF.png](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/QWQWFQWF.png?imageSlim)
链路如下:
1. 实时直播,手机=>拍着正在敲键盘的你
2. 交流互动,针对观众的提问(看副屏),进行回答,让业务有实时的反馈
3. OBS后台录屏 (副产品:技术视频教程)
4. 编码本身 (软件产品,ios app,观众可以成为种子用户)
5. Api互动: 根据打赏的礼物,控制`显示器/esp32`进行趣味玩法
6. 橱窗带货:比如桌面炫酷/萌萌的摆件
总结一下,实时编码,不仅让业务有`即时反馈`,也会产生很多`副产品`
增加了收益渠道
## RPA自动化
![qwfqwfqwf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwfqwfqwf.jpg?imageSlim)
前面我们提到了直播,可以实现多元化杠杆,但,它是一个实时同步的过程
那么有没有24小时无人值守,自动化的方案呢?
有,比如
- 基于ffmmpeg/obs直播推流 (录播素材)
- 社媒mitm爬虫:数据分析/自动点赞评论
- 发卡平台: 虚拟资源,卡密网盘发货
- N8N: 平台与流程自动化,积木一样串联工作流
- 群机器人bot: telegram和微信群
- 等等
缺点是最技术的要求较高
---
# 分布式团队
成为一个数字游民,并不意味着一个人完成所有的项目过程
参与或者成立一个分布式团队,进行远程办公,也是必要的
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/fqwfqfqwf.jpg?imageSlim" title="" alt="fqwfqfqwf.jpg" width="397">
可以雇佣兼职/外包,或者让用户产生内容 [UGC]
接下来我会推荐`开源`的远程工具
1. 任务看板:`planka`
2. `eliment `(基于martix斜体的聊天工具)
3. 文档wiki/知识库: `docmost`
使用开源的好处在于:`低成本,保护隐私,完全控制,可拓展`
> 任务看板planka
以任务卡片的形式,给成员安排任务
设置子任务/完成时间/上传附件/以及评论@
所有进度一目了然
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-11-11-29-Sample%20Project%20_%20Sample%20Board.png?imageSlim" title="" alt="2025-04-02-11-11-29-Sample Project _ Sample Board.png" width="463">
> eliment
eleliment只是基于martrix协议的一个客户端
目前支持PC/mac/Android/ios/linux全平台
可以聊天/视频语音通话
后台可以进行消息统计/分析,防止商业机密泄露
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-11-14-33-Element%20_%20Secure%20collaboration%20and%20messaging.png?imageSlim" title="" alt="2025-04-02-11-14-33-Element _ Secure collaboration and messaging.png" width="469">
> wiki文档: docmost
它内置编辑器支持 Mermaid、Draw.io 和 Excalidraw 图表工具
可以将团队的文档整理输出
方便成员学习,分享
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwdqwdqwd.png?imageSlim" title="" alt="qwdqwdqwd.png" width="506">
> 如何搭建?
购买  [vultr](https://www.vultr.com/?ref=8985003) 服务器,按照官方提供的`docker镜像`,一键安装
---
# 一人公司
> 数字游民与一人公司区别很大
![qwqwfqwf.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/qwqwfqwf.jpg?imageSlim)
数字游民一般是以`远程工作`为主,本质还是偶雇佣关系,把工位换成了远程旅居
也进行一些`副业`
但一人公司,更偏向于`创业`
经营`自媒体/独立开发/电商`等收益上限比较高的互联网业务
## 基础设备
一人公司,也意味着硬件和软件资产的流程化,比如
- windows办公主机
- 安卓手机:产品测试/社媒运营
- linux服务器:应用部署
<img title="" src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/1000029229.jpg?imageSlim" alt="1000029229.jpg" width="339">
图示是作者用mini主机+开发板打造的远程操作系统
可以随时随地,`远控/群控`
利用[vultr](https://www.vultr.com/?ref=8985003) 服务器,设置`frp内网穿透`即可,或者`wireguard点对点VPN异地组网`
## 开源部署
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-02-11-46-55-Uptime%20Kuma%20Status.png?imageSlim" title="" alt="2025-04-02-11-46-55-Uptime Kuma Status.png" width="395">
经营业务,必须准备大量的基础服务来支撑自动化运营,比如
- erp系统: ERPNext
- scrm客服:chatwoot
- 邮件营销:邮件营销
- 项目开发: `禅道`(项目管理) /` gitlab`(代码仓库)/`YAPI`接口文档
- 运维CI/CD:jenkins自动部署/`rancher`容器管理
- 埋点监控: `Sentry`错误监控/`plausible`统计/`Uptime Kuma`服务状态
- 流程自动化`N8N`
- 等等
都是开源免费
- 缺点:需要自己部署,维护
- 优点:省下数以万计的费用
---
# 展望与结束语
![efqwfegwegweg.jpg](https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/efqwfegwegweg.jpg?imageSlim)
在以上内容,并没有提及2个领域:`跨境电商``加密货币`
前者偏向于实体,成本高,链路复杂,市场因政策变化频繁
后者遇到投机主义,一不小心就容易倾家荡产
换个思路,不做卖家,可以做amazon affiliate, 买入闲置,用涨跌来跨越大周期,穿越牛熊
原本只打算写2个小册
- [youtube运营笔记](https://nomadyt.com/) (free)
- [从零开始,成为数字游民](https://nomadro.com/) (试读80% +pay)
后续会酌情增加
- [一人公司](https://nomadvps.com/) (预订)
最初的是打算写技术书籍的~~
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/2025-04-03-02-14-22-AI%20%E4%B8%8E%20RPA%E8%87%AA%E5%8A%A8%E5%8C%96.png?imageSlim" title="" alt="2025-04-03-02-14-22-AI 与 RPA自动化.png" width="375">
> 不管是生意还是创业,第一原则,先找到`买家`
在某个领域里,你发现了需求,或者有人为你的创造买单,就有收益,然后放大
如果没有调研市场
就默默地闭门造车,结局会很惨
持续更新中.....

View File

@@ -1,3 +1,3 @@
export default {
navigationBarTitleText: 'AI 与 RPA自动化'
navigationBarTitleText: '数字游民'
}

View File

@@ -32,7 +32,7 @@ import emoji from "../../images/emoji.png";
import phone from "../../images/phone.png";
// import robot from "../../images/robot.png";
import nomad from "../../images/nomad.png";
import book from "../../images/book.png";
// import book from "../../images/book.png";
import qrcode from "../../images/qrcode.png";
import meetup from "../../images/meetup.jpg";
@@ -52,9 +52,9 @@ import nomadro from "../../images/nomadro.png";
import code from "../../images/code.svg";
import laptop from "../../images/laptop.svg";
import travel from "../../images/travel.svg";
import group from "../../images/group.svg";
import book from "../../images/book.svg";
import youtubesvg from "../../images/youtube.svg";
// export default class Index extends Component {
const Index = () => {
const [current, setcurrent] = useState(0);
@@ -188,7 +188,7 @@ const Index = () => {
window.localStorage.removeItem("userInfo");
window.localStorage.removeItem("openid");
window.localStorage.removeItem("wxid");
window.location.href = "http://nomad.hackrobot.cn";
window.location.href = "https://nomadro.com";
} else {
// 有完整的用户信息userInfo
setuserInfo(res?.data?.userInfo);
@@ -204,12 +204,12 @@ const Index = () => {
},
complete: function (finy) {
// tg消息通知
tgMessage();
// tgMessage();
},
});
} else {
// tg消息通知
tgMessage();
// tgMessage();
}
return wxid;
};
@@ -271,6 +271,7 @@ const Index = () => {
// 入群申请
useEffect(() => {
let inwechat = isWeChatFun();
if (inwechat) {
// 获取openId
@@ -355,16 +356,54 @@ const Index = () => {
<View className="index_book_left">
<View className="left_title">从零开始,成为数字游民</View>
{/* <View className="left_text">手册3</View> */}
<View className="left_mobile">
{/* <View className="left_mobile">
<Text>🚀 边旅行转赚钱</Text>
<Text>1⃣ 杠杆:媒体与代码</Text>
<Text>2⃣ 出海:地理套利</Text>
<Text>3⃣ 即时业务:一夜之间上线网站</Text>
<Text>4⃣ homelab:你的全球总部</Text>
<Text>5⃣ 远程团队:分布式协作</Text>
{/* <Text>5⃣ -----------------</Text> */}
<Text>5⃣ -----------------</Text>
{/* <Text>🔥 一起实践,交流</Text> */}
<Text>🔥 一起实践,交流</Text>
</View> */}
{/* 卡片 */}
<View className="card">
<View className="cardItem">
<View className="cardItem_left">
<Image
className="cardItem_left_img youtubeSvg"
src={travel}
></Image>
</View>
<View className="cardItem_right">
<View className="cardItem_rightUp">地理套利</View>
<View className="cardItem_rightDown">
边旅行边赚钱,无国界
</View>
</View>
</View>
<View className="cardItem">
<View className="cardItem_left">
<Image className="cardItem_left_img" src={laptop}></Image>
</View>
<View className="cardItem_right">
<View className="cardItem_rightUp">远程办公</View>
<View className="cardItem_rightDown">
自由职业,分布式团队
</View>
</View>
</View>
<View className="cardItem">
<View className="cardItem_left">
<Image className="cardItem_left_img" src={group}></Image>
</View>
<View className="cardItem_right">
<View className="cardItem_rightUp">游民社区</View>
<View className="cardItem_rightDown">信息交流,快人一步</View>
</View>
</View>
</View>
<View className="left_btn ">
@@ -383,6 +422,7 @@ const Index = () => {
</View>
<View className="index_book_img">
<Image
className="book_img"
// style="width: 40%px;height:100%;background: #fff;"
src={nomadro}
/>
@@ -391,23 +431,6 @@ const Index = () => {
<View className="svgItems">
<View className="svgItem">
{" "}
<View className="bookImg">
<Image
// style="width: 40%px;height:100%;background: #fff;"
// src={book}
src={code}
/>
<View className="bookImg_text">独立开发</View>
</View>
<View className="bookImg">
<Image
// style="width: 40%px;height:100%;background: #fff;"
// src={book}
src={travel}
/>
<View className="bookImg_text">旅行</View>
</View>
<View className="bookImg">
<Image
// style="width: 40%px;height:100%;background: #fff;"
@@ -416,14 +439,30 @@ const Index = () => {
/>
<View className="bookImg_text">远程办公</View>
</View>
<View className="bookImg">
<Image
// style="width: 40%px;height:100%;background: #fff;"
// src={book}
src={travel}
/>
<View className="bookImg_text">地理套利</View>
</View>
<View className="bookImg">
<Image
// style="width: 40%px;height:100%;background: #fff;"
// src={book}
src={code}
/>
<View className="bookImg_text">独立开发</View>
</View>
</View>
</View>
{/* <View className="footer">
<View>Copyright © 2025 </View>
</View> */}
</View>
{/* <View className="footer_div"></View> */}
<View className="footer">
{/* <View>《Youtube运营笔记》</View> */}
<View>Copyright © 2025 </View>
</View>
</>
);
};

View File

@@ -1,12 +1,14 @@
.index {
// background-color: #002329;
// width: 100vw;
// height: 100vh;
// padding-top: 80px;
height: 100vh;
// height: 100%;
// padding-left: 100px;
// padding-right: 100px;
// background-color: yellow;
.index-book {
margin-top: 80px;
// margin-top: 80px;
// width: 100%;
min-height: 300px;
// padding: 20px;
@@ -24,7 +26,7 @@
flex-direction: column;
align-items: center;
justify-content: space-around;
// background-color: rgb(208, 255, 0);
// background-color: rgb(208, 255, 0);
.left_title {
font-size: 50px;
font-weight: 700;
@@ -42,18 +44,105 @@
// align-items: center;
// justify-content: space-around;
// background-color: yellow;
}
.card {
margin-top: 40px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.cardItem {
padding: 20px;
// padding-top: 20px;
width: 500px;
// height: 300px;
margin-bottom: 20px;
display: flex;
flex-direction: row;
background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity, 1));
// background-color: yellow;
background-color: #f0f5ff;
border-radius: 20px;
// align-items: center;
// justify-content: center;
.cardItem_left {
// width: 100px;
// height: 100%;
// background-color: #69b1ff;
display: flex;
flex-direction: column;
// align-items: center;
// justify-content: center;
margin-right: 40px;
.cardItem_left_img {
width: 80px;
height: 80px;
}
.youtubeSvg {
position: relative;
top: -5px;
}
}
.cardItem_right {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
// background-color: red;
.cardItem_rightUp {
width: 100%;
height: 80px;
// background-color: aquamarine;
display: flex;
flex-direction: row;
font-weight: 700;
font-size: 35px;
// align-items: center;
// justify-content: center;
}
.cardItem_rightDown {
width: 100%;
// height: 200px;
flex: 1;
// background-color: red;
display: flex;
flex-direction: row;
// align-items: center;
// justify-content: center;
font-size: 30px;
flex-wrap: wrap;
color: #262626;
}
}
.left_mobile {
margin-top: 20px;
// width: 100%;
font-size: 30px;
display: flex;
flex-direction: column;
// background-color: aqua;
// align-items: center;
// justify-content: space-around;
// background-color: yellow;
}
}
}
.left_btn {
margin-top: 40px;
// background-color: aqua;
// display: none;
.startRead {
width: 200px;
width: 500px;
}
}
}
.index_book_img {
margin-top: 80px;
width: 400px;
height: 400px;
}
@@ -73,20 +162,37 @@
}
.index_btn {
// background-color: yellow;
// margin-top: 40px;
.startRead {
width: 200px;
}
}
.footer {
position: absolute;
// position: fixed;
bottom: 0px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 60px;
// margin-bottom: 20px;
font-size: 14px;
// background-color: yellow;
}
}
@media (min-width: 1536px) {
.index {
padding: 100px;
// padding: 100px;
// height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
// background-color: aqua;
position: relative;
.index-book {
width: 100%;
@@ -112,6 +218,9 @@
.left_mobile {
display: none;
}
.card {
display: none;
}
.left_btn {
display: flex;
@@ -126,7 +235,12 @@
flex-direction: column;
align-items: center;
justify-content: center;
// height: 100%;
// background-color: yellow;
.book_img{
margin-bottom: 40px;
}
}
}
@@ -172,19 +286,25 @@
display: none;
}
}
.footer {
position: absolute;
// position: fixed;
bottom: 0px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 60px;
// margin-bottom: 20px;
font-size: 14px;
// background-color: yellow;
}
}
}
.footer {
position: absolute;
bottom: 0px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.footer_div {
width: 100%;
height: 60px;
// margin-bottom: 20px;
font-size: 14px;
// background-color: yellow;
}

8294
yarn.lock

File diff suppressed because it is too large Load Diff