有一天我需要访问 Fly 的 API 以支持自动签发 SSL 证书,Fly API 基于 GraphQL。我一向不太喜欢 GraphQL,精神洁癖让我不想增加一个 GraphQL Client 依赖。我想到 GraphQL 底层基于 HTTP 和 JSON,为何不直接访问接...
Rails 8 将会继续将 Hotwire 作为默认,我觉得这很好。Hotwire 是以服务端渲染为核心的前端方案,由于服务端是数据的根源,大部分应用可以通过服务端渲染解决问题而不用考虑数据同步。
从 Rails 7 开始,Importmap 成为处理 JavaScript 加载的默认机制。它可以充分利用 HTTP/2 的并行下载和缓存机制,避免打一个大包每次改动都需要下载所有代码。
我的综合评价是:9分。(作为参考,荒野之息10分,法环9分,仁王9分,巫师三8分,FF7重制版5分)
一个 Web 应用的界面内容根据交互复杂程度可以分为三类:
有时视频比文字的表现力更强,很高兴宣布 Geeknote 增加了嵌入视频的支持。
最近无意中发现,Google 的 Material Design Web Components 项目又被放弃了。为什么说”又“呢?因为之前有个 Material Components Web 也是被放弃了。这也意味着 Material Design 从发布至今,根本没有一个...
最近将 Geeknote 的图片处理换到了 imgproxy,记录一下过程。
Importmap-rails 默认的加载来源是 CDN,但是公共 CDN 在国内访问不稳定。另一个方法是将 JavaScript 下载到 vender/javascript 目录,但是这个方法需要将外部 JavaScript 签入源码管理工具,导致源码体积变大。
原合集功能借鉴了 YouTube 的 playlist 功能,通过设置公开或者私有同时承担了收藏和分享的功能。经过观察,在实际使用中合集功能主要作用还是收藏,分享功能并不实用。
SaaS 支持客户子域名和自定义域名是很常见的需求。Caddy 是一个支持自动申请 HTTPS 证书的 Web server。最近用 Caddy 实现了子域名和自定义域名的自动 HTTPS 配置,记录如下以供参考。
写 Web 应用的时候,经常需要写这样的 HTML 片段:
最近在 Fly.io 部署了一个 Meilisearch,记录一下过程。
今天 GeekNote 上线了一些设计更新,本文列出有什么变化以及背后的思考。
Tailwind CSS 是一个实用类优先的 CSS 框架。跟其他 CSS 框架的主要不同是它不提供组件层面的样式,而是全部都是实用类。我之前写过一个简单的介绍:Tailwind CSS 浅析。
最近 GeekNote 发现了一个 Bug,所有未登录用户在访问文章页面时会跳转到登陆页面。这看起来就像那些封闭花园式的发布平台那样,导致流失了很多潜在用户。
现在社交网络一般都支持网站设置预览图,有预览图的网页能更占据更大的展示空间,提高点击率。
上个月某一天,GeekNote 的 Cloudflare 代理提示 Error 526。Error 526 是指 CloudFlare 的节点无法验证源服务的 SSL 证书。相关文档如下:
在上一次的 UI 改动中,编辑界面改得像个论坛编辑器,这收到了一些负面的反馈,认为编辑体验倒退了,我觉得说得有道理。GeekNote 的长期目标是建立一个写作社区,但它首先应该是一个体验良好的写作工具,所以现在编辑器改回了以往的全屏沉浸式界面:
最近我用 Postal 搭建了一个邮件服务器,体验比想象中更好,迫不及待分享一下经验。