DIYgod mirror
Go to file
Innei c7d0165eb8
feat: refine onboarding (#4708)
* feat(ai-onboarding): implement AI onboarding modal and related components

- Added AI onboarding modal with step-by-step guidance for new users.
- Introduced components for feed selection, import steps, and chat interface.
- Integrated animations and user interactions for a smoother onboarding experience.
- Updated localization files to support new onboarding dialog texts.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance onboarding experience with next step functionality

- Added 'hasNextStep' prop to AppTip and AppTipDialog components to manage step navigation.
- Updated button actions to reflect the new step logic, allowing users to proceed or finish the onboarding.
- Introduced new localization strings for onboarding descriptions and actions in multiple languages.
- Added a button in the settings about tab to trigger the AI onboarding experience.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(app-tip): remove video placeholder and related constants for a cleaner onboarding experience

- Eliminated video placeholder text and associated constants from AppTipMediaPreview and constants.ts.
- Updated useAppTipController to remove media references, streamlining the onboarding steps.
- Revised localization strings to reflect the new onboarding narrative without video references.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(ai-onboarding): streamline onboarding flow and enhance UI components

- Removed the DiscoverImportStep and PreFinish components to simplify the onboarding process.
- Updated step management in the onboarding modal to focus on essential steps.
- Enhanced the AIChatPane and FeedsSelectionList components with improved layout and animations.
- Introduced new localization strings for empty feed selection scenarios.
- Updated modal transitions for a smoother user experience.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance media preview component to support image and video types

- Added support for distinguishing between video and image media types in AppTipMediaPreview.
- Updated rendering logic to conditionally display video or image elements based on media type.
- Introduced a fallback icon for error handling based on media type.
- Enhanced state management for video playback and replay functionality.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(renderer): add support for Markdown rendering in ArticleLayout

- Introduced EntryContentMarkdownRenderer for handling Markdown content.
- Updated ArticleLayout to conditionally render HTML or Markdown based on entry type.
- Refactored EntryContentHTMLRenderer to use a shared props type for better type safety.
- Added types for entry content renderer props to improve code clarity.

This enhancement allows for more flexible content rendering in the application.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(entry-actions): integrate onboarding entry checks into action configurations

- Added `isOnboardingEntryUrl` utility to identify onboarding entries based on their URL.
- Updated `useEntryActions` to disable specific actions when the entry is an onboarding entry.
- Enhanced `MoreActions` and `HeaderActions` components to support the disabled state for actions based on onboarding status.
- Refactored `ArticleLayout` to utilize the new onboarding entry check for rendering logic.

This update improves user experience by preventing certain actions on onboarding entries.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance onboarding experience with new user guide state management

- Introduced `useNewUserGuideState` for managing the state of the new user onboarding guide.
- Added `APP_TIP_DISMISS_EVENT` constant for handling dismissal events.
- Refactored `useAppTipController` to utilize the new state management, improving clarity and functionality.
- Updated `EntryColumnContent` to integrate new user guide navigation logic.

This update streamlines the onboarding process and enhances user experience by providing better state management for onboarding tips.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): enhance media rendering in AppTipDialog and introduce OpmlAbstractGraphic

- Updated AppTipDialog to conditionally render a custom React node for media previews.
- Added reactNode property to AppTipStepMedia type for improved media handling.
- Introduced OpmlAbstractGraphic component for enhanced visual representation in onboarding tips.
- Updated useAppTipController to utilize the new OpmlAbstractGraphic in onboarding media.

These changes improve the onboarding experience by providing more dynamic media content.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(OpmlAbstractGraphic): implement animated paths and dynamic rendering

- Added a new OpmlAbstractGraphic component to visually represent RSS readers with animated paths.
- Introduced deterministic pseudo-random path generation for smoother animations.
- Enhanced component responsiveness with layout effects and resize handling.
- Implemented hand-drawn style connector lines to improve visual appeal.

These changes enhance the onboarding experience by providing a more engaging and dynamic visual representation of RSS readers.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): add extra content support in AppTipDialog and enhance useAppTipController

- Updated AppTipDialog to render additional content through the new `extra` property in AppTipStep.
- Modified AppTipStep type to include an optional `extra` field for custom React nodes.
- Introduced AiSplineIndicatorToggle component in useAppTipController for toggling AI settings.

These changes improve the flexibility of the AppTipDialog and enhance the onboarding experience by allowing for dynamic content rendering.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): implement useAppTipController for enhanced onboarding experience

- Introduced useAppTipController to manage the onboarding flow and user guide interactions.
- Added state management for active steps, dismissal handling, and AI guide toggling.
- Integrated AiSplineIndicatorToggle for dynamic AI settings within the onboarding process.
- Enhanced event handling for debugging onboarding steps through custom events.

These changes improve the onboarding experience by providing a structured and interactive guide for new users.

Signed-off-by: Innei <tukon479@gmail.com>

* feat(app-tip): introduce AICopilotMedia component for enhanced AI interaction

- Added AICopilotMedia component to facilitate dynamic AI-driven conversations and recommendations.
- Integrated chat script for user-assistant interactions, showcasing AI capabilities in real-time.
- Updated useAppTipController to include AICopilotMedia in the onboarding flow, enhancing user engagement.

These changes improve the onboarding experience by providing interactive AI content that guides users through relevant information and resources.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: update hoverMarkUnread setting to false for consistency

* feat: implement onboarding feed and entry detection

- Added utility functions to identify onboarding feeds and entries.
- Updated various components to display onboarding feeds distinctly.
- Enhanced sorting logic to prioritize onboarding feeds in lists.
- Added localization strings for onboarding feed messages.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: add OverviewMedia component for enhanced onboarding visuals

- Introduced a new OverviewMedia component to display animated connections between onboarding elements.
- Integrated OverviewMedia into the app tip controller to enrich the new user dialog experience.
- Implemented responsive path calculations and animations for a dynamic visual presentation.

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: DIYgod <i@diygod.me>
2025-11-18 01:16:40 +08:00
.github Revert "chore: update API URLs to use folo.is domain" 2025-10-30 17:06:20 +08:00
.vscode fix: update tag filter to include mobile and desktop versions 2025-08-04 17:52:20 +08:00
api feat: new domain folo.is 2025-07-03 13:13:42 +08:00
apps feat: refine onboarding (#4708) 2025-11-18 01:16:40 +08:00
icons/mgc feat: add moonshotai provider and user role priority constants 2025-11-15 12:10:03 +08:00
locales feat: refine onboarding (#4708) 2025-11-18 01:16:40 +08:00
packages feat: refine onboarding (#4708) 2025-11-18 01:16:40 +08:00
patches fix: re-patch react-native-sheet-transitions (#4513) 2025-09-24 07:55:09 +00:00
plugins feat: hide view count when hideRecentReader is on (#4167) 2025-07-14 17:08:38 +08:00
scripts refactor: migrate to client sdk (#4480) 2025-09-17 00:12:54 +08:00
wiki chore: format 2025-06-23 18:36:50 +08:00
.cursorignore feat: ai features (#4040) 2025-07-16 21:54:32 +08:00
.editorconfig chore: fix file format & use .gitattributes (#4082) 2025-07-07 19:58:29 +08:00
.gitattributes feat: ai features (#4040) 2025-07-16 21:54:32 +08:00
.gitignore feat(timeline): add feed icon to timeline header 2025-09-17 00:54:58 +08:00
.npmrc chore: update dependencies 2025-02-19 15:27:20 +08:00
.nvmrc
.prettierignore refactor: migrate to client sdk (#4480) 2025-09-17 00:12:54 +08:00
.prettierrc.mjs chore: disbale prettier objectWrap 2025-02-20 18:03:18 +08:00
AGENTS.md chore: create AGENTS.md for comprehensive project guidance 2025-09-22 23:33:37 +08:00
CODE_OF_CONDUCT.md chore: add CODE_OF_CONDUCT 2024-10-31 20:27:46 +08:00
CONTRIBUTING.md fix: update Discord invite link across documentation and code 2025-11-13 11:47:05 +08:00
LICENSE chore: replace placeholder (#3785) 2025-05-22 20:15:40 +08:00
README.md fix: update Discord invite link across documentation and code 2025-11-13 11:47:05 +08:00
SECURITY.md chore: add CODE_OF_CONDUCT 2024-10-31 20:27:46 +08:00
buildServer.json fix(desktop): update styling for UpdateNotice component 2025-05-03 21:47:58 +08:00
changelogithub.config.ts fix: update tag filter to include mobile and desktop versions 2025-08-04 17:52:20 +08:00
eslint.config.mjs chore: lint 2025-09-19 22:24:30 +08:00
package.json fix: downgrade vite version from 7.2.0 to 7.1.11 2025-11-06 21:55:28 +08:00
pnpm-lock.yaml chore: update package versions for client-sdk and ai-tools 2025-11-17 20:47:18 +08:00
pnpm-workspace.yaml chore: update package versions for client-sdk and ai-tools 2025-11-17 20:47:18 +08:00
tsconfig.json chore: enable noUncheckedIndexedAccess, better type check (#2608) 2025-01-18 22:35:23 +08:00
tsslint.config.ts refactor(tsslint): update rules import and configuration (#3561) 2025-04-24 07:22:03 +08:00
turbo.json refactor(legal): remove legal package and update references 2025-08-24 01:46:30 +08:00
vercel.json chore: update URLs to use folo.is domain in configuration files 2025-10-30 09:04:39 +08:00
vitest.workspace.js refactor: upgrade react 19 and react native 0.79 (#3661) 2025-05-07 16:30:30 +08:00
vitest.workspace.ts

README.md

Logo

Folo

   




Folo Mobile Folo Desktop

As they say, your thoughts are what you read—and weve been consuming noisy feeds for too long! Folo organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing.

👋🏻 Getting Started & Join Our Community

Whether for users or professional developers, Folo will be your open information playground. Please be aware that Folo is currently under active development, and feedback is welcome for any issue encountered.

Feel free to try it using the following methods:

Operating System Source
Any Browser
iOS App Store
Android Google Play App Store
macOS Microsoft Store App Store
Windows Microsoft Store App Store
Linux App Store

You can also install using the following methods maintained by our community:

Discord Join our Discord server to connect with developers, request features, and receive support.
Follow us on X/Twitter for product updates and to join in on reward activities.
!IMPORTANT]

**Star Us**, You will receive all release notifications from GitHub without any delay \~

Image

Performance Stats of RSSNext/Folo - Last 28 days

Features

Customized Information Hub

Subscribe to a vast range of feeds and curated lists. Curate your favorites and keep track of what matters most to you.

AI At Your Fingertips

A smarter and more efficient browsing with AI-powered features like translation, summary, and more.

Dynamic Content Support

Because we know content is more than just text. From articles to videos, images to audio — Folo gets it all covered.

More Than Just An App

This isnt just another app. Folo is a community — introducing a new era of openness and community-driven experience.

🤝 Contributing

You are welcome to join the open source community to build together, please check our Contributing Guide for more details.

🔏 Code signing policy

Folo for Windows uses free code signing provided by SignPath.io, a certificate by SignPath Foundation.

Folo for macOS and iOS is signed and notarized by Apple Developer Program.

All released files are verified with GitHub artifact attestations to ensure their provenance and integrity.

📝 License

Folo is licensed under the GNU General Public License version 3 with the addition of the following special exception:

All content in the icons/mgc directory is copyrighted by https://mgc.mingcute.com/ and cannot be redistributed.

All content in the lottie directory is distributed under the Lottie Simple License.