{"id":31740329,"url":"https://github.com/abhivarde/errexplain","last_synced_at":"2025-10-09T10:18:00.834Z","repository":{"id":313649045,"uuid":"1047404049","full_name":"AbhiVarde/ErrExplain","owner":"AbhiVarde","description":"Turn cryptic errors into plain English.","archived":false,"fork":false,"pushed_at":"2025-10-07T06:51:40.000Z","size":1880,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T07:21:02.605Z","etag":null,"topics":["appwrite","javascript","nextjs","react","vercel","vercel-ai-sdk"],"latest_commit_sha":null,"homepage":"https://errexplain.appwrite.network","language":"JavaScript","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/AbhiVarde.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":"2025-08-30T10:47:12.000Z","updated_at":"2025-10-07T06:51:44.000Z","dependencies_parsed_at":"2025-10-07T07:11:53.183Z","dependency_job_id":"d5a22e3b-874c-4327-a812-61c97b2a0eb3","html_url":"https://github.com/AbhiVarde/ErrExplain","commit_stats":null,"previous_names":["abhivarde/errexplain"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AbhiVarde/ErrExplain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2FErrExplain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2FErrExplain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2FErrExplain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2FErrExplain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbhiVarde","download_url":"https://codeload.github.com/AbhiVarde/ErrExplain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2FErrExplain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001321,"owners_count":26083040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["appwrite","javascript","nextjs","react","vercel","vercel-ai-sdk"],"created_at":"2025-10-09T10:17:59.471Z","updated_at":"2025-10-09T10:18:00.820Z","avatar_url":"https://github.com/AbhiVarde.png","language":"JavaScript","funding_links":["https://github.com/sponsors/AbhiVarde"],"categories":[],"sub_categories":[],"readme":"[![Deploy to Appwrite](https://img.shields.io/badge/Deploy%20to-Appwrite-f02e65?style=for-the-badge\u0026logo=appwrite\u0026logoColor=f02e65\u0026labelColor=1d1d1d)](https://cloud.appwrite.io/console)\n\n# 🪴 Introducing ErrExplain\n\n**Turn cryptic errors into plain English.**\n\nInstantly analyze programming errors with AI-powered explanations, root cause analysis, and actionable solutions.\n\n\u003cimg width=\"1200\" height=\"630\" alt=\"og-image\" src=\"./public/og-image.png\" /\u003e\n\n## 🛠️ Key Features\n\n- **🔍 Smart Error Analysis** - Paste any error message and get structured explanations\n- **🎯 Root Cause Detection** - Understand what actually caused the error\n- **🛠️ Actionable Solutions** - Step-by-step fixes that actually work\n- **💻 AI-Generated Minimal Code** - Reproduce the exact error with minimal example code\n- **🗑️ Delete Errors from History** - Remove unwanted entries from your personal dashboard\n- **🔐 Privacy Controls \u0026 Auto-Moderation** - Strip API keys, passwords, and other secrets; optionally mark entries private\n- **🌙 Full Dark Theme** - Dark/light mode support throughout the app\n- **💬 Voting System** - Users can vote helpful/not helpful on solutions\n- **🔗 Collaborative Sharing** - Generate shareable links for team debugging\n- **📊 Error History** - Track and analyze your debugging patterns with charts\n- **⚡ Rate Limiting** - Fair usage with 5 free analyses per day\n- **📱 Mobile Friendly** - Works seamlessly across all devices\n\n## 🤔 Why ErrExplain?\n\n| Feature                   | ErrExplain                          | ChatGPT/Claude                 | Stack Overflow           |\n| ------------------------- | ----------------------------------- | ------------------------------ | ------------------------ |\n| **Error Focus**           | ✅ Specialized for errors           | ❌ General purpose             | ❌ Manual search         |\n| **Structured Output**     | ✅ Meaning → Causes → Fixes         | ❌ Raw text response           | ❌ Mixed quality answers |\n| **Memory \u0026 Analytics**    | ✅ Dashboard with charts \u0026 insights | ❌ Limited conversation memory | ❌ No personal dashboard |\n| **Language Intelligence** | ✅ Top languages, severity tracking | ❌ No pattern recognition      | ❌ No personal insights  |\n\n## 🚀 Tech Stack\n\n- **Frontend**: Next.js 15+, React 19, Tailwind CSS 4, clsx\n- **Backend**: Appwrite Functions, Next.js API Routes, Node.js, node-appwrite\n- **Database**: Appwrite Database\n- **AI**: Groq (Llama 4 Maverick)\n- **Vercel AI SDK**: ai, @ai-sdk/groq\n- **Validation**: Zod\n- **UI**: Sonner (toasts)\n- **Charts**: Recharts\n- **Icons**: Lucide React\n- **Deployment**: Appwrite Sites\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+ and npm\n- Appwrite account and project\n- Groq API key\n\n### Quick Start\n\n```bash\n# Clone repository\ngit clone https://github.com/AbhiVarde/errexplain.git\ncd errexplain\n\n# Install dependencies\nnpm install\n\n# Setup environment\ncp .env.example .env.local\n# Edit .env.local with your credentials\n\n# Run development server\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) and start analyzing errors.\n\n### Environment Configuration\n\nCreate `.env.local` with these variables:\n\n```env\n# Appwrite\nAPPWRITE_API_KEY=your_appwrite_api_key\nNEXT_PUBLIC_APPWRITE_PROJECT_ID=your_project_id\nNEXT_PUBLIC_APPWRITE_ENDPOINT=https://fra.cloud.appwrite.io/v1\nNEXT_PUBLIC_APPWRITE_DATABASE_ID=your_database_id\nNEXT_PUBLIC_APPWRITE_ERROR_SUBMISSIONS_COLLECTION_ID=your_collection_id\n```\n\n**Appwrite Collections Setup:**\n\n- **error-submissions**: `clientId`, `errorMessage`, `language`, `explanation`, `causes`, `solutions`, `category`, `severity`, `isShared`, `shareId`, `sharedAt`, `exampleCode`, `isPrivate`\n\n- **daily-usage**: `clientId`, `date`, `usageCount`\n\n- **solution-votes**: `shareId`, `solutionIndex`, `voteType`, `userFingerprint`\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to branch (`git push origin feature/amazing-feature`)\n5. Open Pull Request\n\n**Development Guidelines:**\n\n- Follow existing code patterns\n- Test error scenarios thoroughly\n- Maintain responsive design\n- Keep commits focused and descriptive\n\n## 💖 Support\n\n**Love ErrExplain? Help me keep building!**\n\n💚 **$5 / month - Monthly Supporter**  \nGet recognition in the GitHub README under Supporters.\n\n🌟 **$19 / month - Monthly Sponsor**  \nSupport growth and get recognition both in the GitHub README **and** on my portfolio (abhivarde.in).\n\n🚀 **$49 / month - Featured Sponsor**  \nPremium support with **extra visibility**: README + Portfolio + **promotion on Sync UI**.\n\n[👉 Become a Sponsor](https://github.com/sponsors/AbhiVarde)\n\n## 🌩️ Appwrite Cloud Beta\n\nProud to be a part of the **Appwrite Cloud Public Beta**!  \nClick the card to view it live:\n\n\u003ca href=\"https://cloud.appwrite.io/card/653e053411ff36b703e7\" target=\"_blank\"\u003e\n  \u003cimg width=\"350\" src=\"https://cloud.appwrite.io/v1/cards/cloud?userId=653e053411ff36b703e7\" alt=\"Appwrite Cloud Card\" /\u003e\n\u003c/a\u003e\n\n## License\n\nErrExplain is licensed under the [MIT License](http://choosealicense.com/licenses/mit/). All rights reserved.\n\n## Authors\n\nErrExplain is created and maintained by [Abhi Varde](https://www.abhivarde.in/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhivarde%2Ferrexplain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhivarde%2Ferrexplain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhivarde%2Ferrexplain/lists"}