{"id":22921039,"url":"https://github.com/terrence-ou/bento-news","last_synced_at":"2025-04-15T15:05:49.111Z","repository":{"id":262551273,"uuid":"887630762","full_name":"terrence-ou/Bento-News","owner":"terrence-ou","description":"An AI-driven desktop News App, 1000x faster than Google News. Features everyday headlines, news management, and AI-assisted analysis.","archived":true,"fork":false,"pushed_at":"2024-12-22T21:35:43.000Z","size":3813,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T15:05:40.580Z","etag":null,"topics":["electron","huggingface","openai-api","react","shadcn-ui","typescript","vite"],"latest_commit_sha":null,"homepage":"https://terrence-ou.github.io/Bento-News-Website/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terrence-ou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-11-13T02:24:09.000Z","updated_at":"2025-04-07T03:28:57.000Z","dependencies_parsed_at":"2024-11-13T03:24:37.863Z","dependency_job_id":"b7e1417c-7e6a-4d23-9a39-379f7ae68e48","html_url":"https://github.com/terrence-ou/Bento-News","commit_stats":null,"previous_names":["terrence-ou/news_app","terrence-ou/bento-news"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrence-ou%2FBento-News","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrence-ou%2FBento-News/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrence-ou%2FBento-News/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrence-ou%2FBento-News/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terrence-ou","download_url":"https://codeload.github.com/terrence-ou/Bento-News/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249094931,"owners_count":21211837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["electron","huggingface","openai-api","react","shadcn-ui","typescript","vite"],"created_at":"2024-12-14T07:18:22.632Z","updated_at":"2025-04-15T15:05:49.085Z","avatar_url":"https://github.com/terrence-ou.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e Bento News - an AI-driven News App \u003c/h1\u003e\n\u003ch4 align=\"center\"\u003e1000+ faster than Google News, 3000+ reliable news source worldwide.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimage src=\"./resources/cover.jpg\" width=\"100%\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  **Website**: https://terrence-ou.github.io/Bento-News-Website/\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n  [![Release](https://github.com/terrence-ou/Bento-News/actions/workflows/release.yml/badge.svg)](https://github.com/terrence-ou/Bento-News/actions/workflows/release.yml) [![Test](https://github.com/terrence-ou/Bento-News/actions/workflows/test.yml/badge.svg)](https://github.com/terrence-ou/Bento-News/actions/workflows/test.yml)\n  \u003cimg height=\"20px\" src=\"https://img.shields.io/badge/License-AGPL%20v3-blue.svg\" alt=\"LICENSE\"/\u003e\n  \u003cbr/\u003e\n\u003c/div\u003e\n\n## Revolutionalize your way of reading, managing, and analyzing news\n- Bento News supports content from over **3,000 trusted media outlets worldwide**.\n- Harness **AI-driven tools** to gain broader and deeper insights into your curated collection.\n- Collect and organize the news as you prefer locally to **ensure your privacy**.\n\n## Features\n\n- **Curated Daily Headlines** \\\n  We curate daily headlines in politics, economy, technology, science, and more to keep you informed about the fields you're interested in.\n\n- **Instant Keyword Search** \\\n  Search for news by keywords, dates, and fields, and get results instantly. Bento News supports searches in 10+ languages and across 3000 resources.\n\n- **Local News Management** \\\n  Mark, save, and organize news as you prefer to maximize its value. All file management happens locally to ensure your privacy.\n\n- **AI-Assisted Analysis** \\\n  Use AI tools to summarize collected news, predict trends, and provide suggestions on related topics to help you gain broader and deeper insights.\n\n- **Cover Image Generation** \\\n  Generate cover images based on your selected topics in multiple styles for your posts or essays to make your work more attractive.\n\n\u003cimage src=\"./resources/features.jpg\" width=\"100%\"/\u003e\n\n## Tech Stack\n\n| Category                  | Technology                                                                                  |\n|---------------------------|---------------------------------------------------------------------------------------------|\n| **Programming Language**  | [TypeScript](https://www.typescriptlang.org/)                                               |\n| **Software Framework**    | [Electron](https://www.electronjs.org/)                                                     |\n| **Frontend Library**      | [React](https://react.dev/)                                                                 |\n| **Build Tool**            | [Vite](https://vite.dev/)                                                                   |\n| **State Management**      | [Jotai](https://jotai.org/)                                                                 |\n| **UI and Styling**        | [shadcn](https://ui.shadcn.com/), [Tailwind](https://tailwindcss.com/)                      |\n| **Testing**               | [Vitest](https://vitest.dev/), [Testing Library](https://testing-library.com/)              |\n| **Code Sign and Notarize**| [Electron-forge](https://www.electronforge.io/)                                             |\n\n## File Structure\n\n```\n├── .github/\n│   └── workflows/                  # CI/CD workflows for GitHub Actions\n│       ├── release.yml             # Workflow for releasing the app\n│       └── test.yml                # Workflow for running tests\n├── resources/                      # Additional resources for the app\n├── src/                            # Project source code\n│   ├── main/                       # Main process code\n│   │   ├── lib/                    # Libraries and utilities for the main process\n│   │   └── index.ts                # Entry point for the main process\n│   ├── preload/                    # Preload scripts\n│   │   └── index.ts                # Entry point for preload scripts\n│   ├── renderer/                   # Renderer process code (frontend)\n│   │   ├── src/                    # React code\n│   │   │   ├── __test__/           # Unit and integration tests for renderer\n│   │   │   ├── assets/             # Static assets for the renderer (images, fonts, etc.)\n│   │   │   ├── atoms/              # Jotai atoms\n│   │   │   ├── components/         # UI components\n│   │   │   ├── hooks/              # Custom React hooks for reusable logic\n│   │   │   ├── routes/             # Application routes and navigation components\n│   │   │   └── utils/              # Utility functions and helpers\n│   │   ├── App.tsx                 # Main React application component\n│   │   ├── env.d.ts                # TypeScript environment declarations\n│   │   ├── main.tsx                # Entry point for the renderer process\n│   │   └── index.html              # HTML template for the renderer\n│   └── shared/                     # Code shared between the main and renderer processes\n├── .gitignore                      # Patterns to ignore in Git version control\n├── components.json                 # Shadcn-ui component configuration\n├── electron.vite.config.ts         # Vite configuration for Electron\n├── forge.config.cjs                # Electron Forge build and publish configurations\n├── LICENSE                         # License\n├── package.json                    # Project meta and packages\n├── package-lock.json               # Dependency lock file\n├── postcss.config.js               # Configuration for PostCSS\n├── README.md                       # Readme\n├── tailwind.config.js              # Tailwind CSS configuration\n├── tsconfig.json                   # TypeScript configuration (general)\n├── tsconfig.node.json              # TypeScript configuration for Node.js\n├── tsconfig.web.json               # TypeScript configuration for the web\n└── vite.config.mjs                 # Vitest configuration for the project\n```\n\n## FLUX model credits\n\nStippled - https://huggingface.co/dvyio/flux-lora-stippled-illustration \\\nWatercolor - https://huggingface.co/alvdansen/araminta-k-illustration \\\nLine Art - https://huggingface.co/dvyio/flux-lora-simple-illustration \\\nCartoon - https://huggingface.co/blink7630/graphic-novel-illustration \\\nKid Illustration - https://huggingface.co/ampp/rough-kids-illustrations \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterrence-ou%2Fbento-news","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterrence-ou%2Fbento-news","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterrence-ou%2Fbento-news/lists"}