{"id":50939059,"url":"https://github.com/theubaidistan/quickai","last_synced_at":"2026-06-17T12:01:29.843Z","repository":{"id":363116011,"uuid":"1026864808","full_name":"theubaidistan/QuickAI","owner":"theubaidistan","description":"Quick AI PERN Stack - The main idea of the project is that users enter text prompts, the application sends these inputs to an AI service through an API, and then displays the generated responses back on the screen in real time. Vercel handles the hosting and deployment, making the application. ","archived":false,"fork":false,"pushed_at":"2026-06-07T13:54:17.000Z","size":1615,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T15:11:03.180Z","etag":null,"topics":["axios-react","clerk","clerk-auth","clerk-billing","cloudinary-api","express","expressjs","gemini","gemini-ai","gemini-api","neon-postgres","neondb","nodejs","openai","postgresql","reactjs","tailwindcss","vercel","vitejs"],"latest_commit_sha":null,"homepage":"https://quick-ai-jet.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theubaidistan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-07-26T19:23:51.000Z","updated_at":"2026-06-07T13:54:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/theubaidistan/QuickAI","commit_stats":null,"previous_names":["theubaidistan/quickai"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/theubaidistan/QuickAI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theubaidistan%2FQuickAI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theubaidistan%2FQuickAI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theubaidistan%2FQuickAI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theubaidistan%2FQuickAI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theubaidistan","download_url":"https://codeload.github.com/theubaidistan/QuickAI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theubaidistan%2FQuickAI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34447266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"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":["axios-react","clerk","clerk-auth","clerk-billing","cloudinary-api","express","expressjs","gemini","gemini-ai","gemini-api","neon-postgres","neondb","nodejs","openai","postgresql","reactjs","tailwindcss","vercel","vitejs"],"created_at":"2026-06-17T12:01:26.032Z","updated_at":"2026-06-17T12:01:29.837Z","avatar_url":"https://github.com/theubaidistan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./server/public/project.jpg\" alt=\"Quick.AI Banner\" width=\"720\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eQuick.AI\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A full-stack AI-powered SaaS platform for text generation and image creation — built on the PERN stack with Clerk authentication, Gemini, and OpenAI.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://quick-ai-jet.vercel.app/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Live%20Demo-Quick.AI-black?style=for-the-badge\u0026logo=vercel\" alt=\"Live Demo\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://quick-ai-server-mocha-zeta.vercel.app/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Backend%20Server-Listening-22c55e?style=for-the-badge\u0026logo=node.js\u0026logoColor=white\" alt=\"Backend Server\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 🛠 Tech Stack\n\n### Frontend\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\" alt=\"React\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vite-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white\" alt=\"Vite\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Tailwind%20CSS-06B6D4?style=for-the-badge\u0026logo=tailwindcss\u0026logoColor=white\" alt=\"Tailwind CSS\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Axios-5A29E4?style=for-the-badge\u0026logo=axios\u0026logoColor=white\" alt=\"Axios\" /\u003e\n\u003c/p\u003e\n\n### Backend\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=node.js\u0026logoColor=white\" alt=\"Node.js\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\" alt=\"Express.js\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Middleware-FF6C37?style=for-the-badge\u0026logo=express\u0026logoColor=white\" alt=\"Middleware\" /\u003e\n\u003c/p\u003e\n\n### Database\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-4169E1?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" alt=\"PostgreSQL\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/NeonDB-00E5BF?style=for-the-badge\u0026logo=neon\u0026logoColor=black\" alt=\"NeonDB\" /\u003e\n\u003c/p\u003e\n\n### Auth \u0026 Billing\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Clerk-6C47FF?style=for-the-badge\u0026logo=clerk\u0026logoColor=white\" alt=\"Clerk Auth \u0026 Billing\" /\u003e\n\u003c/p\u003e\n\n### AI / APIs\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Google%20Gemini-4285F4?style=for-the-badge\u0026logo=google\u0026logoColor=white\" alt=\"Gemini\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/OpenAI-412991?style=for-the-badge\u0026logo=openai\u0026logoColor=white\" alt=\"OpenAI\" /\u003e\n\u003c/p\u003e\n\n---\n\n## ✨ Features\n\n- 🤖 **AI Text Generation** — Powered by Google Gemini for fast, accurate text prompts\n- 🎨 **AI Image Generation** — Powered by OpenAI's image generation API\n- 🔐 **Authentication \u0026 Billing** — Clerk handles sign-up, sign-in, and subscription billing\n- 🗄️ **PostgreSQL on NeonDB** — Serverless, scalable database for user and usage data\n- ⚡ **Vite + React** — Lightning-fast frontend with hot module replacement\n- 💨 **Tailwind CSS** — Utility-first styling for a clean, responsive UI\n- 🔄 **Axios** — HTTP client for clean API communication between frontend and backend\n- 🛡️ **Express Middleware** — Auth guards, error handling, and request validation on the backend\n\n---\n\n## 📁 Project Structure\n\n```\nquick-ai/\n├── client/                   # Vite + React frontend\n│   ├── src/\n│   │   ├── components/       # Reusable UI components\n│   │   ├── pages/            # Route-level pages\n│   │   ├── lib/              # Axios instance \u0026 helpers\n│   │   └── main.jsx\n│   ├── tailwind.config.js\n│   └── vite.config.js\n│\n├── server/                   # Express backend\n│   ├── controllers/          # Route handler logic\n│   ├── middleware/           # Auth, error, validation middleware\n│   ├── routes/               # API route definitions\n│   ├── db/                   # NeonDB / PostgreSQL connection\n│   └── index.js\n│\n└── README.md\n```\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js ≥ 18\n- A [NeonDB](https://neon.tech/) account and database URL\n- A [Clerk](https://clerk.com/) account (API keys for auth + billing)\n- Google Gemini API key\n- OpenAI API key\n\n### 1. Clone the repo\n\n```bash\ngit clone https://github.com/theubaidistan/quick-ai.git\ncd quick-ai\n```\n\n### 2. Configure environment variables\n\n**`server/.env`**\n\n```env\nDATABASE_URL=your_neondb_connection_string\nCLERK_SECRET_KEY=your_clerk_secret_key\nGEMINI_API_KEY=your_gemini_api_key\nOPENAI_API_KEY=your_openai_api_key\nPORT=5000\n```\n\n**`client/.env`**\n\n```env\nVITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key\nVITE_API_BASE_URL=http://localhost:5000\n```\n\n### 3. Install dependencies \u0026 run\n\n```bash\n# Backend\ncd server\nnpm install\nnpm run dev\n\n# Frontend (in a new terminal)\ncd client\nnpm install\nnpm run dev\n```\n\n---\n\n## 🌐 Deployment\n\n| Service  | Platform                                                 |\n| -------- | -------------------------------------------------------- |\n| Frontend | [Vercel](https://quick-ai-jet.vercel.app/)               |\n| Backend  | [Vercel](https://quick-ai-server-mocha-zeta.vercel.app/) |\n| Database | [NeonDB](https://neon.tech/) (Serverless PostgreSQL)     |\n\n---\n\n## 📚 Course Credit\n\nBuilt as part of a full-stack JavaScript learning journey following **Jonas Schmedtmann's** courses on [Udemy](https://www.udemy.com/course/the-ultimate-react-course/?couponCode=KEEPLEARNING).\n\n---\n\n## 👨‍💻 Author\n\n**Ubaidistan**\n\n- GitHub: [@theubaidistan](https://github.com/theubaidistan)\n- Live: [quick-ai-jet.vercel.app](https://quick-ai-jet.vercel.app/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheubaidistan%2Fquickai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheubaidistan%2Fquickai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheubaidistan%2Fquickai/lists"}