在信息碎片化的时代,我们总在不经意间被一句台词、一段文字或一句箴言触动。这些散落的 “文字星光” 若不及时记录,很容易随时间流逝。正是出于对这类碎片化美好的珍视,我用两天时间开发了sentence-collection—— 一个专注于句子收藏与分享的轻量级平台,并已完成开源。今天,我想和大家聊聊这个项目的开发故事、技术细节与开源初心。
项目初心:让每一句触动都有处可寻
开发这个项目的契机,源于我自己看到的某些朋友的日常习惯。无论是阅读时遇到的哲理短句、看电影时听到的治愈台词,还是生活中灵光一闪的感悟,他总喜欢随手记在备忘录里。但久而久之,备忘录里的内容杂乱无章,想查找某句话时如同 “大海捞针”。
于是我思考:能否做一个专门的句子收集工具?它不需要复杂的功能,只需满足 “便捷收录、清晰分类、轻松浏览” 三个核心需求。带着这个想法,sentence-collection的开发正式启动,项目在线地址:句子集,开源仓库:sentence-collection
核心功能:轻量化设计,聚焦句子本身
为了避免功能冗余,我在开发初期就明确了 “轻量化” 原则,最终落地的核心功能围绕 “收集与浏览” 展开,兼顾实用性与易用性:
多维度句子展示
平台默认按 “随机收录” 排序,每一条句子都清晰标注了分类标签(如 “文学”“哲理”“影视”)和来源(如书籍名、电影名)。
一键收藏与分享
遇到喜欢的句子时,点击右上角 “星星” 图标即可加入个人收藏(需简单登录且后续支持);若想分享给朋友,点击 “分享” 按钮可复制带句子文本,支持一键转发到社交平台,让好内容传递更高效。
响应式适配
考虑到用户可能在不同设备上使用,项目做了全场景响应式设计:在电脑端展示多列布局,充分利用屏幕空间;在手机端自动切换为单列模式,保证阅读流畅性,无论是通勤路上还是休息时,都能轻松浏览。
开发细节:两天内完成从 0 到 1 的技术选型与实现
由于开发周期较短(仅两天),我在技术选型上优先考虑 “成熟、高效、易维护” 的方案,同时兼顾项目的可扩展性。
前端技术栈
框架与 UI:选用 NUXT 作为核心框架,内置 Vite 的热更新特性大幅提升了开发效率;UI 组件库选用 NUXTUI,减少重复造轮子的时间,重点精力放在业务逻辑与交互体验上。
样式方案:引入 Tailwind CSS 的部分工具类,快速实现响应式布局与细节优化。
数据存储:用户收藏数据通过后端接口与数据库关联(后续支持),而句子的基础数据则采用 “静态 JSON + 动态加载” 的方式,既减少了数据库压力,又保证了页面加载速度。
后端与部署
后端服务:基于 Node.js + NestJS 搭建轻量级接口,主要处理用户登录、收藏、数据统计等核心逻辑,接口设计遵循 RESTful 规范,便于后续扩展功能。
数据库:选用 PostgreSQL 存储用户信息与句子数据,通过简单的表结构设计(用户表、句子表、收藏表),实现数据关联与高效查询,避免过度设计导致的复杂度。
部署方案:前端静态资源部署到腾讯云轻量应用服务器 Halo 项目静态目录下,通过 CDN 加速分发;后端服务部署到轻量应用服务器,配合 Nginx 做反向代理与静态资源缓存,保证项目在线运行的稳定性。
开源初心:让项目在协作中持续成长
完成项目开发后,我第一时间将代码开源,主要出于两个考虑:
一方面,希望为刚入门的开发者提供一个 “完整的轻量级项目案例”。仓库中包含了从前端页面到后端接口的完整代码,注释清晰,结构规整,新人可以通过这个项目学习 Vue3、Vite 的实战用法,以及前后端联调、项目部署的流程。
另一方面,期待通过开源吸引更多人参与进来。目前项目的句子库还在初期阶段,我在仓库的 Issues 中列出了 “增加句子提交功能”等开发需求,欢迎感兴趣的开发者 fork 仓库、提交 PR,一起丰富项目功能,让 sentence-collection 成为一个真正由社区共建的句子平台。
未来规划:从 “个人工具” 到 “社区平台” 的进化
虽然项目已经上线并开源,但这只是一个开始。接下来我计划围绕 “社区化” 做更多探索:
开放 “句子提交” 功能,允许用户上传自己喜欢的句子(需审核),让内容来源更丰富;
增加 “句子评论” 功能,用户可以围绕句子分享自己的感悟,形成小型讨论社区;
推出 “每日一句” 推送服务,通过邮件或公众号,每天向用户推送一句优质内容,让平台更有温度。
写在最后
sentence-collection不是一个复杂的项目,却承载了我对 “碎片化美好” 的珍视。从最初的一个想法,到两天内完成开发,再到如今开源分享,这个过程让我深刻感受到:好的项目不一定需要庞大的团队和漫长的周期,只要找准用户需求,用合适的技术解决问题,就能创造出有价值的产品。
如果你喜欢这个项目,不妨访问在线地址句子集,收藏几句你喜欢的句子;也欢迎到开源仓库 sentence-collection 看看,无论是提 Issue、提交 PR,还是单纯 star 支持,都是对这个小项目最大的鼓励。
期待在开源社区与大家一起,让这个 “句子收集箱” 变得更有趣、更有用。