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.
Drop a photo and place it inside a Polaroid-style print, a phone, laptop, gallery frame, camera display or 35 mm film strip. Free, private, runs in your browser.
DesignGitHub @bemanagementgp-bitOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Put your photo inside a Polaroid, phone, laptop, gallery frame or camera display – procedural mockups, PNG export in the browser. Be Management Tools.
Taken from the repository README
Loading the full README.
Read the full README ↗Put any photo inside a real-looking frame: Polaroid-style instant prints, phone / tablet / laptop screens, a gallery frame with mat, a DSLR camera display or a 35 mm film strip. Every frame is drawn procedurally on a <canvas> in the user's browser (no image assets, nothing uploaded).
Live: https://framelab-tool.vercel.app/ (placeholder – replaced after deploy)
Free
localStorageStudio.watermark)Pro (one-time, price from config.js)
setTransform), Magazine cover (masthead + barcode), Vintage CRT TVGates are enforced in app.js via isPro() / Studio.gate(); the UI listens to pro:changed.
index.html tool page + SEO content + FAQ (JSON-LD WebApplication + FAQPage)
styles.css _shared/base.css + app styles (incl. CSS mini previews of every frame)
app.js rendering engine (frames, backgrounds, pan/zoom) + UI (vanilla JS, no build step)
studio.js shared canvas / drop zone / export / ZIP helpers (copy of _shared/studio.js)
monetize.js shared theme / toast / analytics / AdSense / Pro license helpers
config.js window.APP_CONFIG (site URL, AdSense, GA, checkout URL, price, LICENSE, NEWSLETTER)
privacy.html privacy policy (required for AdSense)
terms.html terms of use
robots.txt, sitemap.xml, vercel.json, favicon.svg, .gitignore
npx serve .
No build step. Open the printed URL.
Deploy the folder as a static site on Vercel (vercel --prod). After the first deploy, replace the placeholder everywhere:
sed -i 's/framelab-tool.vercel.app/framelab-tool.vercel.app/g' index.html privacy.html terms.html robots.txt sitemap.xml config.js README.md
Then run node _shared/apply-brand.js frame-lab from the repo root to inject the shared header, hero, footer and lead card.
ADSENSE_CLIENT: "ca-pub-XXXXXXXXXXXXXXXX" in config.js. Slots: sidebar-1, below-tool. privacy.html already discloses advertising cookies.GA_ID: "G-XXXXXXX". Events: add_files, sample, frame_select, bg_select, download (format, scale), copy, download_zip, preset_save, preset_apply, pro_click, begin_checkout, license_activated.PRO_CHECKOUT_URL, PRO_PRICE and LICENSE.store_id / product_id. Until those are set, real keys are refused and only LICENSE.test_keys work locally.NEWSLETTER.url (Formspree / ConvertKit / Beehiiv) to show the lead card that apply-brand.js injects.destination-out so transparent backgrounds stay transparent.