{"id":36631959,"url":"https://github.com/srijxnnn/hnflow","last_synced_at":"2026-01-15T03:16:36.188Z","repository":{"id":332055321,"uuid":"1130159364","full_name":"srijxnnn/hnflow","owner":"srijxnnn","description":"A modern, cross-platform Hacker News client built with React Native and Expo, featuring advanced search, threaded comments, and a sleek dark UI.","archived":false,"fork":false,"pushed_at":"2026-01-10T09:32:19.000Z","size":4073,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T17:13:16.614Z","etag":null,"topics":["android","expo","hackernews-client","ios","react-native"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srijxnnn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-08T05:42:17.000Z","updated_at":"2026-01-10T22:40:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/srijxnnn/hnflow","commit_stats":null,"previous_names":["srijxnnn/hnflow"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/srijxnnn/hnflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijxnnn%2Fhnflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijxnnn%2Fhnflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijxnnn%2Fhnflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijxnnn%2Fhnflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srijxnnn","download_url":"https://codeload.github.com/srijxnnn/hnflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijxnnn%2Fhnflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","expo","hackernews-client","ios","react-native"],"created_at":"2026-01-12T09:39:07.831Z","updated_at":"2026-01-15T03:16:36.182Z","avatar_url":"https://github.com/srijxnnn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 style=\"display: flex; align-items: center; gap: 10px;\"\u003e\n  \u003cimg src=\"assets/images/icon.png\" width=\"30\" /\u003e\n  HNFlow\n\u003c/h1\u003e\n\n![GitHub Repo stars](https://img.shields.io/github/stars/srijxnnn/hnflow?style=flat)\n![GitHub issues](https://img.shields.io/github/issues/srijxnnn/hnflow)\n![GitHub license](https://img.shields.io/github/license/srijxnnn/hnflow)\n![Expo](https://img.shields.io/badge/Expo-54-black)\n![React Native](https://img.shields.io/badge/React%20Native-0.81-blue)\n![TypeScript](https://img.shields.io/badge/TypeScript-Yes-blue)\n![Tailwind](https://img.shields.io/badge/NativeWind-Tailwind-blueviolet)\n\nA modern, cross-platform Hacker News client built with React Native and Expo. Browse stories, comments, jobs, and more from Hacker News with a beautiful, native mobile experience.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/hnflow.png\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n## 🧪 Become a Tester\n\nHelp improve the app by joining [hnflow-testers@googlegroups.com](https://groups.google.com/g/hnflow-testers) and \u003ca href=\"https://play.google.com/apps/testing/com.srijxn.hnflow\"\u003ebeta testing program\u003c/a\u003e.\n\nAfter joining, you can download the app from Google Play.\n\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.srijxn.hnflow\"\u003e\n  \u003cimg src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\"\n       width=\"200\" /\u003e\n\u003c/a\u003e\n\n## Features\n\n- **Advanced Search**: Search through Hacker News stories and comments with real-time filtering\n- **Cross-Platform**: Works on iOS, Android, and Web\n- **Modern UI**: Beautiful dark-themed interface built with NativeWind (Tailwind CSS)\n- **Content Types**: Browse Front Page, Stories, Comments, Ask HN, Show HN, Launch HN, Jobs, and Polls\n- **Threaded Comments**: View nested comment threads with collapsible comments\n- **Sorting Options**: Sort by popularity or date\n- **Pagination**: Navigate through multiple pages of results\n- **Fast \u0026 Responsive**: Optimized for performance with efficient data fetching\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/front_page.jpg\" width=\"200\" /\u003e\n  \u003cimg src=\"screenshots/post.jpg\" width=\"200\" /\u003e\n  \u003cimg src=\"screenshots/filters.jpg\" width=\"200\" /\u003e\n\u003c/p\u003e\n\n## Tech Stack\n\n- **Framework**: [Expo](https://expo.dev) ~54.0.30\n- **React Native**: 0.81.5\n- **React**: 19.1.0\n- **Routing**: [Expo Router](https://docs.expo.dev/router/introduction/) (file-based routing)\n- **Styling**: [NativeWind](https://www.nativewind.dev/) v4 (Tailwind CSS for React Native)\n- **UI Components**:\n  - [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) for modal interactions\n  - [@expo/vector-icons](https://docs.expo.dev/guides/icons/) for icons\n- **HTML Rendering**: [react-native-render-html](https://github.com/meliorence/react-native-render-html)\n- **API**: [Hacker News Algolia API](https://hn.algolia.com/api)\n\n## Prerequisites\n\n- Node.js (v18 or higher recommended)\n- npm or yarn\n- Expo CLI (installed globally or via npx)\n- For iOS development: Xcode (macOS only)\n- For Android development: Android Studio\n\n## Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/srijxnnn/hnflow.git\n   cd hnflow\n   ```\n\n2. Install dependencies:\n\n   ```bash\n   npm install\n   ```\n\n3. Start the development server:\n   ```bash\n   npm start\n   # or\n   npx expo start\n   ```\n\n## Running the App\n\n### Development\n\nStart the Expo development server:\n\n```bash\nnpm start\n```\n\nThen choose your platform:\n\n- Press `i` to open iOS simulator\n- Press `a` to open Android emulator\n- Press `w` to open in web browser\n- Scan the QR code with Expo Go app on your device\n\n### Platform-Specific Commands\n\n```bash\n# iOS\nnpm run ios\n\n# Android\nnpm run android\n\n# Web\nnpm run web\n```\n\n### Search \u0026 Filtering\n\nThe app uses the Hacker News Algolia API to provide powerful search capabilities:\n\n- **Query Search**: Real-time search with 250ms debounce\n- **Tag Filtering**: Filter by content type (Front Page, Stories, Comments, Jobs, etc.)\n- **Sorting**: Sort results by popularity or date\n- **Pagination**: Navigate through search result pages\n\n### Comment Threading\n\n- Nested comment threads with visual indentation\n- Collapsible comments to hide/show thread branches\n- Maximum depth of 3 levels before showing \"Continue thread\" link\n- Support for HTML content in comments\n\n### Story Details\n\n- View full story content with metadata (points, author, time)\n- Open external links in browser\n- View all comments for a story\n- Support for different item types (stories, jobs, polls)\n\n## API Usage\n\nThe app uses the [Hacker News Algolia API](https://hn.algolia.com/api):\n\n- **Search Endpoint**: `http://hn.algolia.com/api/v1/search` (popularity) or `search_by_date` (date)\n- **Item Endpoint**: `http://hn.algolia.com/api/v1/items/{id}`\n\nSee `api/hn.ts` for implementation details.\n\n## Development\n\n### Linting\n\n```bash\nnpm run lint\n```\n\n### TypeScript\n\nThe project uses TypeScript for type safety. Type definitions are in `types/api.d.ts`.\n\n### Styling\n\nThe app uses NativeWind (Tailwind CSS) for styling. Configure Tailwind in `tailwind.config.js`.\n\n### Custom Fonts\n\nThe app uses Albert Sans font family. Fonts are located in `assets/fonts/`.\n\n## Building for Production\n\n### EAS Build\n\nThe project includes `eas.json` for building with [Expo Application Services](https://docs.expo.dev/build/introduction/):\n\n```bash\n# Install EAS CLI\nnpm install -g eas-cli\n\n# Configure EAS\neas build:configure\n\n# Build for iOS\neas build --platform ios\n\n# Build for Android\neas build --platform android\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Privacy Policy\n\nSee [Privacy Policy](https://srijxnnn.github.io/hnflow/privacy-policy) of HNFlow.\n\n## License\n\nSee [LICENSE.md](LICENSE.md)\n\n## Acknowledgments\n\n- [Hacker News](https://news.ycombinator.com/) for the content\n- [Algolia](https://www.algolia.com/) for the Hacker News Search API\n- [Expo](https://expo.dev) for the amazing development platform\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrijxnnn%2Fhnflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrijxnnn%2Fhnflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrijxnnn%2Fhnflow/lists"}