{"id":49250471,"url":"https://github.com/solomonneas/cyberbrief","last_synced_at":"2026-04-25T00:02:57.373Z","repository":{"id":337080596,"uuid":"1152260949","full_name":"solomonneas/cyberbrief","owner":"solomonneas","description":"Portfolio project","archived":false,"fork":false,"pushed_at":"2026-04-20T22:55:36.000Z","size":266,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T00:38:19.955Z","etag":null,"topics":["automation","briefing","cybersecurity","news","newsletter","security-research","threat-intelligence"],"latest_commit_sha":null,"homepage":"https://cyberbrief.vercel.app","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/solomonneas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION_STYLE.md","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},"funding":{"github":"solomonneas","ko_fi":"solomonneas","buy_me_a_coffee":"solomonneas"}},"created_at":"2026-02-07T16:05:02.000Z","updated_at":"2026-04-20T22:55:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"cbdd913d-822e-4f17-bba3-95532b3ba033","html_url":"https://github.com/solomonneas/cyberbrief","commit_stats":null,"previous_names":["solomonneas/cyberbrief"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/solomonneas/cyberbrief","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solomonneas%2Fcyberbrief","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solomonneas%2Fcyberbrief/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solomonneas%2Fcyberbrief/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solomonneas%2Fcyberbrief/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solomonneas","download_url":"https://codeload.github.com/solomonneas/cyberbrief/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solomonneas%2Fcyberbrief/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32245156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["automation","briefing","cybersecurity","news","newsletter","security-research","threat-intelligence"],"created_at":"2026-04-25T00:02:56.666Z","updated_at":"2026-04-25T00:02:57.356Z","avatar_url":"https://github.com/solomonneas.png","language":"TypeScript","funding_links":["https://github.com/sponsors/solomonneas","https://ko-fi.com/solomonneas","https://buymeacoffee.com/solomonneas"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-18-61DAFB?style=flat-square\u0026logo=react\u0026logoColor=white\" alt=\"React\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-5-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white\" alt=\"TypeScript\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/FastAPI-009688?style=flat-square\u0026logo=fastapi\u0026logoColor=white\" alt=\"FastAPI\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square\u0026logo=python\u0026logoColor=white\" alt=\"Python\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Tailwind_CSS-3-06B6D4?style=flat-square\u0026logo=tailwindcss\u0026logoColor=white\" alt=\"Tailwind CSS\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vite-5-646CFF?style=flat-square\u0026logo=vite\u0026logoColor=white\" alt=\"Vite\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=flat-square\" alt=\"MIT License\" /\u003e\n\n  \u003ca href=\"https://solomonneas.dev/projects/cyberbrief\"\u003e\u003cimg src=\"https://img.shields.io/badge/Portfolio-solomonneas.dev-22c55e?style=flat-square\" alt=\"Portfolio\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 📋 Solomon's CyberBRIEF\n\n**AI-powered cyber threat intelligence research and reporting.**\n\nCyberBRIEF transforms raw threat data into executive-grade BLUF reports with MITRE ATT\u0026CK mapping, IOC extraction, and academic citations. Three research tiers provide flexibility from free open-source intelligence to deep AI-powered research.\n\n![CyberBRIEF](docs/screenshots/dashboard.png)\n\n---\n\n## Features\n\n- **Three Research Tiers** - Free (Brave + Gemini), Standard (Perplexity Sonar), Deep (Perplexity Deep Research)\n- **Flexible Source Input** - URLs, raw text, or PDFs fed directly into synthesis\n- **BLUF Executive Summaries** - Bottom-Line-Up-Front format for instant clarity\n- **MITRE ATT\u0026CK Mapping** - Automatic technique identification with Navigator layer export\n- **IOC Extraction** - IPs, domains, file hashes, CVEs, and URLs automatically parsed\n- **Academic Citations** - Chicago Notes-Bibliography format\n- **Threat Actor Profiling** - Rich profiles with confidence assessments\n- **Export Options** - Markdown and HTML report export\n- **TLP Banners** - Traffic Light Protocol classification for every report\n- **5 Theme Variants** - Visual themes for different presentation contexts\n\n---\n\n## Quick Start\n\n```bash\ngit clone https://github.com/solomonneas/cyberbrief.git\ncd cyberbrief\n\n# Backend\npip install -r backend/requirements.txt\n\n# Frontend\ncd frontend \u0026\u0026 npm install \u0026\u0026 npm run dev\n```\n\nFrontend: **http://localhost:5188**\nBackend: **http://localhost:8000**\n\n---\n\n## Tech Stack\n\n| Layer | Technology | Purpose |\n|-------|-----------|---------|\n| **Frontend** | React 18 | Interactive UI |\n| **Language** | TypeScript 5 | Type safety |\n| **Styling** | Tailwind CSS 3 | Utility-first CSS |\n| **State** | Zustand | Global state management |\n| **Bundler** | Vite 5 | Dev server with API proxy |\n| **Backend** | FastAPI | Async REST API |\n| **AI** | Gemini Flash | Report synthesis (free tier) |\n| **Search** | Brave Search API | Open-source intelligence (free tier) |\n| **Deep Research** | Perplexity API | Standard and deep research tiers |\n| **Storage** | SQLite | Report persistence |\n\n---\n\n## Research Tiers\n\n| Tier | Sources | AI Model | Use Case |\n|------|---------|----------|----------|\n| **Free** | Brave Search | Gemini Flash | Quick lookups, no API cost |\n| **Standard** | Perplexity Sonar | Sonar | Deeper research with citations |\n| **Deep** | Perplexity Deep Research | Deep Research | Comprehensive multi-source analysis |\n\n---\n\n## Project Structure\n\n```text\ncyberbrief/\n├── backend/\n│   ├── main.py                # FastAPI entry point\n│   ├── models.py              # Pydantic models\n│   ├── research/              # Research tier implementations\n│   ├── report/                # Report generation\n│   ├── attack/                # MITRE ATT\u0026CK mapping\n│   ├── export/                # Export handlers (MD, HTML)\n│   └── requirements.txt\n├── frontend/\n│   ├── src/\n│   │   ├── api/               # Backend API client\n│   │   ├── components/        # UI components\n│   │   ├── context/           # React context providers\n│   │   ├── hooks/             # Custom hooks\n│   │   ├── pages/             # Page views\n│   │   ├── stores/            # Zustand state\n│   │   ├── types/             # TypeScript interfaces\n│   │   └── variants/          # 5 theme variants\n│   ├── vite.config.ts\n│   └── package.json\n├── docs/\n│   ├── ARCHITECTURE.md\n│   ├── CONFIGURATION.md\n│   └── assets/\n├── Dockerfile\n├── railway.json               # Railway deployment config\n└── fly.toml                   # Fly.io deployment config\n```\n\n---\n\n## Deployment\n\nCyberBRIEF includes deployment configs for Railway and Fly.io:\n\n- **Railway**: `railway.json` with auto-deploy\n- **Fly.io**: `fly.toml` with Dockerfile\n- **Docker**: `Dockerfile` for containerized deployment\n\nSee [CONFIGURATION.md](docs/CONFIGURATION.md) for environment variables and API key setup.\n\n---\n\n## Documentation\n\n| Document | Purpose |\n|----------|---------|\n| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | Tech stack, data flow, tier mechanics, frontend/backend split |\n| [CONFIGURATION.md](docs/CONFIGURATION.md) | Environment variables, API key setup, port configuration |\n\n---\n\n## License\n\nMIT. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolomonneas%2Fcyberbrief","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolomonneas%2Fcyberbrief","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolomonneas%2Fcyberbrief/lists"}