想在 2018 年为你的产品找到最佳技术栈吗?不妨从数十位创业公司创始人的经验中学习,他们有的懂技术,有的不懂,但都分享了支撑其业务运行的代码背后的逻辑。
Poshmark 自动化工具
分享:Jordan O’Connor,Closet Tools 创始人,Closet Tools(月收入 1 万美元)
我在创业初期倡导两件事:免费做事,且不重复造轮子。
这并不是说你不应该从头开始编写代码,也不是说 “免费” 就意味着质量差。实际上恰恰相反。有很多很棒的平台,它们能以极低甚至零成本为你提供坚实的基础,同时还能保证你的产品在最需要运行的时候不会出问题。
我的产品 Closet Assistant 是一个前端 “插件”(类似 Intercom)。它会在零售网站 Poshmark 上弹出,为用户自动化一些流程。这能为他们节省时间,并有可能让他们赚更多钱。
它运行在无服务器技术栈上,因为它主要是前端代码,只有少量后端代码用于处理支付和任务自动化等事务。以下是我使用的工具:
- 应用 / 网站托管:Github Pages
- SSL:Cloudflare
- 后端:Webtask
- 身份验证 / 数据库:Firebase
- 支付:Stripe
- 分析:Google Analytics
这些平台我使用起来全部免费。
如果你是开发者,Github Pages 超级容易使用。Jekyll 是一个很棒的静态网站构建引擎,其可靠性和灵活性让人放心。Cloudflare 也非常出色,它能让你的页面更安全,还能保护你免受 DDoS 攻击或应对高流量情况(Github Pages 不一定能做到)。
Webtask 在我开发这个产品之前我从未听说过,但它成了这个项目的支柱。你可以免费拥有一个 Node.js 后端,它能让你接收 GET/POST 请求,并监听 Webhook。我使用 POST 请求来创建新订阅、终止订阅和更新信用卡信息。我使用 Webhook 在用户未付款时禁用账户,或者在有人将免费试用转为付费时发送邮件。而且,它已经托管好,随时可用(通过简单的 npm 集成)。你只需提供代码,它就会给你一个 URL,非常棒。
Firebase 对创业者来说再合适不过了,因为它能让你快速创建新用户,而且其 NoSQL 数据库非常易于操作和使用。我用这个数据库来验证用户是否付款,并跟踪应用中使用的设置 / 统计信息。
Stripe 是必然之选,它是目前最灵活、最有用的支付平台。一旦你掌握了它的 API 和 Webhook,就很容易构建一些功能,而在其他平台上构建这些功能可能会让人头疼不已。
我使用 Google Analytics 主要是因为它易于集成(而且免费)。我为网站和产品分别设置了标签,这样我就能跟踪用户使用产品的方式和时间。
我花了大约一个月的时间学习如何使用这些平台进行开发,并将它们集成在一起。但当它们协同工作时,这是一个强大的技术栈,能让你以极低的成本实现扩展。
WordPress 看板插件
分享:Corey Maass,Kanban for WordPress 创建者,Kanban for WordPress(月收入 1100 美元)
一直以来,WordPress 插件都很受欢迎。
很多有创业想法的人、微型企业家或个体创业者都主张从 WordPress 产品入手,他们这么说是有很多原因的。你不需要编写大量代码,也不需要太多开销。产品是分布式的,所以你不用担心服务器会在半夜出问题。你可以利用 WordPress 平台来销售你的插件。WordPress 网站所有者也习惯了追加销售。
但这里有个秘诀。WordPress 网站所有者经常浏览插件目录并尝试各种插件,因为它们是免费的,而且尝试插件会让人感觉很有成效。他们知道自己应该写一篇博客文章或管理谷歌广告,但他们却会点击 “安装” 各种随机的插件,因为使用门槛很低。所以,只要你能创建一个人们可能想尝试的插件,你就有了流量。现在你要做的就是向他们追加销售。 🙂
寻找 SEO 或数字服务提供商的平台
分享:John Doherty,Credo 创始人,Credo(月收入 3.2 万美元)
我相信在创业初期要构建最小可行产品。在创业起步阶段,任何与直接创收无关的事情都是浪费时间。你可能是一位优秀的开发者,能使用最新的 JavaScript 库重写任何东西,但如果你不能实现盈利,那你做的只是一个爱好,而不是一门生意。
我的平台前后端都是基于 WordPress 构建的。为了让不同的系统相互协作,以及设置定时任务来清理数据,做了一些定制开发,但主要还是 WordPress,我使用 Drip 进行营销自动化,使用 Mandrill 发送交易邮件。
我考虑过构建一个完全定制的系统,也许有一天这会是正确的解决方案。但目前,由于我的后端开发技能有限,继续使用我熟悉的技术栈是最明智的选择,这样我可以自己修复漏洞,而不用依赖外部开发者。
每日规划应用
分享:Malcolm Ocean,Intend 创建者,Intend(月收入 4500 美元)
基本上是 MEAN 栈:MongoDB、Express、AngularJS、Node.js。我真的很喜欢在前后端都使用 JavaScript。我最近编写了一个新的同步模块,让应用可以离线工作,这个模块通过使用一个共享文件来处理不同类型对象之间的合并逻辑,充分利用了这一点(我计划将其开源,开源后可能会放在github.com/malcolmocean/kitchensync,但目前这个 URL 还是空的)。除了这个明显的好处,只需要用一种语言思考也很不错。MongoDB 和 AngularJS 与这个栈搭配得非常好。
我听到很多人说 Mongo 的扩展性不太好,但幸运的是,Complice 作为一款应用,通常只需要跟踪少量的事项列表(比如 “我今天要做什么?”),而不是大量的列表(比如 “过去 5 年里我想做的所有任务有哪些?”),而且也不需要太多的数据规范化,所以对我来说它很适用。
说实话,我开始做这个应用的时候并没有过多考虑技术栈的问题。在开发这个应用之前,我很少接触数据库,所以也没什么可比较的。我喜欢 Mongoose 这个对象数据映射(ODM)工具,因为它让我可以基本忽略数据库实际存储数据的方式,只把文档当作可保存的对象来处理。
总的来说,我会向那些主要创新点在用户界面或其他交互方面的人推荐我的技术栈。如果你想做一些技术上非常令人印象深刻或高效的事情,可能选择其他技术栈会更好。
基于云的 Node.js 托管服务
分享:martinlev,opeNode 创始人,opeNode(月收入 300 美元)
目前我主要使用 Node.js 作为后端,MySQL 处理大部分关系型数据,Vue.js 作为前端。
为了记录文档 / 日志,我使用 MongoDB,目前效果还不错。我使用 crontab 搭配基本的 JavaScript 脚本来处理数据并尽可能实现自动化。
为了实现缓存,我还使用了 Redis。
最近我开始使用 SendGrid 来发送邮件。
由于我过去在 Ruby on Rails 方面有丰富的经验,最近我开始尝试 Elixir 和 Phoenix 框架。
高级 WordPress 更新服务
分享:Jack Slingerland,Kernl 创建者,Kernl(月收入 1900 美元)
Kernl 最初是一个用来测试一些新技术的副业项目。早在 2015 年,Node.js 开始变得非常流行,MongoDB 也逐渐成熟,所以我决定将它们作为 Kernl 的主要后端技术。现在看来,使用 Node.js 和 Mongo 帮助我能够快速迭代并响应客户需求。当时我对它们并不是很了解,只是想学习一下。
除了这些选择,我很早就决定在前端使用 AngularJS 1.x。我知道如果要启动并完成 Kernl 的最小可行产品(MVP),我至少要使用一些我熟悉的技术。三年后,Angular 的代码库开始显得有些过时,但将其重写成更现代的技术并不值得。
如果今天重新开始,我想我不会做任何改变。Kernl 对 MEAN 栈的使用帮助它取得了成功,即使它的规模也不小。对于今天开始新项目的人来说,在选择技术之前要明确自己的目标。你的目标是学习新东西吗?那么就选择热门的新框架或语言。你的目标是尽快构建出产品吗?也许你应该坚持使用你已经精通的语言或框架。
实用 HTML/CSS 课程
分享:Dmitry Belyaev,Frontloops,Frontloops(月收入 0 美元)
Frontloops 的唯一入口是一个着陆页,在那里你可以订阅电子邮件,所以我想让它尽可能简单。我决定不使用任何流行的框架,而是只用原生 JavaScript、HTML 和 CSS 来构建它。
后端使用 Node.js,因为我需要创建一个 API 来发送邮件,以及邮件中的几个操作按钮(比如获取下一个任务或升级到完整版)。
我的专业背景是前端开发,所以当你熟悉代码语法和最佳实践时,快速完成任务会容易得多。
虽然这个产品相对较小,但我也有机会从错误中学习。我学到的是,你一定要尽力让 MVP 的代码尽可能简单,但也不要太偷懒。你可不想在写完代码的第二天就因为没有花半个小时研究功能的可能用例而不得不重构代码。
专业播客托管和分析服务
Justin Jackson,Transistor 联合创始人,Transistor(月收入未知)
在选择技术栈时,我们想排除任何会拖慢我们进度的因素。最终,真正重要的是把东西构建出来、部署好,并交到客户手中。
对于 Transistor.fm,我们使用:
- Rails 5.2(因为 @jonbuda 最熟悉这个)
- Postgres 9.6(因为我们喜欢它的社区和功能)
- 托管在 AWS 上(因为我们通过 Stripe Atlas 获得了免费额度)
- Semantic UI 设计框架(因为 Jon 最熟悉这个)
Ruby on Rails 已经进入了 “成熟阶段”,这意味着它不再是 “热门的新事物” 了,但这对我们来说没关系。Rails 仍然有大量的资源,得到广泛的支持,而且很稳定。
另外,当我们准备扩大规模时,我知道有几十位有才华的 Ruby on Rails 开发者可以聘请。很多人在选择技术栈时没有考虑到招聘这一关键因素。
物业管理平台
分享:Michael Meyer,Propertyments 创始人,Propertyments(月收入未知)
Propertyments 基于ASP.NET Core/C# 后端、SQL Server 数据库、JavaScript/jQuery/Bootstrap 前端构建,全部托管在微软的 Azure 平台即服务上。
我选择这个技术栈主要是因为我在工作中使用相同的技术开发企业应用,并且希望能以一个良好的基础尽快推出 MVP,以便后续继续开发。我认为在选择技术时,最重要的考虑因素是:你目前掌握哪些技术?解决问题有很多种方法 —— 从你最擅长的地方开始,然后在此基础上发展。
这是一个成熟的技术栈,在后端得到了微软和开源社区的良好支持,此外,我们在收取租金时还使用了功能齐全的 Stripe 库。前端库更是数不胜数。当需要扩大开发规模时,有大量的.NET 开发者可供选择,而且 Azure 平台设计为可以根据需求自动扩展。当业务真正开始增长时,我希望尽可能少地参与其中,而这个设置让我拥有了这样的自由。
小企业客户体验管理
分享:James,Managers Phone 创始人,Managers Phone(月收入 0 美元)
我们的技术栈包括: Django, Docker (以及 Docker Compose), PostgreSQL, 和 AWS。
为什么选择这个技术栈呢?Django 内置了很多功能,这使得开发和迭代想法变得快速而容易。我宁愿把时间花在测试新想法和营销产品上,也不想重复造轮子。
Docker/Docker Compose 让开发和部署变得简单。当负载开始使系统变慢时,我可以快速轻松地扩展服务。在大多数事情上,我遵循 “你不会需要它”(YAGNI)原则,目前我不需要自动扩展的基础设施。
我们的技术栈与我们的业务策略有什么关系呢?我们希望 Manager’s Phone 成为美国(目前仅针对美国)领先的小企业短信解决方案。我们相信它可以通过帮助小企业发展社区来让客户满意。我相信通过快速测试新想法并从中学习,可以实现这个策略。我们的技术栈使这种灵活性成为可能。
我给你的建议是:使用你熟悉的技术。我看到很多创业者试图使用最新、最棒的技术来构建新产品。别误解我的意思,我喜欢新技术,也喜欢构建新事物。但问题是,在验证一个想法时,技术本身并不能促成销售。专注于你熟悉的技术,为你的客户提供价值。
产品人员的用户流程模式
分享:Ramy Khuffash,Page Flows 创始人,Page Flows(月收入未知)
对于 Page Flows,我在后端使用 Django/Python 和 PostgreSQL 数据库,前端使用 jQuery 和一点 Vue.js。
对于像 Page Flows 这样仅限会员的媒体 / 内容业务来说,技术其实并不重要,所以使用花哨的新技术可能会分散注意力。我只是选择了我熟悉的技术。
到目前为止,我并不后悔,因为我可以快速制作功能原型并进行迭代。一旦产品进入更明确的阶段,我可能会用更动态的前端来改善用户体验。
我建议坚持使用你熟悉的技术,即使它不那么时髦,除非你的首要任务是成为一名更有就业竞争力的软件工程师。
友好的预约安排服务
分享:Chris Tan,CozyCal 联合创始人,CozyCal(月收入未知)
我们的技术栈侧重于使用简单、易用的工具。
转向 Vue.js 是我们在提升产品深度方面做出的最佳投资。我对使用单文件组件来组织项目的便捷性非常满意。
Vue 的风格指南也是选择这个库的另一个重要原因。今年关于 Vue 和 React 的争论似乎越来越激烈。没有 “正确” 的答案。不过,我认为 Vue 就像那些喜欢 Python 的人所推崇的那样:“做一件事应该有一种 —— 而且最好只有一种 —— 显而易见的方法。”
在服务器端,我们在 Python 3 上运行 Tornado,前面用 NGINX 作为代理。它在 Digital Ocean 上一个每月 5 美元的实例上运行了将近两年,没有出现任何问题。
我们的数据库使用 SQLite,ORM 使用 Peewee。
我们还喜欢其他一些值得注意的服务:
可打印婚礼座位卡制作工具
分享:Cory Zue,Place Card Me 创始人,Place Card Me(月收入未知)
Place Card Me 基于一个相当标准的 Python/Django 技术栈构建:Nginx Web 服务器、Django 应用和 PostgreSQL 数据库。这是一个我已经有丰富经验的技术栈,我知道我可以高效地搭建并使用它,而且我也知道它具有长期的可持续性和可扩展性。我很高兴做出了这个选择,因为我能够利用我之前的很多经验、知识和工具 —— 并且把从 Place Card Me 学到的东西应用到其他项目中。
虽然我们都喜欢探索新技术,但在我看来,你的核心技术栈不是尝试新技术的地方 —— 特别是如果你像我一样喜欢构建很多不同的项目。相反,如果你在不同项目中保持技术栈的一致性,你也会找到一致的方法来处理每个项目中出现的所有其他周边事务,比如错误监控(Sentry)、异步和定时任务(Celery),甚至像发送邮件(Mailgun)这样简单的事情。这样就会产生巨大的规模经济效益。重要的是要记住,你不仅要考虑你的 Web 应用程序,还要考虑与该应用程序相关的所有其他周边服务 —— 如果你成功了,这个列表只会随着时间的推移而增加。
同时,我总是建议为每个新项目尝试一项新技术。这会让你跟上时代,满足你的学习欲望,并不断丰富你的简历。对我和 Place Card Me 来说,那项新技术就是学习使用 React 来构建前端。这个选择最终效果非常好,现在我在很多其他项目中也经常使用 React。在做这个项目之前,我的 JavaScript 技能还停留在没有包管理器的 jQuery 时代,但抓住机会从头开始学习并构建一个现代的 JavaScript 前端真的改变了这一切。这不仅让代码库更易于维护,而且这也是一项我可以应用到其他项目和自由职业工作中的很棒的技能。
将 Xero 发票和账单同步到日历和 Slack
分享:Rikki Pitt,InView 创始人,InView(月收入未知)
为了让我的想法落地并做出一个概念验证,我选择使用 Ruby on Rails 来开发 InView。我觉得它仍然是一个很实用且强大的框架,可以让你从一个基本的应用轻松快速地发展成为一个成熟的软件即服务(SaaS)产品,而不需要在另一个系统中重新开始。
诚然,它不像一些更现代的前端 JavaScript 框架那么花哨,但一个 RESTful/CRUD 应用的简单性往往很难被超越。
Heroku 是我选择的应用服务器,而且我已经有了一套工具和部署系统,以简化测试驱动开发(TDD)/ 行为驱动开发(BDD)的开发流程 —— 如果你即将开始一个新项目,这一点值得考虑。做最容易的事情,开始构建,然后以一种你后续能轻松管理的方式快速试验你的想法。
自动化依赖更新工具
分享:Grey Baker,Dependabot 创建者,Dependabot(月收入 1.4 万美元)
Dependabot 使用 Ruby on Rails 构建,PostgreSQL 作为主要数据存储,Redis 用于缓存,前端使用 React。我们部署到 Heroku 上。所以,基本上整个技术栈都是很基础的。
这显然是有意为之。我在使用这个技术栈方面有丰富的经验,而且没有令人信服的商业理由不让我在 Dependabot 上使用它。我更关心的是让服务正常运行,而不是尝试新技术,所以我坚持使用我熟悉的技术。我建议其他创业者也这样做 —— 毕竟,在创业过程中你会面临很多其他挑战。
我们技术栈中有趣的一部分是 Heroku。Dependabot 实际上有非常复杂的平台需求 —— 每天我们需要启动数千个隔离环境来评估用户的依赖文件。Heroku 不仅能轻松快速地处理这些需求,而且费用从未超过 Dependabot 收入的 10%。这是我非常满意的一点,目前我们还不需要在这方面进行创新。
WooCommerce 插件
分享:James Kemp,Iconic 创建者,Iconic(月收入 9000 美元)
由于我经营着一家 WooCommerce 插件业务,我的技术栈围绕 PHP 构建。
我使用 Local by Flywheel 来搭建本地 WordPress 安装环境。它很棒,因为你可以创建 “蓝图”,即带有主题和插件的预配置网站,作为基础。
我选择的编辑器是 PHPStorm—— 这是一个我离不开的工具。使用它让我有信心让我的代码始终保持最佳状态。此外,Xdebug 集成在调试时节省了大量时间。
我的所有插件都运行在 Gulp、Composer、 npm, Sass 和 jQuery 之上。我编写了许多自定义的 npm 和 Gulp 脚本,来自动化我的很多工作流程,比如编译 Sass、部署插件、更新版本号等等。
我的技术栈一直在不断发展。我总是乐于尝试新事物;我得承认,我已经盯上 VS Code 了!
小企业简单 CRM 系统
分享:Tyler King,Less Annoying CRM 首席执行官 / 联合创始人,Less Annoying CRM(月收入未知)
我们的后端是一个相当基础的 PHP 配置:PHP7 + MySQL + NGINX,托管在亚马逊 AWS 上。随着业务的发展,它变得有点复杂(如分片数据库等),但我们从最简单的配置开始,只有在出现真正需要解决的问题时才会进行更改。
前端现在使用 React,不过我们一开始是使用相当简单的 jQuery 配置。我听说有人将 React 描述为 “多付出 10 倍的工作量,换来 20% 更好的用户体验”,我觉得这个描述差不多是对的(也许不是 10 倍,但可能是 2 倍)。所以在我看来,像 React 这样的技术在产品打磨得足够好、小的改进也很重要的时候才适用,但我不会想用它来拼凑一个原型。
我得承认,我有点羡慕那些整个后端都使用托管服务(如 Firebase 等)的公司,因为那样可以减少我们大量的运维工作,而这是我最不喜欢的工作类型之一。但与此同时,完全依赖别人的专有技术似乎…… 有风险。所以目前我还是更喜欢坚持使用广泛支持的开源技术,但我有时也会想,也许另一边的情况会更好。
归根结底,我们的用户并不关心我们使用什么技术,所以我认为过于陷入不同语言和框架之间的争论是错误的。在开始 Less Annoying CRM 之前我就知道如何使用 PHP,所以这对我们来说是正确的选择。但如果我之前是一名 Rails、Node 或 Python 开发者,那么使用其中一种技术会更合理。
用于构建可扩展网页抓取器的 API
分享:dann,Scraper API 创始人,Scraper API(月收入未知)
对于 Scraper API,我很早就知道能够抓取 JavaScript 渲染的网站很重要。就无头浏览器而言,Puppeteer 正迅速成为行业标准,所以 Node.js 显然是我们后端的选择。到目前为止,我对 Puppeteer 只有好评 —— 它是一个经过精心设计的库,并且正在积极开发中,在依赖一个开源项目之前,这是我总会检查的一点。
在前端,我们使用 HTML、CSS 和主要是原生 JavaScript,再加上一点 jQuery。很多初创公司很快就会选择一些新的流行框架,如 React 和 Vue.js。我倾向于认为,除非你打算有一个相当复杂的前端,否则这些框架通常是大材小用。
定制宠物用品
分享:Charlie Gearside,Petflair 创始人,Petflair(月收入 1.5 万美元)
作为一家电子商务企业,我们的主要优先事项是可靠的交易,所以我们在高度定制的 Shopify 店面基础上构建了大量自定义功能。
我们在交易前使用 jQuery 处理客户数据,然后在客户通过 Shopify 付款后使用 Zapier。我们发现它相当可靠,而且在速度和可靠性之间的权衡是值得的,尤其是在我们从 Kickstarter 项目起步的时候。
从那以后,我们业务的运营方面很复杂,人们的宠物照片会交给外包设计师处理,然后通过邮件沟通,最终送到我们的工厂。为此,我们混合使用了自定义的 MEAN 栈和 Zapier。
无代码构建产品的屏幕录像教程
分享:Ben Tossell,newCo 创始人,newCo(月收入 0 美元)
我的技术完全是无代码的(因为这适合我的业务,也适合教别人做同样的事情!)
- Webflow:用于着陆页(实际上我还用它来做受密码保护的 “会员” 页面)
- Typeform:用于会员提交(和支付)
- Stripe:用于支付处理
- Airtable:数据库
- Zapier:用于连接所有东西(自动发送邮件、处理付费会员、发送收据、发送新教程、添加到数据库等等)
我选择这条路线开始,是因为我想在投入之前验证 newCo 是否能切实盈利。在我的业务中,我教人们如何无代码构建初创公司,所以这与我的目标受众非常契合。