Overview
Adcraft is a complete AI ad-creation platform, and you get the full source code. A brand adds its website and products. Adcraft reads the brand kit from the site, writes ad concepts, and turns them into static ads, product videos and presenter-led UGC videos in every placement size. It can then publish to Meta, TikTok and Google Ads and track results per creative.
It suits founders who want to run their own ad studio, agencies that serve several clients, and operators who want to resell it as SaaS. It comes with multi-tenant workspaces, Stripe billing, a credit system and an internal admin panel.
Features
Brand kit and product library
- Brand kit from a website: Paste a URL and Adcraft pulls the logo, colour palette, fonts, headline and tone hints, and shows a screenshot of the site.
- Brand kit editor: Set five brand colours, heading and body fonts, tone words, "do say" and "don't say" lists, a tagline and a CTA style. Every save is kept as a new version.
- Product import: Upload a photo, or paste a product page to pull in its name, description, price and image.
- Automatic background removal: Every product gets a cutout. Each product keeps a history of its cutout runs, and you can run a cutout again.
- Multiple brands per workspace: Switch between brands and workspaces from the app.
- Guided onboarding: A brand-discovery screen shows while the website import runs, followed by a first-product and first-ad flow.
Briefs and concepts
- Structured briefs: Each brief has an objective, audience, offer, target platforms, formats, tone and constraints.
- AI brief assist: Fills empty fields or rewrites weak ones from the brand kit. It costs no credits.
- Concept generation: Each run writes eight concepts by default, spread across seven persuasion angles. Every concept includes a hook, headline, primary text, CTA, visual direction and a script for video formats.
- Streaming results: Concepts appear one at a time as they are written. Copy is checked against each platform's text limits.
- Concept triage: Mark concepts as selected or rejected, and generate more for the same brief.
- Bulk generation: Pick several concepts and several layouts, and Adcraft makes one creative for each pair, in every size.
Static ads
- Two creative modes: In "AI-designed", the image model composes the finished ad for each size. In "Editable brand ad", an AI background sits under separate copy, product and logo layers.
- Four layouts: Product spotlight, Editorial split, Quiet luxury and Bold statement. You can also save your own layouts as templates.
- Four sizes: 1:1, 4:5, 9:16 and 16:9, rendered at exact placement dimensions.
- Layer editor: Edit the headline, subhead and CTA, and adjust alignment, headline size, overlay and product scale. Re-rendering is free.
- Refinement: Regenerate the background, refine with written instructions, or generate only the sizes that are missing.
- Export: Download PNGs one at a time or all sizes as a ZIP.
Product and UGC video
- Product video: About 15 seconds of scene clips built from the product cutout, with captions, hook text and a logo end card.
- UGC-style video: About 30 seconds with an AI presenter, voice-over, product B-roll and captions. It is labelled as AI-generated.
- Editable storyboard: Up to eight scenes. You can edit captions, hook text and scene prompts, and regenerate a single shot.
- Three ratios per video: 9:16, 1:1 and 16:9, with captions kept inside each placement's safe zone.
- Model picker: Choose the video model for each run, or re-run a video with a different model.
Character Studio
- Reusable characters: Create a character by generating a face with an image model, building a HeyGen avatar from a photo or description, or training a digital twin from 15 seconds to 10 minutes of footage.
- Consent flow for twins: Adcraft issues a consent link to the person being cloned and tracks the consent status.
- Looks: Put a character in a new outfit or setting. Options are a written description, HeyGen look packs and templates, or a remix of any look from the presenter library.
- Presenter library: Search and filter HeyGen's licensed presenters and their looks.
- Voice library: Search and audition voices, clone a voice from one recording, or design a voice from a description. Custom voices stay private to the brand that made them.
- Character ads: Six story templates, suggested hooks and an editable script of up to 75 words, with a choice of image and video models.
Publishing and performance
- Ad account connections: OAuth connections for Meta (which covers Instagram), TikTok and Google Ads (which covers YouTube). Tokens are encrypted at rest. Where a platform's keys are not set, a built-in sandbox account stands in for it.
- Five-step campaign builder: Choose the account and objective, the audience, placements, budget and schedule, and the ads. Then review and publish as paused or active.
- Pre-publish checks: Media type, ratio, file size, duration, text length, landing URL and AI disclosure are checked before publishing. A claims review covers medical, financial, superlative, guarantee, personal-attribute, urgency and profanity issues.
- Safe publishing: Retries never create duplicates, and every platform ID is stored. You can edit a campaign, pause or resume campaigns and ads, and retry a failed publish.
- Performance dashboard: Insights sync every hour. It shows spend, impressions, CTR, CPA and ROAS compared with the previous period, daily charts, and a table for each creative.
- Alerts and follow-up: Flags creative fatigue and disapproved ads, and exports to CSV. One click starts a new brief pre-filled from any creative.
Teams and review
- Roles and invites: Owner, editor and viewer roles, with invites sent by email or as a link.
- Comments and approvals: Comment threads on each creative, approval requests, and approve or request-changes decisions.
- Client share links: Public links for reviewing one creative, or a gallery of a brand's approved work. Comments and approvals on each link are optional, and links can expire or be revoked.
- Guardrails: A monthly credit limit, owner approval for large daily budgets, an optional rule that ads must be approved before publishing, and rate limits.
- Workspace audit log: Plus email notifications when long jobs finish.
- Public API and webhooks: A read-only REST API for creatives and renders, authenticated with API keys. Webhooks are HMAC-signed.
- Privacy: Workspace owners can request deletion from settings, and privacy, terms and DPA pages are included.
Billing, credits and admin
- Stripe billing: Three plans with monthly and yearly prices, credit top-ups and the Stripe customer portal. A setup script creates the Stripe catalogue for you.
- Credit ledger: Each action has a set credit cost, credits are reserved up front and refunded on failure, and the trial credit grant is configurable.
- Model catalog: Add, edit, enable, disable or test models, set default models, and override credit prices, all without a redeploy.
- Admin panel: Covers signups, gross margin, failure rate, queue depth and provider health. Admins can adjust credits, change plans, suspend workspaces, use a "view as" support mode, retry failed generations, and review audit and error logs.
- Platform settings: Maintenance banner, a switch to turn signups on or off, feature flags for each plan, and default guardrails.
Tech stack
- Next.js 15 (App Router), React 19, TypeScript, Tailwind CSS 4
- Auth.js v5 with email magic links and Google sign-in
- PostgreSQL with Drizzle ORM (embedded PGlite for local development)
- Inngest for background jobs (runs inline when not configured)
- Remotion 4 and ffmpeg for video; Satori, resvg and sharp for static ads
- Cloudflare R2 through the S3 SDK, or local disk
- Stripe, Resend, Zod
- pnpm workspaces, Turborepo, Playwright, Node 22, Docker
What's included
- Full monorepo: the
apps/app product plus the ai, render, ads, specs, storage, db and ui packages
- Nine database migrations
- Marketing site (home, showcase and pricing pages) with sample ad images and videos
- Docs: product plan, architecture, deployment guide, UX plan, and a designed architecture page
Dockerfile, railway.json and vercel.json
- Scripts for Stripe setup, database backup, and moving stored files to R2
- Unit tests and a Playwright smoke test of the main flow
.env.example documenting every supported key
Requirements and third-party costs
You need Node 22+, pnpm and a PostgreSQL database. Video rendering uses headless Chromium, so it needs an always-on container (the Docker image is provided) rather than serverless functions. Only AUTH_SECRET is needed to start. With no provider keys set, every flow still runs and returns labelled sample output: "[Sample]" concepts, placeholder images, placeholder video clips, and sandbox ad accounts with simulated metrics.
- Hosting and database (required): Any Docker host, such as Railway, plus Postgres such as Neon, Supabase or Railway.
- Text AI (required for real concepts): Anthropic Claude by default. OpenAI, xAI, Gemini, Groq, Together, Mistral, DeepSeek and OpenRouter are optional alternatives.
- fal.ai (required for real images, cutouts and video): The default image and video models run on fal.ai.
- Other image/video providers (optional): OpenAI, xAI, Replicate and Runway.
- HeyGen and ElevenLabs (required for presenter video and Character Studio): These power the AI presenters, avatars, looks and voices.
- Resend (required for email sign-in in production): Handles magic links, invites and job emails. Google sign-in is an alternative.
- Stripe (optional): Needed to charge customers.
- Inngest (recommended for production): Runs long generation jobs and the hourly insights sync.
- Cloudflare R2 (optional): Media storage. Files go to local disk if R2 is not set.
- Meta, TikTok and Google Ads (optional): Each needs its own developer app and platform approval. Ad spend is billed by each platform to the advertiser's own account.
- Sentry (optional): Error reporting. A built-in error log works without it.
The purchase covers the source code only. Service fees are billed by the providers listed above.