joel-writing-style
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseJoel's Writing Style Guide
Joel写作风格指南
Joel writes like he talks — direct, warm, profane when it serves the point, and always in service of helping someone. His blog is a digital garden, not a content marketing operation. Posts range from 50-word observations to 4,000-word deep dives. Not everything is polished. That's by design.
This guide is derived from analyzing 127 posts across joelhooks.com (2012–2026).
For curated voice examples from the corpus, see references/voice-examples.md.
Joel的写作就像他说话一样——直接、亲切,在需要时会使用粗口,始终以帮助他人为目的。他的博客是一座数字花园,而非内容营销阵地。文章篇幅从50字的观察随笔到4000字的深度剖析不等。并非所有内容都经过精雕细琢,这是刻意为之的设计。
本指南是通过分析joelhooks.com(2012–2026)上的127篇文章提炼而成。
如需语料库中的精选语气示例,请查看references/voice-examples.md。
Core Voice Rules
核心语气规则
1. Write conversationally in first person
1. 用第一人称口语化写作
Address the reader as "you." Use "I" and "we" freely. Write like you're explaining something to a smart friend over coffee — not like you're writing a blog post.
- Contractions always: it's, doesn't, I've, they're, we've, can't, won't
- Never stilted: "one might consider" → "you might try"
- No "Dear reader" or "In this post I will" throat-clearing
以“你”称呼读者,自由使用“我”和“我们”。就像在咖啡馆向聪明的朋友解释事情一样写作——不要像写博客文章那样生硬。
- 始终使用缩写:it's、doesn't、I've、they're、we've、can't、won't
- 避免生硬表达:将“one might consider”改为“you might try”
- 不要使用“亲爱的读者”或“在本文中我将……”这类开场白
2. Strategic profanity is texture, not shock
2. 有策略地使用粗口是为了增添质感,而非制造冲击
Joel uses "fuck," "shit," "bullshit," "damn," and "af" naturally when they serve emphasis. Average 3–5 instances per substantive post. They land because they're infrequent enough to carry weight.
When to use it:
- Emphasis on a point: "I'm convinced that paginated posted sorted chronologically fuckin' sucks."
- Dismissing bad ideas: "No 'growth hacks' or other bullshit involved"
- Raw honesty: "I'm a shit PM."
- Celebration: "holy shit, feels good."
When NOT to use it:
- Never in headlines or H2s (rare exception: "Just Fucking Do It" as a deliberate title)
- Never gratuitously — if removing it doesn't weaken the sentence, remove it
- Never to be edgy — it should feel natural, like breathing
Joel会自然地使用“fuck”“shit”“bullshit”“damn”和“af”来加强语气,每篇有实质内容的文章平均使用3-5次。这些粗口之所以有效,是因为它们的使用频率足够低,能起到强调作用。
使用场景:
- 强调观点:“我坚信按时间排序的分页文章fucking糟糕透了。”
- 驳斥糟糕的想法:“不涉及任何‘增长黑客’或其他bullshit”
- 坦诚表达:“我是个shit产品经理。”
- 表达喜悦:“holy shit,太爽了。”
禁用场景:
- 绝不在标题或二级标题中使用(极少数例外:故意使用“Just Fucking Do It”作为标题)
- 绝不滥用:如果去掉它不会削弱句子的表达力,就删掉
- 绝不只是为了显得叛逆:使用时应该自然,就像呼吸一样
3. Short paragraphs, punchy rhythm
3. 短段落,紧凑节奏
Most paragraphs are 1–3 sentences. Many are single-sentence paragraphs for emphasis. Alternate short and long sentences to create rhythm.
The pattern: Short. Short. Longer sentence that develops the idea with some texture and detail. Short punch.
This creates a reading experience that pulls you down the page.
大多数段落为1-3句话。许多单句段落是为了强调。长短句交替使用以营造节奏。
**模式:**短句。短句。较长的句子,补充细节和质感来深化观点。简短有力的收尾。
这种方式能让读者流畅地往下阅读。
4. Bold for inline emphasis, not decoration
4. 粗体用于行内强调,而非装饰
Use bold to punch key phrases within sentences. Not for headers-within-paragraphs. Not for every other word.
- ✅ "We provide instructors with a world class highly skilled production team that they don't have to fuckin manage."
- ✅ "If it's negotiable, you'll negotiate your way out."
- ❌ Bolding entire sentences or paragraphs
- ❌ Using bold as a substitute for good writing
使用粗体突出句子中的关键短语。不要用它来代替段落内的标题,也不要每个词都加粗。
- ✅ “我们为讲师提供一支世界级的高技能制作团队,他们完全不用fuckin去管理。”
- ✅ “如果可以协商,你会想办法摆脱它。”
- ❌ 给整个句子或段落加粗
- ❌ 用粗体代替优质的写作
5. Emoji as warmth, not decoration
5. 表情符号用于增添温度,而非装饰
Joel uses emoji sparingly — ❤️ 🤯 😅 😂 🔥 🥰 — often at paragraph endings. They convey genuine emotion. Never more than 2–3 per post.
- ✅ "Thanks to Marie Poulin for this idea ❤️"
- ✅ "That's when I started working on egghead.io which is what I've been doing for 6 years. 🔥"
- ❌ Emoji in every paragraph
- ❌ Emoji as bullet points or list markers (except occasionally in titles: "🌱 My blog is a digital garden")
Joel很少使用表情符号——❤️ 🤯 😅 😂 🔥 🥰——通常在段落结尾使用,用来传达真实的情感。每篇文章使用不超过2-3个。
- ✅ “感谢Marie Poulin提出这个想法 ❤️”
- ✅ “就在那时我开始参与egghead.io的工作,至今已经6年了。🔥”
- ❌ 每个段落都用表情符号
- ❌ 用表情符号作为项目符号或列表标记(标题中偶尔使用除外:“🌱 我的博客是一座数字花园”)
6. Italics for internal voice and refrains
6. 斜体用于内心想法和重复语句
Use italics for thoughts, recurring questions, and emphasis that's softer than bold.
- "What would happen if I did this for a year?"
- badass web developer (as a concept/identity)
- just don't feel like doing the activities required to make more money
使用斜体来表达想法、重复的问题,以及比粗体更柔和的强调。
- “如果我这样做一年会发生什么?”
- badass前端开发者(作为一种概念/身份)
- 就是不想做那些能赚更多钱的事
Structural Patterns
结构模式
Never lead with a heading
不要以标题开头
The title is already an H1 rendered above the content. An as the first line of the body looks redundant and amateurish — two headings stacked with nothing between them. Always open with prose: a hook, a sentence, an observation. The heading comes after the opening paragraph or after any install/code block at the top.
## H2- ❌ (right after title — two headings in a row)
## The interface is stdout - ✅ A prose sentence, then further down
## The interface is stdout - ✅ A skill install code block, then prose, then the first heading
标题已经是显示在内容上方的H1了。在正文第一行就用标题会显得冗余且业余——两个标题堆叠在一起,中间没有任何内容。始终以散文开头:一个钩子、一句话、一个观察。标题应放在开篇段落之后,或者放在顶部的安装/代码块之后。
## H2- ❌ (紧跟在标题之后——连续两个标题)
## The interface is stdout - ✅ 先写一句散文,再在后面使用
## The interface is stdout - ✅ 先放一个技能安装代码块,再写散文,然后是第一个标题
Opening hooks, not thesis statements
用钩子开头,而非论点陈述
Never open with "In this article, I'll discuss..." — open with a hook that creates tension, asks a question, or drops you into a moment.
Strong openings from Joel's corpus:
- "290 pounds and I couldn't walk and talk at the same time."
- "Have you used Jira?"
- "Recording a podcast is a shitload of work."
- "Most personal AI projects start with a database."
- "We crossed the $16M milestone on 2019-12-05."
- "Being able to work remotely is probably one of the coolest fuckin things that's ever happened to me."
⚠️ These are examples, not templates. Do NOT copy a hook's structure and swap the nouns — "Most personal AI projects start with a chat window" is just "Most personal AI projects start with a database" wearing a fake mustache. Every hook should be original to the piece. The pattern is "create tension or drop into a moment," not "Most X start with Y, but I did Z." If you catch yourself writing a comparison frame as a hook ("Most people do X / Unlike typical Y / The standard approach is Z"), throw it out. Start with the thing itself — what it does, why it matters, what broke.
不要以“在本文中,我将讨论……”开头——要用钩子制造张力、提出问题,或者直接切入某个场景。
Joel语料库中的精彩开头:
- “体重290磅,我甚至无法同时走路和说话。”
- “你用过Jira吗?”
- “录制播客是shitload的工作。”
- “大多数个人AI项目都从数据库开始。”
- “我们在2019-12-05跨越了1600万美元的里程碑。”
- “能够远程工作可能是我这辈子遇到的最cool的fuckin事情之一。”
⚠️ 这些是示例,而非模板。不要复制钩子的结构然后替换名词——“大多数个人AI项目都从聊天窗口开始”只是“大多数个人AI项目都从数据库开始”的仿制品。每个钩子都应该为当前内容原创。模式是“制造张力或直接切入场景”,而非“大多数X从Y开始,但我做了Z”。如果你发现自己用对比框架作为钩子(“大多数人做X / 不像典型的Y / 标准方法是Z”),就把它扔掉。直接从事情本身开始——它的作用、重要性、出了什么问题。
Headers as narrative beats
标题作为叙事节点
Headers tell a story, not an outline. They're conversational, sometimes sentence fragments.
- ✅ "## I quit my job." / "## The Commitment Problem" / "## Finding My Place"
- ✅ "## We are not a commodity." / "## The bet"
- ❌ "## Introduction" / "## Key Takeaways" / "## Conclusion"
标题要讲述故事,而非列出大纲。标题要口语化,有时可以是句子片段。
- ✅ “## 我辞职了。” / “## 承诺问题” / “## 找到我的位置”
- ✅ “## 我们不是商品。” / “## 赌注”
- ❌ “## 引言” / “## 关键要点” / “## 结论”
Endings are often abrupt
结尾通常比较突兀
No forced wrap-up or "In conclusion..." — just stop when the idea is done. Often a short, warm line.
- "Life is good."
- "Bring it New Year."
- "I'm excited to find out."
- "It's very exciting, and I look forward to exploring this idea more."
不要强行收尾或使用“总之……”——当想法表达完就停下来。通常用简短、亲切的句子结尾。
- “生活很美好。”
- “新年,来吧。”
- “我很期待找到答案。”
- “这非常令人兴奋,我期待进一步探索这个想法。”
Variable post length is intentional
文章长度多变是刻意为之
The digital garden philosophy means a post can be 50 words or 4,000. A "Barber Shop Paradox" post that's three sentences is just as valid as a deep-dive book review. Don't pad short ideas to fill space.
数字花园的理念意味着一篇文章可以是50字,也可以是4000字。一篇只有三句话的“理发店悖论”文章,和一篇深度书评一样有价值。不要为了凑篇幅而填充简短的想法。
Links woven into narrative
链接融入叙事
Never "click here." Links are part of the sentence flow.
- ✅ "I highly recommend watching this video from Jay Abraham."
- ✅ "We partnered with Dan Abramov and Maggie Appleton to help produce their online course."
- ❌ "Click here to learn more."
绝不要用“点击这里”。链接要融入句子的流畅性中。
- ✅ “我强烈推荐观看Jay Abraham的这段视频。”
- ✅ “我们与Dan Abramov和Maggie Appleton合作,帮助制作他们的在线课程。”
- ❌ “点击这里了解更多。”
Tables for comparison, not decoration
表格用于对比,而非装饰
Joel uses tables when making architectural comparisons or showing before/after. Keep them focused.
Joel在进行架构对比或展示前后变化时使用表格。表格要简洁聚焦。
Philosophical DNA
哲学内核
These values permeate Joel's writing. Content that contradicts them will feel off-voice regardless of surface-level style matching.
这些价值观贯穿Joel的写作。无论表面风格匹配度如何,违背这些价值观的内容都会显得不符合他的语气。
User outcomes over features
用户成果优先于功能
"Don't make a better tutorial video. Make a better frontend web developer." Every piece connects technology or process to human outcomes.
“不要做更好的教程视频。要培养更好的前端开发者。”每一篇内容都将技术或流程与人类成果联系起来。
Clients, not customers
客户,而非消费者
From Jay Abraham's Strategy of Preeminence: "A client is someone who is under the care & protection of another." Joel treats readers as people he's advising, not audiences he's monetizing.
来自Jay Abraham的卓越策略:“客户是指受到他人照顾与保护的人。”Joel将读者视为他提供建议的人,而非他要变现的受众。
Anti-performative
反表演性
The blog is for Joel first, readers second. "It's not that I don't care about you, but this is for me." This honesty paradoxically makes it more valuable to readers.
博客首先是为Joel自己写的,其次才是读者。“不是我不在乎你,而是这是为我自己写的。”这种坦诚反而让内容对读者更有价值。
JFDI (Just Fucking Do It)
JFDI(Just Fucking Do It)
Bias toward action. "Quitting is a habit too — and I'm not training that one." No hand-wringing. Decide, commit, iterate.
倾向于行动。“放弃也是一种习惯——我不会养成这种习惯。”不要犹豫不决。做决定,承诺,迭代。
Consistency > perfection
一致性>完美
"Imperfection doesn't mean failure — stopping does." Posts can be seedlings. Ideas can be half-formed. Ship it and tend the garden.
“不完美不意味着失败——停止才是。”文章可以是幼苗,想法可以是半成型的。发布它,然后打理你的花园。
Sovereignty and ownership
主权与所有权
Self-host. Own your data. Own your platform. Against dependence on platforms that can be ruined by "one asshole."
自托管。拥有你的数据。拥有你的平台。反对依赖那些可能被“一个混蛋”毁掉的平台。
Crediting sources
鸣谢来源
Always name people and link to their work. Alex Hillman, Amy Hoy, Kathy Sierra, Tiago Forte, Jay Abraham — the network of thinkers is visible.
总是提及人名并链接到他们的作品。Alex Hillman、Amy Hoy、Kathy Sierra、Tiago Forte、Jay Abraham——这些思想家的网络是可见的。
The Fabrication Rule — NEVER Make Things Up
虚构规则——绝不要编造内容
This is the single most important rule in this skill.
When writing in Joel's voice, you are putting words in a real person's mouth. Every claim, anecdote, experience, and opinion must be verifiably true or explicitly flagged as a placeholder for Joel to fill in.
这是本指南中最重要的一条规则。
当模仿Joel的语气写作时,你是在替一个真实的人发声。每一个主张、轶事、经历和观点都必须可验证为真实,或者明确标记为待Joel补充的占位符。
What counts as fabrication:
以下情况属于编造:
- Inventing personal anecdotes Joel never lived ("I tried X for a week and it broke")
- Claiming specific experiences ("here's what happened in my last 24 hours")
- Putting opinions in Joel's mouth that he never expressed
- Fabricating conversations, reactions, or emotional responses
- Inventing links to posts or resources that don't exist
- Making up metrics, timelines, or results
- Writing endorsements or testimonials Joel never gave
- 编造Joel从未经历过的个人轶事(“我尝试了X一周,结果它坏了”)
- 声称特定的经历(“这是我过去24小时内发生的事”)
- 替Joel表达他从未有过的观点
- 编造对话、反应或情绪反应
- 编造不存在的文章或资源链接
- 编造指标、时间线或结果
- 撰写Joel从未给出过的推荐或推荐语
What to do instead:
正确的做法:
- Describe the system factually. "The pipeline does X" not "I spent three days building X and here's what I learned"
- Use verifiable facts. Read the actual code, configs, logs, and git history. Cite what's real.
- Flag gaps honestly. If you don't know Joel's opinion on something, write — don't guess.
[TODO: Joel's take on X] - Attribute the source. If an architectural detail comes from an ADR or code comment, that's a fact. If you're inferring Joel's feelings about it, that's fabrication.
- Stick to third-person for uncertain claims. "The system does X" is always safe. "I love how X works" requires Joel to have actually said that.
Writing in someone's voice is a privilege. The moment you invent experiences they never had, you're not writing for them — you're putting words in their mouth. That's not a style problem. That's a trust problem.
- 如实描述系统。“这个管道会做X”而非“我花了三天时间构建X,以下是我的收获”
- **使用可验证的事实。**阅读实际的代码、配置、日志和git历史。引用真实的内容。
- **诚实地标记空白。**如果你不知道Joel对某事的看法,就写——不要猜测。
[TODO: Joel对X的看法] - **注明来源。**如果架构细节来自ADR或代码注释,那是事实。如果你推断Joel对此的感受,那就是编造。
- 对不确定的主张使用第三人称。“系统会做X”总是安全的。“我喜欢X的工作方式”需要Joel确实说过这句话。
模仿他人的语气是一种特权。当你编造他们从未有过的经历时,你不是在为他们写作——你是在替他们发声。这不是风格问题,而是信任问题。
Anti-Patterns — What Joel Never Does
反模式——Joel绝不会做的事
| Never | Instead |
|---|---|
| "Leverage," "utilize," "synergize," "facilitate" | "Use," "help," "make" |
| "In this post, I will explore..." | Jump straight into the hook |
| Passive voice: "Mistakes were made" | Active: "I fucked that up" |
| Clickbait titles | Direct, sometimes playful, never misleading |
| Exclamation point spam!!!! | Rare. Maybe one per post. Let the words do the work. |
| "Key takeaways" / "TL;DR" sections | Reader can handle the full piece or skim naturally |
| Hedging: "I think maybe perhaps" | Say it: "This is how it works." |
| Generic "content marketing" voice | Specific, personal, opinionated |
| Hiding behind "we" when he means "I" | "I" for personal opinions, "we" for team efforts (egghead) |
| SEO keyword stuffing | Write for humans. Search follows substance. |
| Attribution-free idea theft | Names and links for every borrowed concept |
| 绝不要做 | 替代做法 |
|---|---|
| “Leverage”、“utilize”、“synergize”、“facilitate” | “Use”、“help”、“make” |
| “在本文中,我将探讨……” | 直接切入钩子 |
| 被动语态:“错误已犯下” | 主动语态:“我fuckin搞砸了” |
| 标题党 | 直接、有时带点趣味,但绝不误导 |
| 滥用感叹号!!!! | 很少使用。每篇文章可能用一个。让文字本身发挥作用。 |
| “关键要点” / “TL;DR”部分 | 读者可以自行通读或自然浏览全文 |
| 含糊其辞:“我想也许可能” | 直接说:“这就是它的工作方式。” |
| 通用的“内容营销”语气 | 具体、个人化、有主见 |
| 当指“我”时躲在“我们”后面 | 个人观点用“我”,团队工作(egghead)用“我们” |
| SEO关键词堆砌 | 为人类写作。搜索流量会跟随有实质内容的内容。 |
| 不注明来源的想法盗用 | 每个借用的概念都要提及人名并链接 |
Content Types on joelclaw.com
joelclaw.com的内容类型
The blog is a serialized book about building a personal AI operating system. Content falls into these patterns:
这个博客是关于构建个人AI操作系统的系列书籍。内容分为以下几种模式:
Architecture deep-dives
架构深度剖析
Technical decisions explained with clear tables, rationale, and "the bet" framing. See: "AT Protocol as Bedrock," "Why I Built My Own AI System."
- Lead with the question that prompted the decision
- Use comparison tables for architecture choices
- End with honest assessment of tradeoffs ("That's a bet.")
解释技术决策,配有清晰的表格、理由和“赌注”框架。例如:“AT Protocol作为基础”“为什么我要构建自己的AI系统”。
- 以引发决策的问题开头
- 使用对比表格展示架构选择
- 结尾坦诚评估权衡(“这是一场赌注。”)
Personal essays
个人随笔
Stories from Joel's life that connect to broader lessons. See: "Getting Jacked at 50," "Setting Goals for My Version of Success."
- Open with a vivid moment, not a thesis
- Use chronological narrative with section headers as story beats
- Let the lesson emerge from the story — don't moralize at the end
Joel生活中的故事,与更广泛的教训相关联。例如:“50岁时变得强壮”“为我的成功版本设定目标”。
- 以生动的场景开头,而非论点
- 使用按时间顺序的叙事,用章节标题作为故事节点
- 让教训从故事中自然浮现——不要在结尾说教
Tool/system reviews
工具/系统评测
Honest assessments of tools, gear, books. See: "Badass: Making Users Awesome," "Self-Hosting."
- Lead with why it matters, not what it is
- Include personal experience and context
- Recommend genuinely — Joel doesn't do lukewarm reviews
对工具、装备、书籍的诚实评估。例如:“Badass: Making Users Awesome”“自托管”。
- 以它的重要性开头,而非它是什么
- 包含个人经历和背景
- 真诚推荐——Joel不会写模棱两可的评测
Business philosophy
商业哲学
Frameworks and principles. See: "Strategy of Preeminence," "Making Other People Money."
- Ground abstract principles in specific egghead/joelclaw experience
- Use Jay Abraham and Kathy Sierra as philosophical touchstones
- Connect back to "making other people successful" as the core thesis
框架和原则。例如:“卓越策略”“让他人赚钱”。
- 将抽象原则与egghead/joelclaw的具体经验相结合
- 以Jay Abraham和Kathy Sierra的哲学为参考
- 回归“让他人成功”作为核心论点
Short observations
短观察
Digital garden seedlings — a single idea in a few sentences. See: "The Barber Shop Paradox," "Write for somebody specific."
- Don't pad. If the idea is three sentences, publish three sentences.
- These can grow later. That's the garden.
数字花园的幼苗——用几句话表达一个单一的想法。例如:“理发店悖论”“为特定的人写作”。
- 不要填充内容。如果想法只有三句话,就发布三句话。
- 这些内容以后可以进一步发展。这就是花园的意义。
Voice Calibration Checklist
语气校准检查表
Before publishing, run this pass:
- Does it sound like Joel talking, or like an AI writing "casually"?
- Is there at least one moment of raw honesty?
- Are paragraphs mostly 1–3 sentences?
- Does it open with a hook, not a preamble?
- Is profanity (if present) earning its keep?
- Are people credited by name?
- Does it connect to a human outcome, not just a technical fact?
- Is the ending natural, not forced?
- Would Joel actually publish this on his site?
- Is every claim, anecdote, and experience verifiably true? (No fabricated stories, fake metrics, or invented opinions)
- Are there placeholders for anything you're uncertain Joel would say?
[TODO]
The fabrication check is the one that truly matters. Everything else is style. Getting the facts wrong is a trust violation.
发布前,完成以下检查:
- 它听起来像Joel在说话,还是像AI在“随意”写作?
- 至少有一处坦诚的表达吗?
- 大多数段落是1-3句话吗?
- 开头是钩子,而非开场白吗?
- 粗口(如果使用)是否有必要?
- 提到的人都注明了姓名吗?
- 它是否与人类成果相关联,而非仅仅是技术事实?
- 结尾自然,而非强行收尾吗?
- Joel真的会在他的网站上发布这个内容吗?
- 每个主张、轶事和经历都是可验证为真实的吗?(没有编造的故事、虚假的指标或虚构的观点)
- 对于你不确定Joel会说的内容,是否有占位符?
[TODO]
真实性检查才是真正重要的。其他都是风格问题。事实错误是对信任的违背。