工具入门 · 编程栈

Akke 是用哪几种语言搭起来的

同事们口中常蹦出 Next.js、Node.js、TypeScript、Python 这几个名字。它们听起来都很「程序员」,其实可以一句话说清:你打开 Akke 获客看板的那一刻,背后有几种语言在接力干活——一种负责你看到的界面,一种当发动机让它们跑起来,还有一种专门出外勤去抖音抓评论、做 AI 分析。这篇就用「一条请求的旅程」把它们串起来,不写代码也能看懂同事每天在改什么。

篇幅 6 章 · 约 10 分钟 受众 全员 · 不需要写代码也能看懂 主线 以 Akke 为例 · 一条请求从界面到外勤的完整旅程

先说这篇和 Akke 的关系,免得你觉得「跟我有什么关系」。

Akke 做的事,一句话:帮全屋定制的门店,从抖音评论区里自动找到想装修的潜在客户,再用 AI 一路把客户养到有成交意向。你在后台看到的获客看板、客户旅程时间轴、一条条被抓回来的评论——这些「能看、能点、会自己动」的东西,没有一样是凭空来的,全是用编程语言一行行搭出来的。而这些语言,就是 Akke 这栋楼的「建材」。

看懂这篇 = 看懂同事在忙什么 · 以后听到「我在改 Next.js 那块」「这个走 Python worker」「TypeScript 报错了」,你不用懂代码,也能立刻知道他大概在动产品的哪个部位、那部分负责什么。这就是这篇的全部目的。

更妙的是,这四个名字其实分属三种不同的「物种」——这是新人最容易搞混的地方,我们先花一分钟把它们摆清楚。

四个名字,三种物种

很多人第一次听会以为它们是「四种并列的东西」,其实不是。打个装修的比方就懂了:

语言 · 主力建材
TYPESCRIPT
写大部分逻辑用的语言

Akke 的界面和大部分后台逻辑都用它写。它是 JavaScript 的「严格版」——多了一层「类型」检查,相当于施工时先按图纸核对尺寸,装错了当场报错,而不是上线后才塌。

框架 · 施工方案
NEXT.JS
搭网站的一整套现成方案

不是语言,是一套用 TypeScript 搭网站的「成品施工方案」。它把「页面长什么样」和「后台接口」打包在一起,让一个人也能又快又稳地盖出完整网站。Akke 的整个 Web 端就是它。

运行时 · 发动机
NODE.JS
让 JS/TS 跑起来的引擎

也不是语言,是一台发动机。TypeScript / JavaScript 写出来的代码,本身只是「图纸」,要靠 Node.js 这台引擎才能真正运转。Akke 的网站和那些定时任务,底下转的都是它。

语言 · 外勤专用
PYTHON
干重活、做 AI 的另一种语言

另一种独立语言,Akke 用它干最脏最重的活:打开真浏览器去抖音一条条抓评论、再让 AI 判断「这个人是不是想装修」。爬虫和 AI 这两块,Python 的现成工具最齐。

一句话分清 · TypeScript / Python语言(用什么话写); Next.js框架(盖楼的现成方案); Node.js运行时 / 引擎(让代码真正跑起来)。语言 ≠ 框架 ≠ 引擎,这三层别再混了。

摆清之后,我们就跟着一条请求出发——看一次「打开看板」背后,它们是怎么一棒接一棒的。

旅程从你打开浏览器、输入 Akke 后台网址那一刻开始。屏幕上出现的获客看板、能点的按钮、一条条客户旅程——这整层「门面」,归 Next.js 管。

用开店来比,Next.js 就是餐厅的「前厅」:客人进门看到的装修、菜单、服务员、点单的平板,全在这一层。它有两个对新人最关键的本事:

🖥️
画出界面
看板长什么样、数据怎么排版、点了按钮有什么反应,都由它定义。
🔌
顺手当后端
它还能写「接口」——界面要数据时,向它要,它去后台取了再端回来。前后端一套搞定。
天生就快
页面在服务器先拼好再送到你眼前,打开快、对搜索引擎也友好。

所以同事说「我在改 Next.js 那块」,八成是在动你能看到、能点的那些东西:看板加一个筛选、旅程页多显示一列、某个按钮的逻辑。它就是产品的「脸」。

界面长什么样(示意,非真实代码)TSX / TypeScript
// 一段「界面」大致就长这样:描述「该显示什么」
function 客户卡片(lead) {
  return <div>
    <h3>{lead.昵称}</h3>
    <span>意向分:{lead.意向分}</span>
  </div>
}
记住第一站 · Next.js = 你能看见、能点的那一层(前厅)。它用 TypeScript 写,还能顺手把简单的后台接口也包了。
02

STOP TWO · THE ENGINE THAT NEVER SLEEPS

第二站 · Node.js —— 到点自动干活的发动机

第一站说的界面,自己是不会动的——它得有台发动机带着跑。这台发动机就是 Node.js。Next.js 的后台逻辑、所有接口,底下转的都是它。

但 Node.js 对 Akke 最关键的角色,是「不用人盯、到点自己干活」。获客这件事不能等人来点一下才动一下——它必须 7×24 自己转。于是 Akke 配了几十个「定时任务」(行话叫 Cron),全靠 Node.js 在后台按点执行:

🔥
整点抓热门
每到整点,自动去一批重点账号下抓最新评论。
🕸️
隔几小时抓全量
把更大范围的账号轮一遍,不漏掉潜在客户。
🎯
定时打意向分
让 AI 给新抓到的评论打分:谁更可能想装修,排到前面。
💬
预生成开场白
提前替高意向客户备好打招呼的话,真要触达时不用现等。
🩺
健康巡检
定时自查「采集还正常吗」,出问题早报警。
📊
定时推日报
按点把抓取量、意向数等汇总成一张卡片推到群里。

用开店比,Node.js 就是「后厨的电+灶」:前厅再漂亮,没有后厨持续供能、按点出餐,店是开不起来的。「这个走 Node 定时任务」,说的就是这种不用人管、到点自动执行的活。

记住第二站 · Node.js = 让代码真正跑起来的发动机,尤其负责 Akke 那几十个「到点自动干活」的定时任务。它和 Next.js 不是并列关系——Next.js 是跑在 Node.js 上的。
顺带辨析一个易混点 · 定时任务 / 事件触发 / 常驻进程这几种「自动干活」的方式怎么选,单独有一篇:Cron / Routine / Schedule 辨析 →
03

STOP THREE · THE LANGUAGE BEHIND BOTH

插一句 · 前两站其实是同一种语言:TypeScript

这里要点破一件事:第一站的界面、第二站的定时任务,用的是同一种语言写的——TypeScript。Next.js 是「方案」、Node.js 是「引擎」,而真正一行行敲出来的「话」,绝大多数是 TypeScript。它才是 Akke 的主力语言

TypeScript 是什么?JavaScript 加了一层「安全护栏」

网页世界最通用的语言叫 JavaScript,几乎所有网站都用它。它灵活,但有个毛病:太随便——你把「年龄」填成一段文字,它也不拦你,等到真出错才崩,而且常常是上线后用户那边才崩。

TypeScript 就是给 JavaScript 加了一层「类型护栏」:写代码时就规定好「这个位置只能放数字」「那个必须是文字」。一旦放错,当场红线报错,根本到不了上线。代价是写的时候要多说明几句,换来的是少一大半「上线才发现」的事故。

JavaScript

不规定类型,写得快、也容易写错。装错尺寸不拦你,等塌了才知道。适合小快灵的脚本。

TypeScript

写之前先核对「图纸尺寸」,装错当场报错。多写几笔说明,换来更稳。Akke 这种要长期维护的产品,选它。

「类型护栏」长什么样(示意)TypeScript
// 先讲清楚「一条客户线索」该有哪些字段、各是什么类型
type Lead = {
  昵称: string;   // 必须是文字
  意向分: number;  // 必须是数字,填成文字当场报错
}
记住第三站 · TypeScript = 更严谨的 JavaScript,是 Akke 写界面和定时任务的主力语言。同事说「TypeScript 报错了」,往往是好事——是那层护栏在上线前帮我们拦了一个坑。
04

STOP FOUR · THE FIELD AGENT

第四站 · Python —— 出外勤、干重活、做 AI

到这里有件事前三站干不了:真的去抖音,一条条把评论抓回来。这活儿又脏又重——要打开一个真的浏览器、模拟人去翻页、绕过平台的反爬,还得让 AI 判断每条评论背后的人值不值得跟进。Akke 把它单独外包给一支「外勤队」,用的语言是 Python

为什么这块换成 Python,而不是继续用 TypeScript?因为爬虫和 AI 这两个领域,Python 的现成工具最成熟、最齐全,等于「干这行的专业装备都在它那」:

🕹️
操控真浏览器
用 Playwright 这类工具开一个真浏览器,像真人一样翻评论区。
🧠
对接 AI 分析
把评论丢给大模型,判断意向、生成话术,Python 生态最顺手。
🧰
数据处理强
抓回来的大量文本,清洗、整理、打标签都方便。

而且这支外勤队不住在网站那台机器上,是单独跑在一个叫 Fly.io 的地方。原因很实在:抓抖音需要一直开着浏览器、长时间运行,这种「重而常驻」的活,不适合塞进管门面的那台轻量服务器——各干各擅长的,互不拖累

网站这边(TS / Node)

响应要快、用完即走的轻活:出页面、应答接口、跑短短的定时任务。

vs

外勤这边(Python / Fly.io)

又慢又重、要一直开着的活:挂着浏览器抓评论、跑 AI 分析。放单独的机器,专事专办。

记住第四站 · Python = Akke 的「外勤 + AI」专用语言,跑在单独的 Fly.io 机器上,负责最脏最重的抓评论与意向分析。「这个走 Python worker」说的就是这支外勤队在出工。
05

STOP FIVE · THE FULL RELAY

合起来看 · 一条请求的完整旅程

把四站连起来,就是 Akke 从「发现一个客户」到「你在看板上看到他」的完整接力。注意每一棒交接,靠的都是中间那本「共享账本」——数据库。

Node.js 定时器到点了,发动机自动喊一声:「该去抓评论了。」把一批要抓的账号排进队列。
Python 外勤Fly.io 上的外勤队接活,打开真浏览器去抖音一条条抓评论,再交给 AI 判断意向,把结果写进数据库
数据库所有抓到的评论、意向分、客户状态都存在这——它是各方交接的「公共信箱」
Next.js 界面你打开后台,Next.js 从数据库取出最新数据,拼成看板和客户旅程,端到你眼前

顺带认识第五种、也是最低调的一种语言——SQL。上面每次「写进数据库 / 从数据库取」,背后说的都是 SQL,它是专门用来跟数据库对话的语言(「把意向分大于 80 的客户给我」就是一句 SQL)。它不抛头露面,却是这本「公共账本」的官方语言。想入门可看 SQL 与 Python 入门 →

看懂这张图 · 四种语言不是各干各的,而是一棒接一棒:Node 发令 → Python 出外勤 → 数据库存档 → Next.js 呈现给你。任何一棒卡住,看板上就会「少了点东西」——这也是同事排查问题时在四站之间来回看的原因。
06

SECTION SIX · TAKEAWAY

一页速查,装进脑子

不用记技术细节。记住「谁是谁、管哪一段」就够了:

名字是什么在 Akke 里管哪段
TypeScript语言(更严谨的 JavaScript)主力建材:界面 + 大部分后台逻辑都用它写
Next.js框架(搭网站的现成方案)前厅:你看到、能点的整个 Web 界面与接口
Node.js运行时(发动机)带着网站和几十个定时任务跑起来
Python语言(爬虫 / AI 专长)外勤队:去抖音抓评论 + AI 意向分析(跑在 Fly.io)
SQL语言(跟数据库对话)那本「公共账本」的官方语言,各方靠它交接
TypeScript 写脸、Node 当发动机、Python 出外勤
四种语言一棒接一棒,才有你看到的那块获客看板。
下次再听到这些词,你已经知道 · 「改 Next.js」= 动你能看到的界面; 「走 Node 定时任务」= 到点自动干的活; 「走 Python worker」= 外勤抓评论 / 跑 AI; 「TypeScript 报错」= 上线前那层护栏拦了个坑。