Search the human web. Get results from Reddit, GitHub, Wikipedia, Hacker News, Stack Overflow, and Archive.org in one place.
No SEO spam. No ads. No algorithm. Just humans.
- Multi-Source Aggregation: Searches 6 high-signal communities simultaneously.
- Smart Scoring Engine: Ranks results based on a composite score of text relevance, freshness, and community metrics (upvotes, stars, points).
- Source Interleaving: Prevents one source (e.g., Wikipedia) from dominating the first page of results.
- Dark/Light Mode: First-class support for both themes, persistent via
localStorage. - Keyboard Navigation: Press
/to focus search anywhere. - Privacy First: Everything runs entirely in your browser. No middleman backend, no tracking, no analytics.
- Framework: React 19 + Vite
- Routing:
react-router-dom - Styling: Pure CSS (Custom properties for theming, CSS modules ready)
- Security:
dompurify(prevents XSS from raw API snippets)
Because OpenHumanSearch is a pure client-side SPA, you can run it locally with zero backend dependencies.
- Node.js (v18 or higher recommended)
-
Clone the repository:
git clone https://github.com/yourusername/openhumansearch.git cd openhumansearch -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173.
By default, the app searches public APIs safely without authentication. During local development (npm run dev), all searches happen directly in the browser.
However, when deployed to Vercel, the application automatically utilizes serverless functions (api/reddit.js and api/github.js) to act as a backend proxy:
- Reddit: Proxies requests with a custom User-Agent, bypassing strict unauthenticated limits to give you ~60 requests/minute.
- GitHub: Securely injects a GitHub Personal Access Token on the backend, increasing the search limit from 60/hour (IP-based) to 30/minute (authenticated).
To enable the authenticated GitHub proxy on Vercel:
- Generate a GitHub Personal Access Token (read-only is fine).
- Go to your Vercel Project Settings > Environment Variables.
- Add a new variable:
GITHUB_TOKEN(Do not prefix withVITE_to ensure it stays completely hidden from the browser).
The project is configured to produce a highly optimized, minified bundle (around 50-60kB gzipped).
npm run build
# The optimized files will be in the /dist directoryIt is primarily designed to be deployed on Vercel out of the box to take advantage of the serverless API proxies for higher rate limits. It includes a vercel.json file for proper SPA routing.
Note on other hosts: You can deploy the frontend to any static host (Netlify, Cloudflare Pages, GitHub Pages), but you will lose the backend proxies. The app will automatically fall back to direct browser fetching, which means a high-traffic public deployment will quickly exhaust external IP-based rate limits (like GitHub's 60/hour limit).
We welcome contributions! Please see CONTRIBUTING.md for details on how to add new search sources, fix bugs, or improve the UI.
This project is licensed under the MIT License - see the LICENSE file for details.