{"id":35729106,"url":"https://github.com/pass-with-high-score/check-subdomain","last_synced_at":"2026-01-16T19:36:19.728Z","repository":{"id":331562948,"uuid":"1128011970","full_name":"pass-with-high-score/check-subdomain","owner":"pass-with-high-score","description":"Free online developer tools. No signup required, 100% client-side processing.","archived":false,"fork":false,"pushed_at":"2026-01-13T10:58:00.000Z","size":897,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T21:18:38.741Z","etag":null,"topics":["image-base64","json-server","nextjs","otp-generator","subdomain","subdomain-scanner","webhook","webtool"],"latest_commit_sha":null,"homepage":"https://devtool.pwhs.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/pass-with-high-score.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-05T02:17:21.000Z","updated_at":"2026-01-13T10:58:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pass-with-high-score/check-subdomain","commit_stats":null,"previous_names":["pass-with-high-score/check-subdomain"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/pass-with-high-score/check-subdomain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pass-with-high-score%2Fcheck-subdomain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pass-with-high-score%2Fcheck-subdomain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pass-with-high-score%2Fcheck-subdomain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pass-with-high-score%2Fcheck-subdomain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pass-with-high-score","download_url":"https://codeload.github.com/pass-with-high-score/check-subdomain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pass-with-high-score%2Fcheck-subdomain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28481887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["image-base64","json-server","nextjs","otp-generator","subdomain","subdomain-scanner","webhook","webtool"],"created_at":"2026-01-06T10:14:18.483Z","updated_at":"2026-01-16T19:36:19.706Z","avatar_url":"https://github.com/pass-with-high-score.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DevTools\n\nFree online developer tools. No signup required, 100% client-side processing for most tools.\n\n**Live Demo**: [pwhs.app](https://pwhs.app)\n\n## Tools\n\n| Tool | Description | Storage |\n|------|-------------|---------|\n| **Subdomain Scanner** | Discover subdomains using CT logs, VirusTotal, Shodan | Client-side |\n| **OTP Generator** | Generate TOTP codes with key saving and password protection | Local Storage |\n| **Base64 Image** | View/encode images to Base64 with drag \u0026 drop | Client-side |\n| **Webhook Tester** | Receive and inspect webhook requests in real-time | Server |\n| **JSON Server** | Host, validate, and share JSON data with mock APIs | Server |\n| **Image Uploader** | Upload images and get shareable links | S3/R2 |\n| **File Transfer** | Share any file with expiring download links | S3/R2 |\n| **Time Capsule** | Lock files until a future date | S3/R2 |\n| **Speech to Text** | Transcribe audio with word-level timestamps and seek | Server (Deepgram) |\n| **YouTube Downloader** | Download YouTube videos and audio in various qualities | Server (ytdl-core) |\n| **ANeko Builder** | Create custom skins for ANeko Reborn Android app | Client-side |\n| **Anonymous Chat** | Real-time public chat with random usernames | PostgreSQL |\n\n## Project Structure\n\n```\ndevtool-fe/\n├── src/                    # Next.js frontend\n│   ├── app/               # App router pages\n│   ├── components/        # React components (incl. ChatWidget)\n│   └── lib/               # Utilities\n├── backend/               # NestJS backend API\n│   └── src/\n│       ├── chat/          # WebSocket chat gateway\n│       ├── cleanup/       # Scheduled cleanup tasks\n│       ├── database/      # Database service\n│       └── storage/       # S3/R2 storage service\n```\n\n## Quick Start\n\n### Frontend (Next.js)\n\n```bash\n# Install dependencies\nbun install\n\n# Run development server\nbun run dev\n```\n\nOpen http://localhost:3000\n\n### Backend (NestJS)\n\n```bash\ncd backend\n\n# Install dependencies\nbun install\n\n# Run development server\nbun run start:dev\n```\n\nBackend runs on http://localhost:3001\n\n## Environment Variables\n\n### Frontend (.env)\n\n```env\n# VirusTotal API Key (free tier: 4 requests/minute)\nVIRUSTOTAL_API_KEY=\n\n# Shodan API Key (free tier: 100 credits/month)\nSHODAN_API_KEY=\n\n# Base URL\nNEXT_PUBLIC_BASE_URL=https://yourdomain.com\n\n# PostgreSQL Database\nDATABASE_URL=postgresql://user:pass@host:5432/db\n\n# S3/R2 Cloudflare Storage\nS3_ENDPOINT=\nS3_ACCESS_KEY=\nS3_SECRET_KEY=\nS3_BUCKET=\nS3_PUBLIC_URL=\n\n# Custom Public URLs (optional)\nIMAGE_PUBLIC_URL=https://image.yourdomain.com\nCAPSULE_PUBLIC_URL=https://capsule.yourdomain.com\n\n# Time Capsule Settings (optional)\nCAPSULE_MAX_FILE_SIZE=104857600\nCAPSULE_MAX_LOCK_DAYS=365\nCAPSULE_MIN_LOCK_DAYS=1\n```\n\n### Backend (.env)\n\n```env\n# PostgreSQL Database\nDATABASE_URL=postgresql://user:pass@host:5432/db\n\n# S3/R2 Storage\nS3_ENDPOINT=\nS3_ACCESS_KEY=\nS3_SECRET_KEY=\nS3_BUCKET=\n\n# Deepgram API Key (for Speech to Text)\nDEEPGRAM_API_KEY=\n\n# Server Port\nPORT=3001\n```\n\n## API Keys (Optional)\n\nConfigure in UI Settings panel:\n- **VirusTotal** - [virustotal.com](https://www.virustotal.com/) - Subdomain enumeration\n- **Shodan** - [shodan.io](https://shodan.io/) - Subdomain enumeration\n\n##  Deployment\n\n### Frontend\nDeploy to any platform that supports Next.js (Vercel, Netlify, etc.)\n\n### Backend\n```bash\ncd backend\nbun run build\nbun run start:prod\n```\n\nOr use PM2:\n```bash\npm2 start ecosystem.config.js\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpass-with-high-score%2Fcheck-subdomain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpass-with-high-score%2Fcheck-subdomain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpass-with-high-score%2Fcheck-subdomain/lists"}