{"componentChunkName":"component---src-templates-blog-post-js","path":"/tailwindcss-story/","result":{"data":{"site":{"siteMetadata":{"title":"Viking Zhang, 一个前端开发工程师以及独立开发者的故事"}},"markdownRemark":{"id":"f42a3e28-6400-58ca-87ce-2da5ada7f2e7","excerpt":"本文改编自：https://adamwathan.me/tailwindcss-from-side-project-byproduct-to-multi-mullion-dollar-business/   如果感兴趣，可以阅读原文。 视频版本：在 Youtube…","html":"<p>本文改编自：<a href=\"https://adamwathan.me/tailwindcss-from-side-project-byproduct-to-multi-mullion-dollar-business/\">https://adamwathan.me/tailwindcss-from-side-project-byproduct-to-multi-mullion-dollar-business/</a>   如果感兴趣，可以阅读原文。</p>\n<p><strong>视频版本：<a href=\"https://www.youtube.com/watch?v=jJIJQ5JpwM4&#x26;t=12s&#x26;ab_channel=%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E4%B9%8C%E6%89%98%E9%82%A6\">在 Youtube 观看</a></strong></p>\n<p>大家好，好久不见，欢迎大家来到我的频道，今年上半年一直在忙架构师课程的事情，到现在才有时间给大家录点好玩的，今天我们要谈的是开源库怎样赚钱。</p>\n<p>对于一个程序员来说，开源库是我们接触也用的最多的一系列内容，开源是程序员共享的一种伟大理念，当然假如你有一个 5k star 的项目，受众人欢迎，每天 npm 下载好几十万，但是你知道怎样将它变现吗？那么今天就来分享一个从个人兴趣项目到年入几百万美元的开源库的故事。</p>\n<h3>首先：搞开源，赚钱很难</h3>\n<p>首先先上最近的一个新闻，前端人天天使用的 babel ，一个 39K star 的项目，几乎是前端工具链每人都是用的工具，居然发了一篇博客宣称：没钱了。\n<a href=\"https://babeljs.io/blog/2021/05/10/funding-update\">https://babeljs.io/blog/2021/05/10/funding-update</a></p>\n<p>文章中称：这个项目由核心成员构成，并且他们以全职在该项目工作，每个月领取工资。由于 babel 处于工具链的环节，被人感知到的场景比较有限，所以没发很好的拉到广告，加上 2020 年新冠，赞助减少，入不敷出，所以号召大家捐钱。\n所以说，<strong>搞开源，赚钱很难</strong>。\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/fbffce336dd2e9d6669bf802b84662df/ec071/babel.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 56.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAABJElEQVQoz51S0W7CMAzs///bpD0gBqtGB4xCkzShkDjQxPGcAhODSpN2D+1F8flcX4uEGEKgUWBPEQaWRu+LGKNzLqWH6+F4NnQS/xVDTX13mYFywWOLgme21j53DRGrRVmWs/0+64fmiT8EMbGELa/OMOJMGLyRX1puO/FxMhXoKnQVwdrqdVWt6k3NwgIRvffPYgrHhGeKutm8z6aT6eS1lbvs7hs8LBL+OAP8FifyO4JdSrkiRjz3oe/5favhpineLwz5YB2Yzp7cgdySYDue393aBjEMYaKX9ed88tKpJadE0dNfKHIiXWObN1Al6AWYlbMdj+AccArOZvBo9oYLv247i+1RiW2rTav3UhkplZSybRWDCT+YSymYCyHUgMtP+Q2/2YEsOyYi8AAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/fbffce336dd2e9d6669bf802b84662df/799d3/babel.png\"\n        srcset=\"/static/fbffce336dd2e9d6669bf802b84662df/00d96/babel.png 148w,\n/static/fbffce336dd2e9d6669bf802b84662df/0b23c/babel.png 295w,\n/static/fbffce336dd2e9d6669bf802b84662df/799d3/babel.png 590w,\n/static/fbffce336dd2e9d6669bf802b84662df/2a3d6/babel.png 885w,\n/static/fbffce336dd2e9d6669bf802b84662df/ae92f/babel.png 1180w,\n/static/fbffce336dd2e9d6669bf802b84662df/ec071/babel.png 1536w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>Babel 的资金曲线的变化。</p>\n</blockquote>\n<h3>两种常规变现方式</h3>\n<p>一般的开源工具，变现有两种方式。</p>\n<p>用爱发电❤️，一些出名的开源项目，最多采用的方式，现在在国外的平台，使用最多的是 patreon，它是一个非常知名的面向粉丝的众筹网站。每月付一定的金额，就可以有权限访问一些特殊的内容。这里有一个出色开源项目在 patreon 的列表<a href=\"https://github.com/uraimo/awesome-software-patreons\">https://github.com/uraimo/awesome-software-patreons</a>。大家可以看到很多熟悉的名称。比如 HomeBrew 和 iTerm2 ，用 mac 的都用过。但是其实这些软件使用 patron 并不是作为众筹平台，因为它们往往不能给订阅者提供什么附加价值，而是完全处于捐赠的目的。</p>\n<p>所以用爱发电肯定是赚不了大钱的，比如 HomeBrew（<a href=\"https://www.patreon.com/homebrew%EF%BC%89\">https://www.patreon.com/homebrew）</a> 那么多人用，一个月只有 2500 刀，所以这些工程师都是伟大的人。\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.46570397111914%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsSAAALEgHS3X78AAABtElEQVQoz6VS207bQBDNL/KICkJCLUIC8QLqn/DSD+gD9EZLC0WiQBQIuVk0JCEERRFUrdJg7PXu2hvHnh1mY6jSyPAAq+PZ9cw5M7OXDKYNrbXj3LiOY1/3yEZRlErL0BdFgyAIpBRSCBUEvi993z9r1CqlglUulEvHtt3r95UkhuBkiKJUcCcehCG5PY8RfCk49xhzKQeRwjA0yaTwhwHBPeIQmXAnfvLIjG01WVBNqk6/plHu0S5GWeliBNBxTPN5vXaU3QtVUCnmD7N7zVrViCgEYJAuTjJQZUSJ2EftaxBaq8faTrplDN9v4NoHXP+I7z7h52/4Zctgc9v4E+fbdSxZ/ySZpFtj2x2cnsPJWZx6hVMvcWEZF1f0wrJeeo0z88ZD0YkXuPrmf/H9aYGUwDnYNrgMGAMutFLDtQe9a2OFgHCQsmcdRbHjGnQu41+/Y5fFHgelzKJnxxftuPuXoiDkgwemxzC8vVE8eM/PeiQAcJjb39neLBfzVqW48/1rLvujkM+Rh647e7Db7f4ZfUvj4lazUf1p1WvVq8tOu91q1E8vWs3qiUX2rH7qOjej4lsWE02HWDdfmwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/3613a95de9a4d55fd667b2c7ee4de72a/799d3/homebrew-patreon.png\"\n        srcset=\"/static/3613a95de9a4d55fd667b2c7ee4de72a/00d96/homebrew-patreon.png 148w,\n/static/3613a95de9a4d55fd667b2c7ee4de72a/0b23c/homebrew-patreon.png 295w,\n/static/3613a95de9a4d55fd667b2c7ee4de72a/799d3/homebrew-patreon.png 590w,\n/static/3613a95de9a4d55fd667b2c7ee4de72a/2a3d6/homebrew-patreon.png 885w,\n/static/3613a95de9a4d55fd667b2c7ee4de72a/124cd/homebrew-patreon.png 1108w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>打广告，比如在官网上打广告，既然框架用的人多了，那么自然文档看的人多了，有流量就有钱，比如 Vue 的官网。\n我们能在这里看到有一大堆密密麻麻的广告，其实也就是赞助商，当然这个其实和刚才用爱发电是类似的。\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/466f6c2579506bf98ec32d8a9c4ed403/85e4f/vue-supporters.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 79.84581497797357%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAIAAACZeshMAAAACXBIWXMAAAPoAAAD6AG1e1JrAAACzElEQVQoz01TS2/TQBD2X+0F8QM4cYAbCKQekCoukbggoBwAcaBpaYmAhtLm0YSkjV+xHcdtnGQdr9frnfUjVIxjqBiNVqudndlvvvlWAQABcLtWliQ8ojSKIkLIarUqo//sv1ugSCnTtPQsS9FxgxYnsKJRHLMlIUEQYA4GiqLIbm9IWSbzOF6sKA1ZQCghYRhGSQKSuMSzVN3QNM2yLMxZLpe2bfu+j1gQEd7DfIV4s5Nzs9sxm8cXpz/VdkvnQmbaoXr8cfvZztPHj57v7OAjruvWarVGo1Gv13EdjUYIRJEC8hJ5WqxzbeRMrCtK2cJfkEWAtQmIFecxY7jnG8MWcP3bsyjp2VCRiDtbTx7er/3qG+2zy/F4KuL4jee+P+829g8+7e3t7u72+/08zxNsrEquiK4o6bZUTZ0wxqMozoscOQkSEW+ijLEyp6IX2aoIE5BgtCLw5uZ3AVwmXOJhzLBoxkPgDCEAHuIp8omOhRC5EEpDbbXVoW17huVQxoU3hbEBizlMp8ATpn0LreHSVBf6EIfvtc+0fk81DOJOgFKFhZTHSEGCS6kAtoIogNCXy0mpFkQFspTGBucGYQm7YknJTjrStOXYkdoYKMs6L/O3W/n+g+zd3cI3kLTvgfm13flx2sUKZD7v9S4Gl7plTRC/IiKGlSsvyaNzubRl4EEwhZhykEygjqKYRfg2dotDTHiCQkMkynA4OGu12p3SeCIYDUNHp45GZlcg0y+O7F7LwTztXEtZ3Hw4at7bfjHQrO6FzmKuCJnCpo/NzITMc5xZJqufIphA0a95VjCZ45BWEZ8tApxYhGIBqQBxp5ZumGMP6ZUyMMezievP5yhgFKDr2O1+b1avrw8P0zynM2e58EVwlVIfR6jATPPGqmnZV54ns/R6MDRHqjOZ4B9AMQWEHDWb4vMBvH6Vr9eWdmnoOvcu5fUIWPgHYOBl3BeKMjYAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/466f6c2579506bf98ec32d8a9c4ed403/799d3/vue-supporters.png\"\n        srcset=\"/static/466f6c2579506bf98ec32d8a9c4ed403/00d96/vue-supporters.png 148w,\n/static/466f6c2579506bf98ec32d8a9c4ed403/0b23c/vue-supporters.png 295w,\n/static/466f6c2579506bf98ec32d8a9c4ed403/799d3/vue-supporters.png 590w,\n/static/466f6c2579506bf98ec32d8a9c4ed403/2a3d6/vue-supporters.png 885w,\n/static/466f6c2579506bf98ec32d8a9c4ed403/ae92f/vue-supporters.png 1180w,\n/static/466f6c2579506bf98ec32d8a9c4ed403/85e4f/vue-supporters.png 1816w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>但是作为这种大型的开源项目，回报也是实在的，官网上很大的一块地方是属于你的。这也算是用另外一种方式的回报了。在 vue 的 patreon 页面，黄金赞助商的描述写的很清楚， 700k 的pv， 50k 的 uv。</p>\n<p>这就是现在开源项目盈利的基本方式，主要就是广告和捐赠。那么有没有什么样的方法来赚钱或者变现甚至是发财呢？</p>\n<h3>Tailwind.css 的缘起和发展</h3>\n<p>现在进入正题，来说 Tailwind.css - <a href=\"https://tailwindcss.com/\">https://tailwindcss.com/</a> ，这个 css 库在2020年火的一塌糊涂，这下载量坐了火箭一样一阵狂冲。从每天不到 20w 狂冲到 接近 70w。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b3c4b11eb5a7431dc885dd1e0c96f153/97733/tailwind-download.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 38.50226928895613%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAAAsSAAALEgHS3X78AAAAwklEQVQY031Ri47DMAjL///rqt36gAAm5yRrO51Os1BKABtCy7Is67qqKk8zaycsMgLtK0pm8nOdBLqfj8120QRy5k7MmwczrUREJ4yim4+rZw8yyUFohyGAveJ5cKz8S770kY0h83xJ0LaKl2BVPCVIfo+NiFkdQ57zVO8dSGDpUcEgPnQfe6hjMFpRm6qUx6bdfjptjJP3O1k6FZD3EopYXyrbIv/ZZ+bXbQNsAhUJdwxwCyKCE+7OHzl99qwD0/8FQq/ZfKgBiFAAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/b3c4b11eb5a7431dc885dd1e0c96f153/799d3/tailwind-download.png\"\n        srcset=\"/static/b3c4b11eb5a7431dc885dd1e0c96f153/00d96/tailwind-download.png 148w,\n/static/b3c4b11eb5a7431dc885dd1e0c96f153/0b23c/tailwind-download.png 295w,\n/static/b3c4b11eb5a7431dc885dd1e0c96f153/799d3/tailwind-download.png 590w,\n/static/b3c4b11eb5a7431dc885dd1e0c96f153/2a3d6/tailwind-download.png 885w,\n/static/b3c4b11eb5a7431dc885dd1e0c96f153/ae92f/tailwind-download.png 1180w,\n/static/b3c4b11eb5a7431dc885dd1e0c96f153/97733/tailwind-download.png 2644w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>tailwind.css npm 下载量，图表来自：<a href=\"https://www.npmtrends.com/tailwindcss\">https://www.npmtrends.com/tailwindcss</a></p>\n</blockquote>\n<p>但是它的起步就是作者的一个简单的 side project，大家都知道对于 css 库来说，之前 Bootstrap 几乎处于垄断的市场，作者(Adam Wathan)一开始做一个分享 URL 的兴趣项目，本来想使用 Bootstrap4，但是因为 Bootstrap 使用了 sass，而作者更喜欢 less，所以他就自己搞了一个简单的样式库。</p>\n<p>当然它这个样式库搞出来一点花，那就是称之为  utility-first ，啥叫 utility-first，就是创建一大堆的 css class，各种 class 都代表一种比较小粒度的样式，小到啥程度呢？连一个颜色都整出一大堆的色号来，切分的稀碎。</p>\n<p>这样做的好处：那就是自由度高，不像其他的 css 框架给你预设了一大堆的样式，你可以随便组合里面细粒度的各种类名，而且这些类是精心给你准备的，颜色字体大小正好看，然后能组合出一大堆的风格各异的样式。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/41925eda12725530364005cb27587271/ae92f/tailwind-style-1.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 45.93220338983051%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsSAAALEgHS3X78AAACFklEQVQoz0VQTWgTYRRcvCqCoOLBm4h6EqsXUbx6EDxI0CDoSaitiFVBRbQY1FIpmiWp2moTo2lr2kSKtMSYPzXWlNJufrpp0t3EaEmySTBNdzfZ3W///ZIKPoZh4D1mhofk3/eRgbG42zLYY/wy8ojw2n6HXXJ2Uc1h2s+YTC4oJKZm41o2oRAxmcDEDCanF9czS2ZTP4IHJ+MZPDA92nX+pGfKlUjOk7n0Gs0k0ivEr1WcIFMEmS+UYvhynW3oul6jG4VKDWj6bCCMpHzOWGJudsbpMt/xOK1zEW8+i4tAqJQrLMNIIgACD8E1m4os65qqqoosSdDl2+cgsuyfWErOm03Xbnef6zQcvXvFkMYXJElmGAYeqpqmKIreHkVVW6woPM9DEfGHkNWo9+GDG8c79tgGrneePXH4wK53r1G44zgOsqZpkDdcpHYgAGCtVv+XnI9Mo09NF04dsVt6LxmO3eu5+NH9doUgrFaLw/HGZh8ZGnpZrVahC9eedu9Wl+/+MJLxe0K+yftdp5/0Xt29bdPNy8b1PwULim7dsrnj0MH9+/bu3LE9jmGwQ6lYpIpFwPPwA6qmfvUFENw38SMa/DTzAX32uM90a3iwP0csibJMs406TdMs24BxgtAUBEEUIXgANr7QSk6Ov0hFQ1P24W7jmfHnqG/0FRENi9WqUC7zVEmgqJYolbj/oABVUdmG2zH2F8sIp47uqxZWAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/41925eda12725530364005cb27587271/799d3/tailwind-style-1.png\"\n        srcset=\"/static/41925eda12725530364005cb27587271/00d96/tailwind-style-1.png 148w,\n/static/41925eda12725530364005cb27587271/0b23c/tailwind-style-1.png 295w,\n/static/41925eda12725530364005cb27587271/799d3/tailwind-style-1.png 590w,\n/static/41925eda12725530364005cb27587271/2a3d6/tailwind-style-1.png 885w,\n/static/41925eda12725530364005cb27587271/ae92f/tailwind-style-1.png 1180w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>同样的布局完全不同的界面，图片来自 tailwindcss 官网</p>\n</blockquote>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7babce8c3eafe883973b0303d8cbc05e/50334/tailwind-style-2.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 53.4923339011925%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACbklEQVQoz1XPbUgTcRzA8f9stNyat82ZThQ1LdE00F70YEQZWhBhFL3vgQJfZCn0YJFRVKREYqJGJtZmIKKZD5m4bncWVKAZ6nLe3bbLm48r02z37O66RYZ9+PJ79fu9+IH8tOiCrbGHMyyH0mPyN5kPbI5SZl5y5L4EKDfRkJds3hOnz0005W2M+luS0gaLVmcJN4DzxSWDn0feD3x60dWjg8wavV6jVSelpKakZ0ZGx6SkpmVvz9Hq9AAAlUoFVjGqw8GFwlNL836WDszNTkPGuPUGc4RpXeaWjJxdO7dlZSckxJmjIMigDVMB5fRfCpNaC44fO4o7RxYWFoaHBq+fzTqyNzo+3mQ0mi0hsZAhQq0BkEmzRh0G/he5VgcaG63dba2YC0Nb6j3V+53t15BuG4y8e2O399n7YBhGHCgMO1AEVfT3979dcaPkMpj9No+Pj30ccFacK+k9vaP+ZM6sG5VkmWYW5RBJXiUYDIqiyHGcFAy2NFiBjyS8SPPQgxOdZ3KRS7vbS7WUG16WZJpdEkVBEHllVVjB8/zSH5IkWWseA++Htp6LB5+XFVurqp49Km+1lk9SFMY0v6YKXzqLOsaKeqkicnr0x/dF36SPoii/3z8zM0OSpK3uCcAwvKvjle1pU+Xtm3eulKJwX+DXPDYHO1yVjtFah7MGcVV7J8ZI71c3QeDKNoZNTU0FAgFbbT3APLi9t72zzVb38O79e2UI2vUzMBcUZZ6TOFYWhVCCsExzLM1yrCAwPK+8ofzfVNcAWMrNkKPshIujxjnfOE1+YTw44yZCkyBWcjOEJxTuoZUwj3vYWXH11m9ZaH/fkgty6QAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/7babce8c3eafe883973b0303d8cbc05e/799d3/tailwind-style-2.png\"\n        srcset=\"/static/7babce8c3eafe883973b0303d8cbc05e/00d96/tailwind-style-2.png 148w,\n/static/7babce8c3eafe883973b0303d8cbc05e/0b23c/tailwind-style-2.png 295w,\n/static/7babce8c3eafe883973b0303d8cbc05e/799d3/tailwind-style-2.png 590w,\n/static/7babce8c3eafe883973b0303d8cbc05e/2a3d6/tailwind-style-2.png 885w,\n/static/7babce8c3eafe883973b0303d8cbc05e/50334/tailwind-style-2.png 1174w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>同样的布局完全不同的界面，图片来自 tailwindcss 官网</p>\n</blockquote>\n<p>也因为 tailwind.css，就诞生了一堆出名的 meme 图，所这其实就是倒退到 10 年写样式的时代了。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/573285299355eeb3779eea5f4ae11def/7eb62/tailwind-2.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 68.88888888888889%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABac8lvCCf/8QAHBAAAQMFAAAAAAAAAAAAAAAAAgABFAMREhMV/9oACAEBAAEFApj2mroIixGkxOWkF//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/AUn/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwGq/8QAHhAAAgEDBQAAAAAAAAAAAAAAAAERAyGhEzEzQWL/2gAIAQEABj8CnT39F6eTiyJrsTkvMn//xAAaEAACAwEBAAAAAAAAAAAAAAABIQARMUHw/9oACAEBAAE/IQQMPHJfS1ihVDtoksmyl9hvJcZoz//aAAwDAQACAAMAAAAQ7/8A/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oACAEDAQE/EIRj/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/EBNi/8QAHRABAAMAAQUAAAAAAAAAAAAAAQARIUExUYGR4f/aAAgBAQABPxBP1bOXqNKDQvbrMyDyRXf5nU4TQrw5YSzdJrHlyKKSqKFs/9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/573285299355eeb3779eea5f4ae11def/88218/tailwind-2.jpg\"\n        srcset=\"/static/573285299355eeb3779eea5f4ae11def/7237a/tailwind-2.jpg 148w,\n/static/573285299355eeb3779eea5f4ae11def/0cfdf/tailwind-2.jpg 295w,\n/static/573285299355eeb3779eea5f4ae11def/88218/tailwind-2.jpg 590w,\n/static/573285299355eeb3779eea5f4ae11def/7eb62/tailwind-2.jpg 720w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>左：不能把HTML 结构搞的乱七八糟的，这样做很难阅读而且不语义化！\n右：各种css类名。。。</p>\n</blockquote>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2c5fc964c523e41917b4302c48862061/7459a/tailwind-meme.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 85.9375%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAUEAwb/xAAVAQEBAAAAAAAAAAAAAAAAAAAEA//aAAwDAQACEAMQAAAB5XZlEl9AXDz9cKnSFG//xAAdEAACAgEFAAAAAAAAAAAAAAAAAwECEQQSITIz/9oACAEBAAEFAt81umcrGWwI5UX76bxP/8QAFxEAAwEAAAAAAAAAAAAAAAAAAxAxMv/aAAgBAwEBPwEsRcr/xAAYEQACAwAAAAAAAAAAAAAAAAADEAERIf/aAAgBAgEBPwEGzaAv/8QAGBABAAMBAAAAAAAAAAAAAAAAAQAQESH/2gAIAQEABj8Cg1gdg5TCv//EAB0QAAICAgMBAAAAAAAAAAAAAAERACEQsTFBUWH/2gAIAQEAAT8hZlU+4AIaMf0Tgoyq5biHgw9/eP/aAAwDAQACAAMAAAAQDwj8/8QAGREAAwADAAAAAAAAAAAAAAAAARARMYGx/9oACAEDAQE/EComRY9cX//EABoRAAICAwAAAAAAAAAAAAAAABAxAREhgdH/2gAIAQIBAT8QklWOBtD/xAAeEAACAgICAwAAAAAAAAAAAAABIQAREKExUXGxwf/aAAgBAQABPxBlKErMGDVMIvzLQECQvgIQgBgq6Zxev8E2/dj/2Q=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/2c5fc964c523e41917b4302c48862061/88218/tailwind-meme.jpg\"\n        srcset=\"/static/2c5fc964c523e41917b4302c48862061/7237a/tailwind-meme.jpg 148w,\n/static/2c5fc964c523e41917b4302c48862061/0cfdf/tailwind-meme.jpg 295w,\n/static/2c5fc964c523e41917b4302c48862061/88218/tailwind-meme.jpg 590w,\n/static/2c5fc964c523e41917b4302c48862061/7459a/tailwind-meme.jpg 640w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>回到正题，毫无疑问, 这个兴趣项目没做半年就被扔进垃圾堆了，他又开始搞第二个兴趣项目，不过之前死的项目留下了一个遗产，就是这些样式类，每个新项目他都把这些样式文件拷贝一份作为开始。同时他在搞第二个项目的时候，他还是开始搞起来了直播写代码，以此激励自己好好写项目。</p>\n<p>正是这个直播，让一些人看到了他写的样式库，有的老哥还直接留言向他伸手要这些样式代码。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/cb43def08cbcd68589b2cc75ecc99b07/1fdc7/youtube-comment.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 24.24892703862661%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAAtklEQVQY01WPTQ6DIBCFPU3T9N5dNOkN7Mqd8QzIjxB1oU1REZDEvmJJ2m8xzDzyhkdmrVVKoU6TfkaMMeu6okLcEt771IZjdM5lRVFczqdHnjPGyrKsqooQIqWklColp4jW+qivxLIsH7MQ4n67Mkr7vm+apm1bIRqIdV3DzzlHj704OGMkgnEYBiTJQgj7viMGwmN913W4GMcR72DjkdxHth++sW0CTnwVeUxinmfoLmH/gfIGABEVPbdvuDIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/cb43def08cbcd68589b2cc75ecc99b07/799d3/youtube-comment.png\"\n        srcset=\"/static/cb43def08cbcd68589b2cc75ecc99b07/00d96/youtube-comment.png 148w,\n/static/cb43def08cbcd68589b2cc75ecc99b07/0b23c/youtube-comment.png 295w,\n/static/cb43def08cbcd68589b2cc75ecc99b07/799d3/youtube-comment.png 590w,\n/static/cb43def08cbcd68589b2cc75ecc99b07/2a3d6/youtube-comment.png 885w,\n/static/cb43def08cbcd68589b2cc75ecc99b07/1fdc7/youtube-comment.png 932w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>一个老哥在 youtube 的留言“请给我整一套你的 Less 样式，看起来很厉害”</p>\n</blockquote>\n<p>在 2017年推出来的时候，当时大家都用的 bootstrap， 整个界面搞得是千篇一律，同质化非常严重，审美疲劳，很多前端开发看到，bootstrap 那个非常有辨识度的 button 就头疼，潮流这种东西，假如是千篇一律的就非常的无聊。比如这非常有特点的导航条，一看就是直接用 bootstrap 模版整出来的网站。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bac9665f17291c72d19ec8cbe0b93983/c36d7/bs-nav.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 13.53558926487748%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAIAAAAcOLh5AAAACXBIWXMAAAsSAAALEgHS3X78AAAAhklEQVQI11WKWwrCMBAAc6bGa6THab5E2+CvGFPvIGnrwQRBqs1rE3QTQXQZlmF2ye169zYAxBTT8rRmcSghQIT4mI0xLqUEAbwL1vjX/5D9+nzsBiXGXkxyqxElJtWNWA4bLduhF9mxyFafdpdfSL3ijDasytQUnbOqbMrxVEqTvfB5+/IGrfBw9HDO9wkAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/bac9665f17291c72d19ec8cbe0b93983/799d3/bs-nav.png\"\n        srcset=\"/static/bac9665f17291c72d19ec8cbe0b93983/00d96/bs-nav.png 148w,\n/static/bac9665f17291c72d19ec8cbe0b93983/0b23c/bs-nav.png 295w,\n/static/bac9665f17291c72d19ec8cbe0b93983/799d3/bs-nav.png 590w,\n/static/bac9665f17291c72d19ec8cbe0b93983/2a3d6/bs-nav.png 885w,\n/static/bac9665f17291c72d19ec8cbe0b93983/ae92f/bs-nav.png 1180w,\n/static/bac9665f17291c72d19ec8cbe0b93983/c36d7/bs-nav.png 1714w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/36c18/bs-nav-2.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 10.304449648711943%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAIAAADXZGvcAAAACXBIWXMAAAsSAAALEgHS3X78AAAAcklEQVQI1xXGWwrCMBBA0S7CisFatH5JhXQmmYeJsXnY/W/JCpfD7byjoCFodOgRnLCS58UCEzOJRwILyrIrJLCg+P/X0pRf3eMQ5z7Ox/jsoz0lMB80yZnEQ9Zh1fMaLvk9ljSWfK17bfq2W93uW5vaD7kGF+l9EcJaAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/799d3/bs-nav-2.png\"\n        srcset=\"/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/00d96/bs-nav-2.png 148w,\n/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/0b23c/bs-nav-2.png 295w,\n/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/799d3/bs-nav-2.png 590w,\n/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/2a3d6/bs-nav-2.png 885w,\n/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/ae92f/bs-nav-2.png 1180w,\n/static/bebd609d1f8fbdc2b0cfc54f6ff3769c/36c18/bs-nav-2.png 1708w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>经典傻大黑粗导航条-非常多的国内山寨网站都使用了 Bootstrap</p>\n</blockquote>\n<p>有更多的工程师联系到了 Adam，希望以这个简单的样式库为蓝本，开源一个有着新的理念的也就是 utility first 的样式库。经过几个月疯狂的 coding，他们上线了 0.1.0 版本</p>\n<p>在程序员审美疲劳苦苦追寻第二个选项的时候，这个时候他们看到了 tailwind，程序员需要个性，先不管好不好看，要的是个性，然后发现用它搞出来的东西可以这么美，这么多变。就折服了。越来越多人使用，口口相传，这流行度也自己嗖嗖的往上冲。Adam 被工程师的热情震惊了，也在这个时候宣布，辞职，全职参与 Tailwind.css 的开发，同时成立了 Tailwind Labs。</p>\n<h3>工程师使用 Tailwind.css 困扰</h3>\n<p>我也在这个时候开始用 Tailwind.css，对于样式，我也是一个喜欢跟风的人，一些小的项目开始拿它试手，但是我在使用过程中慢慢发现有一个问题，它给你高度可定制化的类名，就像给你一堆高质量的食材，但是只有出色的厨师才能将它们完美的组合成一道菜，它的官网只有一些简单的组件，假如你像做出整个网站来说还差的很远。</p>\n<p>这时候就有很多人发布自己组合出来的成品，供大家使用，做成一系列的小模块，或者组件。这时候像我这样的开发就可以拿来即用。很多人开始做了一些二次开发的通用模块，给大家使用，很受欢迎。比如 <a href=\"https://tailblocks.cc/\">https://tailblocks.cc/</a>，它收集了使用 tailwind 写好的各种模块，供开发者选择使用，一键拷贝，很是方便。</p>\n<h3>商机</h3>\n<p>这时候创始人 Adam 就嗅到了这个商机，我是tailwind.css 的创始人，“没有人比我更懂怎么组合类名”。</p>\n<p>他就开始开发官方的 tailwindUI，其实就是网站元素的合集，并在安装一千万次的时候，发布了 tailwindUI的官网，正式开始卖皮肤。<a href=\"https://tailwindui.com/\">https://tailwindui.com/</a></p>\n<p>大家访问它的官网可以发现，他将场景也切的很碎，几乎涵盖了一个常见网站的所有要素。\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/e032bfc1e22686cfd84fb1e00f287d95/eff2e/tailwind-ui.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 53.541666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAABXklEQVQoz11Si24jIQzM/3/lSW1OaRsWWIwfGDY3sFHTK0IrMB6PZ7yXEGJrfm5mrczre25h0b3UdTDEVY1mhuFq1i69jxNp5qJ6/Vu2UJBNVfBtrZt1Vce5Vrz39zcR6Wehyzdt886VQ8je+7lBErYkYiDA1URjzMw+xnCfkBe4u29VMtU+jyBsspoEso+jtZZZQyGURe4JeYJtBvxPpi8SKpp3voeEzoGEnD5G3PJbos+qey5qLWxoQV/MwDeEza/vSmQi0zMEZ6z51MsKgkJTBYxE/AVGq4XqPUSquIxxHHD5fo/W2pjr4OkZLzvm9T/Nc1Siq1VodngLcj4p3IU1km7Ey62OV/vJjD37hJ5QU5ItwjtkeMoEw1Pcr4luhbeQ8k5Ts+gvMAbbKlmMKGJrsG2N2nGAZiShoOKPwPMvzftebrdPdPt4PI7jKKWWQsdzPVD69vEFUXhdw/N/4Dp+G18NajgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"图片\"\n        title=\"图片\"\n        src=\"/static/e032bfc1e22686cfd84fb1e00f287d95/799d3/tailwind-ui.png\"\n        srcset=\"/static/e032bfc1e22686cfd84fb1e00f287d95/00d96/tailwind-ui.png 148w,\n/static/e032bfc1e22686cfd84fb1e00f287d95/0b23c/tailwind-ui.png 295w,\n/static/e032bfc1e22686cfd84fb1e00f287d95/799d3/tailwind-ui.png 590w,\n/static/e032bfc1e22686cfd84fb1e00f287d95/2a3d6/tailwind-ui.png 885w,\n/static/e032bfc1e22686cfd84fb1e00f287d95/ae92f/tailwind-ui.png 1180w,\n/static/e032bfc1e22686cfd84fb1e00f287d95/eff2e/tailwind-ui.png 1920w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<blockquote>\n<p>(tailwindUI 的各种场景，非常详细，涵盖一个网站需要的各种元素，注意带锁的是要付费才能使用的)</p>\n</blockquote>\n<p>所有场景的组件总共售价 250刀，解锁所有皮肤。而且可以用于无限项目。</p>\n<p>这个时候 tailwind 已经非常火非常火了，安装都一千万多次了，官方组件的推出一下就卖的很疯狂，其实和我一样，不懂美的开发者太多了，250刀在国外很多开发者来说，做UI 花 250刀其实并不贵，加上很多人对这个开源项目的真心喜欢，疯狂的买买买，6个月的收入就达到了惊人的 200万美元。你是不是很难想象靠着卖皮肤能赚这么多钱？</p>\n<p>这就是 Tailwind 的故事，从一个有几个mixin 的 less file发展到了几百万美元的生意。看起来是小概率事件，其实还是这个项目从很早就收获了非常多的关注和很多人的喜爱，在这个时候变现就非常容易。作者现在在扩张团队，除了做皮肤之外，又开始做更多的开源项目，比如一个 headlessui components 一个无样式，支持完美可访问性的组件库，可以很轻松的和 Tailwind CSS 组合在一起。</p>\n<p>这种从开源项目到扩展的收费项目也是目前开源的一大趋势，其实 bootstrap 在很早的时候就已经开始卖皮肤，也上线了一个 themes: <a href=\"https://themes.getbootstrap.com/\">https://themes.getbootstrap.com/</a>的网站，不过让第三方公司做模版，自己从中抽成，而 tailwind 是创始者自己写的官方模版，听起来更有诚意。也可以笼络更多开发者的心和付费的意愿。</p>\n<p>好，今天的故事就讲到这里，希望能给大家一点关于开源软件盈利的收获，也同时感谢那么多开源软件的创造者，正是他们共同的努力，才造就了现在生机勃勃，百花齐放的计算机领域。</p>","frontmatter":{"slug":"tailwind-story","title":"开源软件怎样赚钱？ - Tailwind.css 是怎样半年赚到 200万美金的","date":"May 20, 2021","excerpt":"对于一个程序员来说，开源库是我们接触也用的最多的一系列内容，开源是程序员共享的一种伟大理念，当然假如你有一个 5k star 的项目，受众人欢迎，每天 npm 下载好几十万，但是你知道怎样将它变现吗？那么今天就来分享一个从个人兴趣项目到年入几百万美元的开源库的故事。"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/tailwindcss-story/","previous":{"fields":{"slug":"/how-much-i-make-in-one-year/"},"frontmatter":{"title":"我作为独立开发者一年赚了多少钱?"}},"next":{"fields":{"slug":"/dracula-story/"},"frontmatter":{"title":"开源软件怎样赚钱？- 他通过卖一个 Dracula 简单主题配色狂赚 15w 美金"}}}}}