{"name":"newsnow: Elegant Real-time News Reading with a Clean UI","description":"newsnow offers an elegant and clean UI for reading real-time and trending news. It supports features like GitHub OAuth login, data synchronization, and adaptive scraping intervals to ensure an optimal and up-to-date news experience. This project, built with TypeScript, is designed for easy deployment on platforms like Cloudflare Pages or Vercel.","github":"https://github.com/ourongxing/newsnow","url":"https://osrepos.com/repo/ourongxing-newsnow","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/ourongxing-newsnow","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/ourongxing-newsnow.md","json":"https://osrepos.com/repo/ourongxing-newsnow.json","topics":["elegant","news","TypeScript","real-time news","web application","news reader","GitHub OAuth","Cloudflare D1"],"keywords":["elegant","news","TypeScript","real-time news","web application","news reader","GitHub OAuth","Cloudflare D1"],"stars":null,"summary":"newsnow offers an elegant and clean UI for reading real-time and trending news. It supports features like GitHub OAuth login, data synchronization, and adaptive scraping intervals to ensure an optimal and up-to-date news experience. This project, built with TypeScript, is designed for easy deployment on platforms like Cloudflare Pages or Vercel.","content":"## Introduction\nnewsnow is an open-source project designed for elegant reading of real-time and hottest news. It provides a clean and intuitive user interface, focusing on an optimal reading experience. Key features include real-time updates for trending news, GitHub OAuth login with data synchronization, and intelligent adaptive scraping intervals to optimize resource usage and prevent IP blocking.\n\nPlease note, the current version is a demo primarily supporting Chinese content. A full version with customization features and English content support is planned for future release.\n\n## Installation\nDeploying newsnow is straightforward, with options for basic setup, Cloudflare Pages, or Docker.\n\n### Basic Deployment (without login and cache)\n1.  Fork this repository.\n2.  Import it into a platform like Cloudflare Pages or Vercel.\n\n### Cloudflare Pages Configuration\n*   **Build command**: `pnpm run build`\n*   **Output directory**: `dist/output/public`\n\n### GitHub OAuth Setup\n1.  Create a [GitHub App](https://github.com/settings/applications/new){:target=\"_blank\"}.\n2.  No special permissions are required.\n3.  Set the callback URL: `https://your-domain.com/api/oauth/github` (replace `your-domain` with your actual domain).\n4.  Obtain your Client ID and Client Secret.\n\n### Environment Variables\nRefer to `example.env.server`. For local development, rename it to `.env.server` and configure:\nenv\n# GitHub Client ID\nG_CLIENT_ID=\n# GitHub Client Secret\nG_CLIENT_SECRET=\n# JWT Secret (usually same as Client Secret)\nJWT_SECRET=\n# Initialize database (set to true for first run)\nINIT_TABLE=true\n# Enable caching\nENABLE_CACHE=true\n\n\n### Database Support\nnewsnow supports database connectors via [https://db0.unjs.io/connectors](https://db0.unjs.io/connectors){:target=\"_blank\"}, with Cloudflare D1 Database being recommended.\n1.  Create a D1 database in your Cloudflare Worker dashboard.\n2.  Configure `database_id` and `database_name` in `wrangler.toml`.\n3.  If `wrangler.toml` doesn't exist, rename `example.wrangler.toml` and adjust settings.\n4.  Changes will take effect on the next deployment.\n\n### Docker Deployment\nFrom the project root directory, run:\n\nsh\ndocker compose up\n\n\nEnvironment variables can also be configured in `docker-compose.yml`.\n\n## Examples\nTo get newsnow running for development or to understand its extensibility, consider these examples:\n\n### Local Development\nNode.js >= 20 is required.\n\nsh\ncorepack enable\npnpm i\npnpm dev\n\n\n### Adding Data Sources\nThe project provides full type definitions and a clean architecture for adding new data sources. Refer to the `shared/sources` and `server/sources` directories to extend its capabilities.\n\n### MCP Server Configuration\nnewsnow supports MCP servers, allowing for flexible integration. An example configuration for the `newsnow-mcp-server` is provided:\n\n{\n  \"mcpServers\": {\n    \"newsnow\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"newsnow-mcp-server\"\n      ],\n      \"env\": {\n        \"BASE_URL\": \"https://newsnow.busiyi.world\"\n      }\n    }\n  }\n}\n\n\n## Why Use It\nnewsnow stands out for its commitment to a superior reading experience, combining aesthetics with powerful backend features. Its elegant UI ensures a distraction-free environment for consuming news. With real-time updates and adaptive scraping, you're always informed with the latest trends. The project's roadmap promises multi-language support and enhanced personalization, making it a versatile choice for global news consumption. Furthermore, its easy deployment options and robust database support, especially with Cloudflare D1, make it a developer-friendly solution for building a personalized news aggregator.\n\n## Links\n*   **GitHub Repository**: [https://github.com/ourongxing/newsnow](https://github.com/ourongxing/newsnow){:target=\"_blank\"}","metrics":{"detailViews":5,"githubClicks":3},"dates":{"published":null,"modified":"2025-11-06T20:00:37.000Z"}}