An AI-powered fact-checking solution available as both a web application and browser extension. Leveraging Claude's advanced language understanding to analyze content and verify claims in real-time. Whether you're checking news articles, social media posts, or images, this tool helps combat misinformation by providing accurate, source-backed analysis.
Clean, modern landing page with our mission statement
Flexible input interface supporting text, URL, and image fact-checking
Comprehensive analysis with reliability score, factual assessment, and verified sources
Chrome extension popup ready to analyze the current page
Extension showing fact-check results with reliability score and analysis
- Available as both web app and Chrome extension
- Real-time webpage content analysis
- Multi-input support (text, URLs, and images)
- Reliability scoring (1-10 scale)
- Detailed analysis of claims
- False claim detection and correction
- Source verification with links
- Modern, responsive UI with animations
- Real-time analysis using Claude
Access the full-featured web application for more flexibility:
- Visit http://localhost:3000 (when running locally)
- Choose your input type (text, URL, or image)
- Enter or upload your content
- Click "Check Facts"
- View the detailed analysis, including:
- Reliability score
- Factual assessment
- Detailed analysis
- False claims and corrections
- Verified sources
Use the convenient browser extension for quick webpage analysis:
- Click the extension icon in your toolbar
- The extension will automatically analyze the current page
- View reliability score, false claims, and verified sources in the popup
- Node.js 18+ installed
- Anthropic API key
- Chrome browser (for extension)
- Local development server (for both web app and extension)
- Clone the repository
- Install dependencies:
npm install
- Create a
.env.localfile and add your API key:ANTHROPIC_API_KEY=your_api_key_here - Run the development server:
npm run dev
- Open http://localhost:3000 in your browser
- Complete the web application setup first (steps 1-4 above)
- Enable Chrome Developer Mode:
- Open Chrome and go to
chrome://extensions/ - Toggle "Developer mode" in the top right
- Open Chrome and go to
- Load the Extension:
- Click "Load unpacked"
- Select the
extensiondirectory from this project - The extension icon should appear in your toolbar
# Install dependencies
npm install
# Run development server (required for both web app and extension)
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Run linting
npm run lint
# Run type checking
npm run typecheck- Next.js 14 (Web Application)
- TypeScript
- Tailwind CSS
- Framer Motion
- Chrome Extension API (V3)
- Anthropic Claude API
- Cheerio for web scraping
- Axios for HTTP requests
factcheck/
├── src/ # Source files for web application
│ ├── app/ # Next.js app directory
│ │ ├── api/ # API routes
│ │ │ └── factcheck/ # Fact-checking endpoint
│ │ ├── components/ # React components
│ │ ├── styles/ # Global styles
│ │ └── page.tsx # Main web app page
│ ├── lib/ # Shared utilities
│ └── types/ # TypeScript type definitions
├── extension/ # Chrome extension files
│ ├── popup/ # Extension popup interface
│ │ ├── popup.html # Popup HTML
│ │ ├── popup.css # Popup styles
│ │ └── popup.js # Popup logic
│ ├── content.js # Content script for webpage analysis
│ ├── background.js # Service worker background script
│ ├── manifest.json # Extension configuration
│ └── icons/ # Extension icons
├── public/ # Static assets
├── docs/ # Documentation and images
│ └── images/ # Screenshot and images
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── tailwind.config.js # Tailwind CSS configuration
└── README.md # Project documentation
-
src/: Contains the web application codeapp/: Next.js application code and API routescomponents/: Reusable React componentslib/: Shared utilities and helper functionstypes/: TypeScript type definitions
-
extension/: Chrome extension-specific codepopup/: Extension popup interface filescontent.js: Handles webpage content extractionbackground.js: Manages extension lifecyclemanifest.json: Extension configuration
-
public/: Static assets for the web application -
docs/: Documentation and media assets
-
Web Application
page.tsx: Main web interface with input optionsapi/factcheck/: Handles fact-checking requestscomponents/: UI components for analysis display
-
Chrome Extension
popup.{html,css,js}: Extension popup interfacecontent.js: Webpage content extractionbackground.js: Extension event handling
-
Shared Resources
lib/: Common utilities used by both web and extensiontypes/: Shared TypeScript interfaces and types
The web app provides a full-featured interface with:
- Direct text input
- URL analysis
- Image upload and analysis
- Detailed results display
- Source verification
- Interactive UI elements
The extension consists of several key components:
manifest.json: Extension configuration and permissionspopup.html/css/js: Extension UI and interaction logiccontent.js: Webpage content extractionbackground.js: Service worker for extension events
- Extracts main article content
- Removes ads and irrelevant elements
- Handles dynamic content loading
- Sanitizes text for analysis
- Manages extension lifecycle
- Handles tab events
- Coordinates content script injection
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a PR with a clear description
-
API Key Issues
- Ensure your Anthropic API key is correctly set in
.env.local - Verify the API key has sufficient credits
- Check if the API key has the necessary permissions
- Ensure your Anthropic API key is correctly set in
-
Web Application Issues
- Check if the development server is running
- Verify the correct port (3000) is available
- Check browser console for errors
- Verify environment variables are loaded
-
Extension Loading Issues
- Verify Developer mode is enabled
- Check for console errors in the extension
- Ensure the manifest.json is valid
- Verify all extension files are in the correct location
-
Content Analysis Issues
- Check if the webpage is accessible
- Verify the content script is injecting properly
- Check network requests in DevTools
- Ensure the local server is running
-
Build Errors
- Clear the
.nextfolder and node_modules:rm -rf .next node_modules - Reinstall dependencies:
npm install - Ensure you're using Node.js 18+:
node --version
- Clear the
Open an issue on GitHub with:
- Your environment details (Node.js version, OS, Chrome version)
- Steps to reproduce the problem
- Error messages and logs
- Extension console output (if applicable)
MIT License - feel free to use this project for any purpose.
This project requires an Anthropic API key to function. Make sure to replace your_api_key_here in the .env.local file with your actual Anthropic API key.