我创建了 AlternateOSS,一个收录热门软件免费开源替代方案的目录🚀🔥
大家好👋,我是Syakir!
距离我上次发帖已经有一段时间了。因为从几周前开始我就一直在忙一个新项目,所以暂停了每周的博客更新。现在我想和大家分享一下这个项目。
我目前正在构建AlternateOSS,这是一个网站目录,用于分享流行软件的免费开源替代方案。
我对开源领域很感兴趣,并开始寻找我之前使用的工具的开源替代方案。然后,我考虑创建一个面向像我一样的用户的目录。我在网上找到了一些类似的现有项目,但我希望创建一个更有条理、更注重相关性的列表。
目前我已经收集了 100 多款软件,并按类别整理分享。
堆栈
我使用的技术栈很简单。目前,它完全是静态的。以后项目规模太大时,我可能会把它升级成全栈项目。
- ✅ Astro
- ✅ Tailwind CSS
- ✅ Shadcn / Radix
- ✅ Markdown
- ✅ 完全静态,无需数据库
- ✅ Cloudflare 页面
特色功能
以下是一些我认为很酷的亮点功能,您或许也会有兴趣将它们应用到您的项目中。
流畅的导航和视图过渡
View Transition API 可实现 Web 应用程序中页面/状态之间的平滑动画过渡。
- 它捕捉了元素的“之前”和“之后”的状态。
- 自动创建这些状态之间的动画
- 同时支持同源导航和 DOM 更新
它让网站加载非常流畅。如果应用在静态网站上,感觉完全没有加载感。
我使用Astro View Transition轻松实现了这个功能。我只需要在每个需要添加动画效果的元素中添加一个<ViewTransition />标签和指令即可。transition:name
*请注意,视图过渡 API 仅适用于基于 Chromium 的浏览器。目前 Firefox 尚不支持此功能。
静态、即时搜索
我使用以下代码构建了一个完全静态的即时搜索:
- Astro 静态端点,我将所有搜索数据以格式化的 JSON 数组形式存储在其中:https://alternateoss.com/api/search.json
- 使用本地存储时,search.json 文件只会加载一次,然后存储到本地存储中,直到新版本可用。之后,我只需使用 JavaScript 数组
.filter方法即可进行搜索。 - 用于搜索输入界面的cmdk和Shadcn 命令
当然,这种静态即时搜索功能不具备可扩展性。但是,借助 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


