发布于 2026-01-06 4 阅读
0

我创建了 AlternateOSS,一个收录热门软件免费开源替代方案的目录🚀🔥

我创建了 AlternateOSS,一个收录热门软件免费开源替代方案的目录🚀🔥

大家好👋,我是Syakir!

距离我上次发帖已经有一段时间了。因为从几周前开始我就一直在忙一个新项目,所以暂停了每周的博客更新。现在我想和大家分享一下这个项目。

我目前正在构建AlternateOSS,这是一个网站目录,用于分享流行软件的免费开源替代方案。

我对开源领域很感兴趣,并开始寻找我之前使用的工具的开源替代方案。然后,我考虑创建一个面向像我一样的用户的目录。我在网上找到了一些类似的现有项目,但我希望创建一个更有条理、更注重相关性的列表。

目前我已经收集了 100 多款软件,并按类别整理分享。

堆栈

我使用的技术栈很简单。目前,它完全是静态的。以后项目规模太大时,我可能会把它升级成全栈项目。

  • ✅ Astro
  • ✅ Tailwind CSS
  • ✅ Shadcn / Radix
  • ✅ Markdown
  • ✅ 完全静态,无需数据库
  • ✅ Cloudflare 页面

特色功能

以下是一些我认为很酷的亮点功能,您或许也会有兴趣将它们应用到您的项目中。

流畅的导航和视图过渡

视图过渡

View Transition API 可实现 Web 应用程序中页面/状态之间的平滑动画过渡。

  1. 它捕捉了元素的“之前”和“之后”的状态。
  2. 自动创建这些状态之间的动画
  3. 同时支持同源导航和 DOM 更新

它让网站加载非常流畅。如果应用在静态网站上,感觉完全没有加载感。

我使用Astro View Transition轻松实现了这个功能。我只需要在每个需要添加动画效果的元素中添加一个<ViewTransition />标签和指令即可。transition:name

*请注意,视图过渡 API 仅适用于基于 Chromium 的浏览器。目前 Firefox 尚不支持此功能。

静态、即时搜索

静态即时搜索

我使用以下代码构建了一个完全静态的即时搜索:

  • Astro 静态端点,我将所有搜索数据以格式化的 JSON 数组形式存储在其中:https://alternateoss.com/api/search.json
  • 使用本地存储时,search.json 文件只会加载一次,然后存储到本地存储中,直到新版本可用。之后,我只需使用 JavaScript 数组.filter方法即可进行搜索。
  • 用于搜索输入界面的cmdkShadcn 命令

当然,这种静态即时搜索功能不具备可扩展性。但是,借助 ChatGPT,我计算出,在 search.json 文件大小达到 1 万行(约 2MB)之前,这种方法仍然可靠。

如果我只是手动输入软件信息,需要数年时间才能达到那个数字。

基于相关性和功能完整性的备选方案排名

排名备选方案列表

最后,但同样重要的是,这或许是 AlternateOSS 与其他类似项目区别开来的重要特征。我并非根据 GitHub 星标数或受欢迎程度来对每个工具进行排名,而是主要依据用例/类别相关性以及对功能完整性/工具质量的人工审核。

例如,我们有一些 Google Analytics 的替代方案:

  • Posthog:类别 -> 产品分析、网站分析
  • 鲜味:类别 -> 网络分析
  • 合理选项:类别 -> 网络分析
  • Matomo:类别 -> 网络分析

Google Analytics 本身属于“网站分析”类别。
替代方案排名会将主要类别中的主要工具放在首位,Web Analytics然后再考虑其他类别。

因此,尽管 Posthog 的功能比列表中的其他工具更全面,但它的排名会更低。而 Umami、Plausible 和 Matomo 的排名将基于我本人的手动评测。


你对这个项目有什么看法?

如果您有任何反馈意见,请随时在下方评论区留言。

谢谢,祝你编程愉快!

文章来源:https://dev.to/syakirurahman/i-built-alternateoss-a-directory-of-free-open-source-alternatives-to-popular-software-279c