Doop
Doop is an open-source multiplayer design canvas and design MCP for Claude Code, Codex, and any AI agent. Design side by side with agents — free in beta.
Turn text or an image into an accessible Tailwind color palette, with a live preview and code export.
DesignTypeScript · HTMLGitHub @larisabarabasOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Turn a few words or an image into an accessible Tailwind color palette. See it on real interface mockups in light and dark, then copy the code.Read the full README ↗Turn a few words or an image into an accessible Tailwind color palette. See it on real interface mockups in light and dark, then copy the code.
| Light | Dark | |
|---|---|---|
| App | ||
| Components | ||
| Marketing |
Requires Node 22.
git clone https://github.com/larisabarabas/huecode.git
cd huecode
npm ci
npm run dev
Then open http://localhost:5173. The API runs on port 8787.
| Command | What it does |
|---|---|
npm run dev | Web app and API together, with reload |
npm run build | Type-checks the app and the server, then builds |
npm test | Runs the Vitest suite |
npm start | Runs the API server |
Everything except AI enhancement works with no key at all.
To use the AI path, copy .env.example to .env and set a key for one provider: ANTHROPIC_API_KEY, OPENAI_API_KEY or GEMINI_API_KEY. If you set more than one, choose with AI_PROVIDER (anthropic, openai or gemini). AI_MODEL overrides the provider's default model. Keys are read only on the server (server/ai/config.ts) and are never sent to the browser, and the app has no place to type a key in. Without a key, the server reports AI as unavailable through /api/config and the app hides the AI option.
The server limits AI requests to 30 per hour per client. On serverless hosts this limit is best-effort. Requests to the AI path use your key and can cost money, so keep it out of version control. .env is already in .gitignore, and setting a spend limit in your provider's console is a good idea.
Each AI request is capped at 700 output tokens, which is plenty for eight HSL colors and a one-sentence rationale. The cap is the MAX_OUTPUT_TOKENS constant in server/ai/palette.ts, and all three providers use it. It is not an environment variable, so change it in that file. Raise it if your model is cut off before it finishes a palette. Models that spend tokens on internal reasoning before answering are the likeliest to need more. A cut-off shows up as "AI palette generation failed" in the app and a "did not include a palette proposal" error in the server log.
The hosted demo runs on the maintainer's key, which lives in the host's environment settings and not in this repository. That key has a monthly spend cap, and the demo tells you so next to the AI toggle. If the cap is reached, AI pauses and the standard generator keeps working. The server remembers the pause in memory for 30 minutes, so on serverless hosts it is best-effort: the first request on each instance may still fail before the toggle shows as paused. For unlimited use, self-host with your own key. Set AI_DEMO_MODE=true only if you run a public instance on a capped shared key and want the same notice.
The header logo link and the footer link are set at build time, so forks aren't tied to the original maintainer's links. VITE_HOME_URL sets where the logo links and defaults to /. VITE_REPO_URL sets the footer's "Open source on GitHub" link and defaults to the upstream repository. Point it at your fork, or set it to an empty string to hide the footer. VITE_SUPPORT_URL sets the "Buy me a coffee" link in the footer and code drawer. It defaults to the upstream maintainer's page, so point it at your own or set it to an empty string to hide it. Set them before npm run build (see .env.example).
The interface loads Instrument Sans and JetBrains Mono, both open-licensed, from Google Fonts at runtime. That means Google receives a request when the page loads.
A snapshot of what's planned. Priorities can change, and an issue is the place to discuss anything here.
The direction: Huecode turns a vibe or a brand color into an accessible theme that drops into your shadcn or Tailwind project. A feature earns a place here if it shortens the path from a palette to a running codebase.
Now
Next
Later
These wait until there's evidence they're needed.
globals.css or a Tailwind configNot planned
A Figma plugin, accounts and saved palettes, proxying real websites for preview, per-shade editing, and a public palette gallery.
Contributions are welcome, and Huecode works issue-first: open an issue before you write code, for everything. See CONTRIBUTING.md for the scope, setup and PR checklist. To report a security problem privately, see SECURITY.md.
Huecode is free and open source. If it saved you time, you can buy me a coffee. Starring the repo and sharing it helps too.
MIT © 2026 Stefania Barabas