{"id":28503065,"url":"https://github.com/filipjaruska/drawdle","last_synced_at":"2026-05-06T08:32:44.481Z","repository":{"id":297950484,"uuid":"806755303","full_name":"filipjaruska/drawdle","owner":"filipjaruska","description":"Drawdle is a web application that combines drawing and social interaction. ","archived":false,"fork":false,"pushed_at":"2025-06-08T14:10:32.000Z","size":386,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-23T10:53:57.452Z","etag":null,"topics":["drizzle-orm","nextjs","t3-stack"],"latest_commit_sha":null,"homepage":"https://drawdle-beta.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/filipjaruska.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}},"created_at":"2024-05-27T20:46:25.000Z","updated_at":"2025-06-08T14:19:08.000Z","dependencies_parsed_at":"2025-06-08T15:32:01.541Z","dependency_job_id":null,"html_url":"https://github.com/filipjaruska/drawdle","commit_stats":null,"previous_names":["filipjaruska/drawdle"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/filipjaruska/drawdle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipjaruska%2Fdrawdle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipjaruska%2Fdrawdle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipjaruska%2Fdrawdle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipjaruska%2Fdrawdle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/filipjaruska","download_url":"https://codeload.github.com/filipjaruska/drawdle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filipjaruska%2Fdrawdle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32684645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["drizzle-orm","nextjs","t3-stack"],"created_at":"2025-06-08T17:00:24.849Z","updated_at":"2026-05-06T08:32:44.476Z","avatar_url":"https://github.com/filipjaruska.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Drawdle 🎨\n\n## About\n\nDrawdle is a **hobby web application** that combines drawing and social interaction. Users can submit drawings for weekly challenges (\"draweeks\"), vote on submissions, and maintain drawing streaks.\n\n**This is a personal learning/hobby project created for educational purposes.** It was built to explore modern web development technologies and is not intended for commercial use, production deployment, or any mission-critical applications.\n\n## Features\n\n- 🎨 **Weekly Drawing Challenges**: Submit drawings for themed weekly contests\n- 📊 **Voting System**: Community voting on submissions\n- 🔥 **Streak System**: Duolingo-inspired streak tracking for consistent participation\n- 👤 **User Profiles**: Personal galleries and statistics\n- 🌙 **Dark Theme**: Modern dark UI design\n- 📱 **Progressive Web App**: Installable as a mobile app\n\n## Tech Stack\n\nThis project was bootstrapped with [create-t3-app](https://create.t3.gg/) and uses:\n\n- **Framework**: [Next.js 14](https://nextjs.org) - React framework with App Router\n- **Authentication**: [Clerk](https://clerk.com) - User authentication and management\n- **Database**: [PostgreSQL](https://www.postgresql.org/) with [Drizzle ORM](https://orm.drizzle.team)\n- **Styling**: [Tailwind CSS](https://tailwindcss.com) - Utility-first CSS framework\n- **File Upload**: [UploadThing](https://uploadthing.com) - File upload service\n\n## Local Development\n\n1. Clone the repository\n\n```bash\ngit clone https://github.com/yourusername/drawdle.git\ncd drawdle\n```\n\n2. Install dependencies\n\n```bash\nnpm install\n```\n\n3. Set up environment variables\n\n```bash\ncp .env.example .env.local\n```\n\n4. Set up the database\n\n```bash\nnpm run db:push\n```\n\n5. Start the development server\n\n```bash\nnpm run dev\n```\n\n## Environment Variables\n\nCreate a `.env.local` file with the following variables:\n\n```env\n# Database\nPOSTGRES_URL=\"your_postgres_connection_string\"\n\n# Clerk Authentication\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=\"your_clerk_publishable_key\"\nCLERK_SECRET_KEY=\"your_clerk_secret_key\"\n\n# UploadThing\nUPLOADTHING_SECRET=\"your_uploadthing_secret\"\nUPLOADTHING_APP_ID=\"your_uploadthing_app_id\"\n```\n\n## Database Schema\n\nThe application uses a PostgreSQL database with the following main entities:\n\n- **Users**: Managed by Clerk with metadata for streaks and permissions\n- **Images**: User-uploaded artwork\n- **Draweeks**: Weekly drawing challenges with topics\n- **Submissions**: User submissions linking images to draweeks\n- **Votes/Polling**: Community voting system for submissions\n\n## Project Status \u0026 Disclaimers\n\nThis project is **ARCHIVED** and no longer maintained. Known issues and incomplete features include:\n\n- Incomplete voting system\n- Missing dashboard functionality\n- Schema inconsistencies\n- Unfinished image deletion flow\n- Various UI/UX improvements needed\n- Potential security vulnerabilities\n- Unoptimized database queries\n\n## License\n\nMIT License - See [LICENSE](LICENSE) file for details.\n\n**Additional Hobby Project Disclaimer**: This project includes additional disclaimers in the LICENSE file specifically addressing its status as a hobby/learning project not intended for production use.\n\n## Final Notes\n\n- This was a fun learning project exploring the T3 stack and experimenting with advanced Next.js patterns including:\n  - **Parallel Routes \u0026 Intercepting Routes**: Implemented `@modal` folder structure with `(.)art/[id]` for modal overlays\n  - **File Upload Systems**: Built custom upload components using UploadThing with React hooks and drag-drop functionality\n  - **Server Actions**: Experimented with Next.js 14 server actions for form submissions and database mutations\n  - **Modern React Patterns**: Custom hooks, portals, and client/server component boundaries\n  - **Database Design**: Relational schema design with Drizzle ORM and PostgreSQL\n  - **Authentication Flow**: Clerk integration with custom user metadata and role-based access\n- If you're looking to build something similar, consider using this as inspiration for learning these patterns rather than a production starting point\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilipjaruska%2Fdrawdle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilipjaruska%2Fdrawdle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilipjaruska%2Fdrawdle/lists"}