[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81504":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":29,"discoverSource":30},81504,"open-prompts","rudy2steiner\u002Fopen-prompts","rudy2steiner","an open-source platform for discovering, sharing, and reusing AI image prompt templates. Browse a curated gallery, open any template in a focused generation studio, and produce images with pluggable providers—without leaving one workflow","https:\u002F\u002Fwww.open-prompts.com",null,"TypeScript",32,1,28,0,2,4,0.9,"Apache License 2.0",false,"main",true,[24,25],"prompts","prompts-template","2026-06-12 02:04:16","# Open Prompts\n\n**Open Prompts** is an open-source platform for discovering, sharing, and reusing **AI image prompt templates**. Browse a curated gallery, open any template in a focused generation studio, and produce images with pluggable providers—without leaving one workflow.\n\nRepository: [github.com\u002Frudy2steiner\u002Fopen-prompts](https:\u002F\u002Fgithub.com\u002Frudy2steiner\u002Fopen-prompts)\n\nLicensed under the [Apache License, Version 2.0](LICENSE).\n\n**Languages:** English · [简体中文](.\u002FREADME.zh-CN.md) · [日本語](.\u002FREADME.ja-JP.md)\n\n**Live demo:** [open-prompts.com](https:\u002F\u002Fwww.open-prompts.com)\n\n---\n\n## Introduction\n\nMost teams collect prompts in docs, threads, or spreadsheets. **Open Prompts** turns them into structured **templates** with preview images, tags, models, and visibility (public, private, or draft). Users can:\n\n- Explore community and catalog prompts in a **gallery**\n- **Generate** from a template in one click\n- **Submit** new public prompts for review, or create **private** templates from the account dashboard\n- Sign in with **GitHub**, **Google**, or **email** (admin credentials for operators)\n\nThe app is built with **Next.js**, **next-intl** (English, Chinese, Japanese), **NextAuth**, and **Postgres** (e.g. Supabase). Image generation is routed through server APIs with **Atlas Cloud** today (**Replicate** is planned, not yet supported), plus a **test mode** for development without paid API calls.\n\n---\n\n## Main features\n\n| Area | What you get |\n|------|----------------|\n| **Gallery** | Search and filter templates by model and tags; open detail view and jump to Create with the prompt pre-filled. |\n| **Create studio** | Template carousel, prompt editor, aspect ratio \u002F quality \u002F batch controls, provider selection, and session history (browser `localStorage`). |\n| **Submit flow** | Single-page wizard to publish prompts to the gallery (public → review queue) or save **private** templates via `?visibility=private`. |\n| **Account dashboard** | My templates, admin **review queue** (approve \u002F reject), credits and subscription placeholders. |\n| **Auth** | GitHub & Google OAuth; email\u002Fpassword for configured admin users; no public self-registration UI. |\n| **Admin moderation** | Review queue over all templates; status and visibility aligned with gallery rules. |\n| **X import** | Paste a public tweet URL on Submit to pre-fill title, description, prompt, and images. |\n| **i18n** | Locale routes: `\u002F` (en), `\u002Fzh`, `\u002Fja` for main pages; shared site header and footer. |\n| **Self-host** | Apache 2.0; env-driven providers and database; deploy to Vercel or any Node host. |\n\n---\n\n## Community picks\n\nA few templates from the built-in gallery (community \u002F X). Try them on [open-prompts.com](https:\u002F\u002Fwww.open-prompts.com) or run locally and click **Generate** in the gallery.\n\n### K-pop Fashion Album Cover\n\n\u003Cimg src=\"https:\u002F\u002Fpbs.twimg.com\u002Fmedia\u002FHGaa7B2a0AAkDM9.jpg?name=orig\" alt=\"K-pop Fashion Album Cover\" width=\"280\" \u002F>\n\n```\nK-pop group fashion album cover\n```\n\n### Urban Fashion Meets Classic Cartoons\n\n\u003Cimg src=\"https:\u002F\u002Fpic.tuseka.com\u002Fcartoon.webp\" alt=\"Urban Fashion Meets Classic Cartoons\" width=\"280\" \u002F>\n\n```\nA high-end fashion editorial featuring a young woman in an urban setting, seamlessly blended with iconic cartoon characters and vibrant graphic doodles.\n```\n\n### Surrounded by Beautiful Women（我被美女包围）\n\n\u003Cimg src=\"https:\u002F\u002Fpbs.twimg.com\u002Famplify_video_thumb\u002F2049313393686040576\u002Fimg\u002FYzqTGMfuh-dd9Ich.jpg\" alt=\"Surrounded by Beautiful Women\" width=\"280\" \u002F>\n\n```\n帮我做一个身临其境的360度全景图，场景四周环绕不同性格类型 装束的 年轻 性感 或 知性 小姐姐，给我递过水果、伸手牵手等\n```\n\n### Dunhuang Murals Paper Cut Diorama\n\n\u003Cimg src=\"https:\u002F\u002Fpic.tuseka.com\u002F09_dunhuang_murals_paper_cut_diorama.webp\" alt=\"Dunhuang Murals Paper Cut Diorama\" width=\"280\" \u002F>\n\n```\nEye-level straight-on view, 3D layered paper cut-out diorama. Vermillion red, lapis lazuli blue, ochre gold. Flying apsaras with ribbon silk scarves, blooming lotus, swirling auspicious clouds, ornate medallion patterns. Deep drop shadows, matte paper texture, octane render, 8k --ar 3:4\n```\n\n### Cozy Bedroom Mirror Selfie\n\n\u003Cimg src=\"https:\u002F\u002Fcdn-images.toolify.ai\u002Fx\u002F20260428\u002F1777364714_23144439.jpg\" alt=\"Cozy Bedroom Mirror Selfie\" width=\"280\" \u002F>\n\n```\nA casual and confident social media style selfie featuring a woman in an oversized knit sweater within a soft-lit bedroom setting.\n```\n\n---\n\n## Get started\n\n### Prerequisites\n\n- **Node.js** 18+ (20 LTS recommended)\n- **npm** (or pnpm\u002Fyarn)\n- **Postgres** database ([Supabase](https:\u002F\u002Fsupabase.com) works well)\n- Optional: **Atlas Cloud** API key for real generations\n\n### 1. Clone and install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Frudy2steiner\u002Fopen-prompts.git\ncd open-prompts\nnpm install\n```\n\n### 2. Environment\n\n```bash\ncp .env.example .env.local\n```\n\nFill at least:\n\n| Variable | Purpose |\n|----------|---------|\n| `DATABASE_URL` | Postgres connection string (Supabase **Session pooler** on port **5432** is recommended for migrations and admin queries) |\n| `NEXTAUTH_URL` | `http:\u002F\u002Flocalhost:3000` |\n| `NEXTAUTH_SECRET` | `openssl rand -base64 32` |\n| `NEXT_PUBLIC_SITE_URL` | Same as `NEXTAUTH_URL` for local SEO links |\n\nFor sign-in and admin:\n\n| Variable | Purpose |\n|----------|---------|\n| `GITHUB_ID` \u002F `GITHUB_SECRET` | GitHub OAuth app |\n| `GOOGLE_CLIENT_ID` \u002F `GOOGLE_CLIENT_SECRET` | Google OAuth client |\n| `ADMIN_EMAIL` | Comma-separated admin emails (must match login email exactly) |\n| `ADMIN_PASSWORD` | Min 8 characters; synced to DB on boot \u002F admin login |\n\nFor image generation (Atlas Cloud or test mode):\n\n| Variable | Purpose |\n|----------|---------|\n| `DEFAULT_IMAGE_PROVIDER` | `atlascloud` (Replicate is not supported yet) |\n| `ATLASCLOUD_API_KEY` | [Atlas Cloud](https:\u002F\u002Fwww.atlascloud.ai) API key |\n| `USE_TEST_MODE` | `true` to skip real API calls |\n| `TEST_IMAGE_URL` | Image URL returned in test mode |\n\nSee [`.env.example`](.env.example) for credits limits and optional OpenAI settings.\n\n### 3. Database\n\nApply migrations (Supabase SQL editor or `psql`), then seed prompts if needed:\n\n```bash\n# Optional: push schema via Drizzle\nnpm run db:push\n\n# Seed gallery prompts from bundled dataset\nnpm run seed:prompts\n\n# Ensure admin user password in DB (if login fails)\nnpm run seed:admin\n```\n\nMigration SQL also lives under `supabase\u002Fmigrations\u002F` and `scripts\u002Fapply-owner-visibility-migration.sql`.\n\n### 4. Run the dev server\n\n```bash\nnpm run dev\n```\n\nOpen [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) (default port **3000**).\n\n### 5. Deploy on Vercel\n\n[![Deploy with Vercel](https:\u002F\u002Fvercel.com\u002Fbutton)](https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Frudy2steiner%2Fopen-prompts&env=NEXTAUTH_SECRET,ADMIN_EMAIL,ADMIN_PASSWORD&envDescription=Required%20secrets%20(minimum)&project-name=open-prompts)\n\n1. Import the repo on [Vercel](https:\u002F\u002Fvercel.com) (Next.js preset, `npm run build`).\n2. Add the same env vars as step 2; set `NEXTAUTH_URL` and `NEXT_PUBLIC_SITE_URL` to `https:\u002F\u002Fyour-app.vercel.app`.\n3. Run `supabase\u002Fmigrations\u002F` on your Supabase DB, then `npm run seed:prompts` and `npm run seed:admin` locally with that `DATABASE_URL`.\n4. Register OAuth callbacks: `…\u002Fapi\u002Fauth\u002Fcallback\u002Fgithub` and `…\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle` on your Vercel domain.\n\nRedeploy after env changes. If admin login fails, run `npm run seed:admin` against production `DATABASE_URL`.\n\n---\n\n## Providers\n\n| Provider | Status | Configuration |\n|----------|--------|----------------|\n| **Atlas Cloud** | Supported | `ATLASCLOUD_API_KEY`, `ATLASCLOUD_BASE_URL` |\n| **Replicate** | Planned (not supported) | Env keys exist in `.env.example` for future use; do not set `DEFAULT_IMAGE_PROVIDER=replicate` yet |\n| **Test mode** | Dev \u002F demo | `USE_TEST_MODE=true`, `TEST_IMAGE_URL` |\n\nOn the Create page, users can optionally override the API key in the browser (`localStorage`); prefer server-side keys in production.\n\n---\n\n## Tech stack\n\n- [Next.js 14](https:\u002F\u002Fnextjs.org\u002F) (App Router)\n- [next-intl](https:\u002F\u002Fnext-intl-docs.vercel.app\u002F) · [NextAuth.js](https:\u002F\u002Fnext-auth.js.org\u002F)\n- [Drizzle ORM](https:\u002F\u002Form.drizzle.team\u002F) + Postgres\n- [Tailwind CSS](https:\u002F\u002Ftailwindcss.com\u002F) · [daisyUI](https:\u002F\u002Fdaisyui.com\u002F)\n\n---\n\n## Contributing\n\nIssues and pull requests are welcome. For large changes, open an issue first to discuss direction.\n\n---\n\n## Conclusion\n\n**Open Prompts** is meant to be a practical hub for **reusable image prompts**: discover what works in the gallery, generate with your chosen model, and contribute templates back to the community—while keeping private drafts and a moderation path for public listings. Fork it, deploy on Vercel with Supabase, wire your preferred image API, and adapt the workflow to your team under Apache 2.0.\n\nIf this project helps your workflow, consider starring the repo and sharing feedback in [GitHub Issues](https:\u002F\u002Fgithub.com\u002Frudy2steiner\u002Fopen-prompts\u002Fissues).\n","Open Prompts 是一个开源平台，用于发现、分享和重用AI图像提示模板。用户可以在精心策划的画廊中浏览模板，并在生成工作室中直接使用这些模板生成图像，整个过程无需离开当前工作流。该平台支持多种插件式图像生成服务，核心功能包括模板搜索与过滤、一键生成、提交新模板以及私有模板管理等。技术上，项目采用Next.js构建，支持多语言界面（英文、简体中文、日语），并利用了NextAuth进行身份验证和Postgres数据库存储数据。适用于需要频繁使用或创建AI图像生成提示的设计团队和个人创作者，特别是在追求高效协作和资源复用的场景下。","2026-06-11 04:05:17","CREATED_QUERY"]