Home首页 / Why FoxDoo为什么选我们 · 06 principles · no asterisks六条原则 · 不加星号
Client promise · live客户承诺 · 生效中
A manifesto, not a pitch deck一份宣言,不是 PPT

The reasons we'd
pick us, if we were
the customer.
如果我们是
客户,会选我们的
那几个 理由

We're not the cheapest, and we're not for everyone. We're for the founders who'd rather sleep at night than save 8% on a quote. 我们不是最便宜的,也不适合所有人。我们适合那些 —— 宁愿睡个安稳觉,也不愿在报价上抠掉 8% 的人。
3/3 senior engineers资深工程师
35+ clients · since 2014客户 · 2014 至今
12yrs longest client tenure最长客户合作
100% bilingual team · EN/中双语团队 · EN/中
2014est founded · Vancouver创立 · 温哥华
06 reasons · in long form六条理由 · 长版本

The principles, & why they exist. 六条原则,以及它们 为何 存在。

Every line below was written because we got burned somewhere — as customers, or as engineers inside someone else's agency. The receipts are real. 下面每一条都是被坑出来的 —— 我们做客户时被坑过,也在别家 agency 做工程师时见过。每一条都有真实的来由。

01
seniority资深

Senior on every seat, not just the pitch deck. 每个座位都是 资深,不只是提案 PPT 上写写。

Big agencies sell you a "principal" on the pitch call and route the work to a junior the next morning. We don't have a principal — we have three senior engineers, every one shipping production code, and one of them is the one writing yours.大 agency 会在提案会上派出"首席"专家,签完合同第二天就把活儿丢给初级工程师。我们没有"首席",只有三位资深工程师,每一位都在写生产环境的代码 —— 写你代码的就是其中之一。

If we ever need a junior pair of hands for a task, that work goes through a senior reviewer before it touches your repo. The training-wheel hours stay on our books.即便偶尔需要初级搭手,代码也要经过资深 review 才能进你的仓库。练手成本由我们自己承担。

3 / 3 engineers · senior level
02
continuity延续

The face on day 1 is the same face on day 300. 第一天对接的人,第三百天还是 同一个人

No call-center routing. No "your account manager left, here's the new one." Peng is your single point of contact from day one, and the same two engineers stay on your build — Slack, sprint demos, on-call, the works.没有客服分流,没有"你的对接人离职了,以后是这位"。从第一天起 Peng 就是你的唯一对接人,后面跟你项目的也是同一组工程师 —— Slack、迭代演示、紧急响应,全部一手。

The math: a small senior team that has shipped together for years out-paces a ten-person agency assembled the week of kickoff. Continuity beats headcount.这是数学题:一支长期合作的资深小团队,胜过启动前一周拼凑的十人团队。延续性比人头数重要。

same team · since 2014
03
pricing报价

One number, in plain language. 一个数字,用 大白话 写清楚。

Every proposal is a single page: who, what, how long, how much, and what we will not touch. No "T&M with potential overage", no asterisks, no "subject to clarification".每份提案就一页纸:谁来做、做什么、多久、多少钱、哪些我们 不动。没有"按时计费可能超支",没有星号,没有"细节再议"。

Scope changes get re-quoted in writing before any work happens. Surprises live in the email thread, never in the invoice.需求变更先书面重新报价,确认后才动手。意外只出现在邮件里,绝不会出现在账单上。

fixed price · in writing
04
bilingual双语

Bilingual without the translation tax. 双语沟通,不交 翻译税

Slack in Mandarin, Jira in English, code review in either. We don't lose half a meeting waiting for translation, and your spec doesn't drift between languages because the same engineer wrote both versions.Slack 用中文,Jira 用英文,Code Review 用顺手的那种。会议不会被翻译卡掉一半时间,需求文档也不会在两种语言之间走样 —— 因为两个版本是同一个工程师写的。

For CN ⇌ CA cross-border builds, this is the whole team — all three of us live and work bilingually every day. Handoffs land on a real human, in the language you wrote in.中加跨境项目,这是我们整个团队的日常 —— 三个人每天都在用两种语言写代码、开会、沟通。你用哪种写,真人就在那一头接住。

3 / 3 engineers bilingual
05
response响应

A real reply, not a ticket number. 是真人回复,不是 工单编号。

Every request gets a human reply, same day — usually within hours, in business time. Overnight requests from CN clients get picked up first thing PT morning. Peng reads everything that comes in.所有请求当日必有真人回复 —— 工作时段内通常几小时内。国内客户晚间发来的,我们第二天一早处理。所有来件,Peng 都亲自看。

Production-down? You have a direct phone number to a senior engineer. No queue, no callback form, no "please describe the issue".生产挂了?你手上有资深工程师的直拨电话。没有排队,没有回呼表单,也没有"请描述一下你的问题"。

direct line to Peng · no queue
06
after launch上线之后

We stay. Month one is on us. 我们 不走。首月由我们扛。

First 30 days of post-launch bug fixes are free, no exceptions, no fine print. After that you can roll into a small monthly retainer or pay by the hour — month-to-month, cancel any time.上线后首 30 天的 bug 修复免费,没有例外,没有小字。之后你可以选小额月费或按小时计费 —— 月度续约,随时停。

No 12-month minimum lock-up. If we stop being useful, you stop paying. That's the entire contract.没有 12 个月最低合约。我们不再有用了,你就停 —— 整份合同就这一句话。

longest client · 12 yrs & counting
If a $40 spreadsheet solves your problem,
we'll say so.
如果 一张 Excel 能解决你的问题,
我们就 直接说
our north star, since 2018 2018 年至今的北极星
Where the money lands · same scope钱去了哪 · 同一份范围

Same brief — different
shape of your invoice.
同一份范围,三种
发票结构

8-page bilingual site, CMS, contact form, HubSpot integration, deployed to AWS, 12 months of hosting. The bars below show what share of every dollar you'd pay actually buys engineering — versus margin, coordination, or whatever "agency overhead" is supposed to mean. 8 页中英官网、CMS、联系表单、对接 HubSpot、部署到 AWS、12 个月托管。下面的条形,展示你付出去的每一块钱里 —— 有多少真的买到了代码,多少进了利润、协调,以及 agency 那含糊的"间接成本"。

Big agency大型 agency / 4A

Layered subcontracts层层转包

35% margin毛利 30% overhead行政开销 35% engineering写代码
  • PM + BA + 2 devs + QA on payrollPM + BA + 2 名 dev + QA 编制
  • ~ 35% margin baked into every line每一行报价里压了 ~ 35% 毛利
  • 2–3 change-orders by month 4第 4 个月通常 2–3 次改单
  • New SOW for any post-launch fix上线后修任何 bug 都另签 SOW
Lone freelancer单兵 freelancer

One person, all hats一个人扛所有角色

100% one person · no margin, no cushion 一个人 · 没有任何商业兜底
  • Cheapest line item — best case最便宜 —— 顺利时
  • Goes silent during dayjob crunch主业忙起来容易失联
  • No backup if they get sick / quit人生病/转行后无后备
  • Hosting on their personal account托管常挂在他个人账号下
FOX FoxDoo

Senior 2–3 person pod2–3 人资深小队

15% margin毛利 10% coord协调 75% engineering写代码
  • Two senior engineers, one PM-of-one两名资深工程师,一名兼任 PM
  • Fixed price, written + itemized固定价,书面 + 列项
  • Month 1 of fixes free, then month-to-month首月修复免费,之后月度续约
  • Hosting in your AWS account, your keys托管在你自己的 AWS 账号下
based on 50+ discovery calls · 2024–2025来自 50+ 次咨询电话 · 2024–2025 same scope · what differs is where the money lands同一份范围 · 区别在每一块钱去了哪
12-month lock-ups12 个月最低合约 Surprise invoices突袭账单 Junior pass-through初级转手 PowerPoint proposalsPPT 提案 Plain numbers实数 One page一页纸 Same humans同一张脸 Month-to-month月度续约
The honest answers · 06 questions实在话 · 六个问题

Things you'd actually ask, before signing. 签合同前你 真会问 的几件事。

Pulled verbatim from the last fifty discovery calls. The answers are short on purpose. 摘自最近五十通咨询电话。回答故意保持简短。

Q.

"You're not the cheapest. Why?""你们不是最便宜的,为什么?"

Because senior engineers cost more, on the front end. They also re-build less, write fewer bugs, and don't need a project manager translating between them and you. Over a 12-month build the total tends to land 20–30% lower than a "cheap" agency quote — but only because nothing blows up in month four.因为资深工程师在前期就贵。但他们少返工、少 bug、也不需要 PM 在中间翻译。一年下来总价通常比"便宜"agency 低 20–30% —— 因为第 4 个月不会爆。

Q.

"What happens if my engineer gets hit by a bus?""万一对接的工程师被车撞了呢?"

Two-engineer pod, by policy. Every account has at least two senior engineers in the loop on every PR, every infra change, every standup. We've never had a single-keeper-of-knowledge incident in 50+ engagements.每个项目按规定 ≥ 2 人小组。所有 PR、基建变更、每日站会,至少两名资深工程师都在线。50 多个项目里,没出过"知识只在一个人脑子里"的情况。

Q.

"Will you sign an NDA and DPA?""NDA 和 DPA,你们签吗?"

Both, yes. We're Canadian-incorporated, so PIPEDA applies by default. For CN ⇌ CA builds we add a cross-border data addendum inside the DPA — covering where data sits, who can access it, and how it's handed back if the contract ends. Happy to use your legal team's wording — it's not boilerplate from our side.两份都签。我们是加拿大注册公司,PIPEDA 自动适用。中加跨境项目会在 DPA 里加一段跨境数据附录 —— 说明数据存放在哪、谁能访问、合同结束后怎么交还。条款用你法务出的版本也可以 —— 不是我们这边的模板。

Q.

"Do you keep my code & my keys?""代码和密钥在你们那儿吗?"

No — they live in your repos and your accounts. AWS / Azure / GCP under your billing. GitHub under your org. We get invited as collaborators, and we leave with empty hands the day you ask.不在 —— 都在你自己的仓库和账号里。AWS / Azure / GCP 走你的账单。GitHub 在你的组织下。我们以协作者身份加入,你说撤,当天就两手空空走人。

Q.

"Can we meet the actual engineer before signing?""签之前能见一下真正写代码的人吗?"

You already do. Discovery calls are with the engineer who would lead the work — not a salesperson. If we can't show up to that call, we don't have capacity for your project, and we'll say so.你早就见到了。咨询电话上接你的就是项目带队工程师,不是销售。如果我们排不出这通电话,说明我们当下接不下来 —— 我们会直说。

Q.

"Have you said no to a project?""你们拒过项目吗?"

Roughly 30% of inbound, every year. Wrong fit, wrong timing, wrong tech, or scopes that need someone bigger than us. Saying no is how we keep the team small enough to actually care about the ones we say yes to.每年大约 30% 的咨询会被我们拒掉。方向不对、时机不对、技术不合,或者范围已经超过我们规模能接的极限。学会说"不",才能让团队保持足够小 —— 对说"好"的那些项目真的上心。

By the numbers · since 2014数据 · 2014 至今

If you'd rather see numbers. 如果你更想看 数字

Verifiable facts about who we are and how long we've been at it — happy to put any client on the phone with you for a reference. 关于"我们是谁、做了多久"几条可核实的事实 —— 任何一位客户的电话,需要的时候我们都可以给你做引荐。

35+
Clients · since 2014客户 · 2014 至今
12yrs
Longest client tenure最长客户合作
3/3
Senior engineers on staff在职资深工程师
100%
Bilingual EN / 中双语 EN / 中

Still kicking the tires? 还在 货比三家?

Book a free 30-minute call with the engineer who'd actually run your project. We'll tell you what we'd do, what it'd cost, and — if it isn't us — who you should call instead. 预约一次 30 分钟免费通话,接电话的就是带你项目的那位工程师。我们会告诉你我们会怎么做、要多少钱;如果不该选我们,我们也会告诉你该找谁。