* init * init * refactor(mobile): enhance tab navigation and structure - Added `TabScreenModule` and `TabScreenView` to support dynamic tab management. - Replaced `FOTabBarController` with a more streamlined `UITabBarController` implementation. - Updated `TabBarModule` to utilize new tab switching logic and event handling. - Modified `TabBarRootView` to manage tab views more effectively and handle tab index changes. - Adjusted main application file to integrate new tab components and improve navigation flow. These changes aim to improve the tab navigation experience and maintainability of the codebase. * tabbar * refactor(mobile): streamline navigation and tab management - Refactored main application structure to enhance tab navigation, integrating `BottomTabs` and `TabRoot` components for improved tab management. - Updated `NavigationHeader` and `SafeNavigationScrollView` to better handle header visibility and scrolling behavior. - Introduced `ScreenItemContext` for managing screen state and scroll position across navigation. - Cleaned up unused imports and optimized component structure for better maintainability. These changes aim to improve the overall navigation experience and code organization within the mobile application. * update * feat(mobile): implement BottomTabProvider for enhanced tab management - Introduced `BottomTabProvider` component to manage tab visibility and scroll view context. - Refactored `BottomTabs` to utilize context for background opacity and tab visibility, simplifying the component structure. - Removed the deprecated `TabClient` component to streamline the tab implementation. - Added a null check in `Tabbar` to prevent rendering when there are no tab screens. These changes aim to improve the organization and functionality of the tab navigation system within the mobile application. Signed-off-by: Innei <tukon479@gmail.com> * update * update * update * update * update * feat(mobile): integrate ErrorBoundary and enhance navigation context - Added `ErrorBoundary` component to handle errors gracefully within the application. - Integrated `BottomTabProvider` to manage tab visibility and scroll view context more effectively. - Refactored navigation components to utilize new context for improved state management. - Updated `SafeNavigationScrollView` and `Settings` components to streamline scrolling behavior and context usage. - Removed deprecated code and optimized component structure for better maintainability. These changes enhance the user experience by providing error handling and improving navigation management. * feat(mobile): enhance navigation and layout components - Registered new screens (`TermsScreen`, `LoginScreen`, `SignUpScreen`, `ForgetPasswordScreen`, `TwoFactorAuthScreen`) with the `NavigationSitemapRegistry` for improved navigation management. - Adjusted layout properties in `HeaderElements` and `NavigationHeader` for better alignment and responsiveness. - Refactored `Tabbar` to remove unnecessary animated reactions, optimizing performance. - Exported `ActionGroup` component for better reusability in `TimelineSelectorProvider`. - Updated `DebugScreen` to utilize the new navigation methods for component presentation. These changes improve the overall navigation experience and component structure within the mobile application. Signed-off-by: Innei <tukon479@gmail.com> * feat(mobile): implement new architecture support and refactor TabBar components - Added support for the new architecture in the iOS podspec by conditionally defining `OTHER_SWIFT_FLAGS`. - Refactored `TabBarPortalModule`, `TabBarRootView`, and `TabScreenView` to improve structure and maintainability. - Replaced native view components with standard React Native views in `TabBarPortal`, `TabRoot`, and `TabScreen` for better compatibility and performance. - Updated import paths for `TabScreenProps` to ensure correct type usage. These changes enhance the navigation experience and prepare the codebase for future architecture improvements. Signed-off-by: Innei <tukon479@gmail.com> * feat(mobile): refactor navigation and onboarding components - Removed outdated navigation dependencies from `package.json` to streamline the project. - Enhanced `TabBarRootView` to improve tab switching animations and manage view transitions more effectively. - Updated `App` component structure for better readability and integration of onboarding logic. - Introduced `OnboardingScreen` with improved layout and navigation handling. - Refactored navigation context types to include additional screen options for better flexibility. These changes enhance the navigation experience and prepare the application for future onboarding features. Signed-off-by: Innei <tukon479@gmail.com> * feat(mobile): enhance intent handling with navigation integration - Added navigation support in `useIntentHandler` to handle incoming URLs more effectively. - Integrated `FollowScreen` for presenting user-specific content based on URL parameters. - Updated effect dependencies to include navigation for improved functionality. These changes improve the handling of deep links and enhance the user experience when navigating to the follow screen. Signed-off-by: Innei <tukon479@gmail.com> * chore: clean up pnpm-lock.yaml by removing unused navigation dependencies - Removed outdated navigation packages including `@react-navigation/bottom-tabs`, `@react-navigation/drawer`, and `@react-navigation/native` to streamline the lock file. - Cleaned up unnecessary entries and peer dependencies to improve maintainability and reduce clutter. These changes help in optimizing the dependency management for the project. Signed-off-by: Innei <tukon479@gmail.com> * lint Signed-off-by: Innei <tukon479@gmail.com> * chore: auto-fix linting and formatting issues * fix Signed-off-by: Innei <tukon479@gmail.com> * update Signed-off-by: Innei <tukon479@gmail.com> * refactor: update PickerIos component and remove FeedDrawer - Added import for Portal in PickerIos component. - Removed the FeedDrawer component entirely, cleaning up unused code. - Replaced router.dismiss() with navigation.dismiss() in list screen options for better navigation handling. Signed-off-by: Innei <tukon479@gmail.com> --------- Signed-off-by: Innei <tukon479@gmail.com> |
||
|---|---|---|
| .github | ||
| .vscode | ||
| api | ||
| apps | ||
| configs | ||
| constants | ||
| icons/mgc | ||
| packages | ||
| patches | ||
| plugins/eslint | ||
| scripts | ||
| wiki | ||
| .editorconfig | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.mjs | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
| bump.hotfix.config.js | ||
| changelogithub.config.ts | ||
| eslint.config.mjs | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| tsconfig.json | ||
| tsslint.config.ts | ||
| turbo.json | ||
| vercel.json | ||
| vitest.workspace.ts | ||
README.md
As they say, your thoughts are what you read—and we’ve been consuming noisy feeds for too long! Follow 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, Follow will be your open information playground. Please be aware that Follow is currently under active development, and feedback is welcome for any issue encountered.
Feel free to try it using the following methods:
| No installation necessary! Visit our web app to experience it firsthand. | |
|---|---|
| Download and install the desktop client for a smoother experience and enhanced features. |
You can also install using the following methods maintained by our community:
- If you are using Arch Linux, you can install package follow-appimage that maintained by timochan.
- If you are using Nix, you can install package follow that maintained by iosmanthus.
- If you are using macOS with Homebrew, you can install cask follow (also @alpha and @nightly) that maintained by realSunyz.
| 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 \~
✨ 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 — Follow gets it all covered.
$POWER An Ownership Economy
Tip creators across instantly with $POWER, support content you love, and unlock value in your own work. Your content, your power.
More Than Just An App
This isn’t just another app. Follow is a community — introducing a new era of openness and community-driven experience.
🤝 Contributing
If you are eligible to use Follow, you are welcome to join the open source community to build together.
Before you start, make sure you have enabled Corepack. Corepack makes sure you are using the correct version (packageManager field in package.json) for package manager when you run corresponding commands.
corepack enable
Install dependencies.
pnpm install
Develop in the browser
pnpm run dev
Then the browser opens https://app.follow.is/__debug_proxy,you can access the online API environment to development and debugging.
Develop in the electron
You need to fill in the required environment variables first.
cp .env.example .env
Then set VITE_API_URL to https://api.follow.is and run:
pnpm run dev:electron
Since it is not very convenient to develop in Electron, the first way to develop and contribute is recommended at this stage.
[!TIP] If you can't log in to the app, copy the
__Secure-better-auth.session_tokenin the cookie from your browser into the app.
📝 License
Follow 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.
