GitHub Start Selling →
Getting Started

Welcome to iFrame

iFrame is a peer-to-peer web design marketplace where creators sell HTML/CSS/JS templates and buyers pay instantly with Solana. No middlemen, no subscriptions — just great work traded fairly.

Powered by Solana Transactions settle in <1 second with near-zero fees. Creators receive 80% of each sale directly to their wallet — automatically, on-chain.

What is iFrame?

iFrame is a marketplace for production-ready web templates. Every template is stored as raw HTML, CSS, and JavaScript — no build tools, no dependencies required. Buyers can embed or deploy them instantly.

Templates live as iFrames — self-contained pages that preview in real-time before you buy. What you see is exactly what you get.

Live Previews
Every template renders in a sandboxed iframe before purchase. No guessing.
On-Chain Payments
SOL payments verified on-chain. Funds split and sent to wallets instantly.
80% to Creators
Creators keep 80% of every $20 sale. That's $16 per template sold.
Open Files
Download raw HTML/CSS/JS. Own your purchase forever, no DRM.

Who is this for?

RoleWhat you doBenefit
CreatorUpload HTML/CSS/JS templatesEarn $16 per sale, paid instantly to your wallet
BuyerBrowse, preview, and purchase templatesOwn production-ready code for $20
DeveloperAccess the REST APIBuild integrations, bots, or storefronts
Getting Started

Quick Start

From zero to selling your first template in under 10 minutes.

Buy a template in 3 steps

  • 1
    Connect your Solana wallet
    Click Connect Wallet in the nav. Phantom, Solflare, and Backpack are supported. No account needed.
  • 2
    Browse and preview templates
    Every card in the Marketplace shows a live iframe preview. Click any card to open the full-screen detail view.
  • 3
    Pay with SOL — receive files instantly
    Approve the transaction in your wallet. Files download automatically once confirmed on-chain.

Sell a template in 3 steps

  • 1
    Connect your wallet & go to Upload
    The Upload button appears in the nav once your wallet is connected.
  • 2
    Fill in details and upload your files
    Add a name, category, description, and upload your HTML (+ optional CSS/JS). A preview screenshot is taken automatically.
  • 3
    Publish — start earning
    Your template is live instantly. Every sale sends $16 directly to your connected wallet.
Pro tip Templates with live JavaScript interactions (animations, scroll effects, counters) sell significantly better than static pages.
Getting Started

Wallet Connect

iFrame uses your Solana wallet as your identity and payment method. No email, no password.

Supported Wallets

WalletStatusNotes
PhantomSupportedRecommended — most popular Solana wallet
SolflareSupportedHardware wallet support via Ledger
BackpackSupportedWorks via xNFT standard
Any Solana walletVia adapterAny wallet exposing window.solana

Connection Flow

When you click Connect Wallet, the site calls window.solana.connect() which prompts your wallet extension. Once approved, your public key is registered via the API:

javascript
// Connect wallet
const resp = await window.solana.connect();
const address = resp.publicKey.toString();

// Register with API
await fetch('/api/users/connect', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ walletAddress: address })
});
Never share your private key iFrame only ever requests your public key. No transaction is ever sent without your explicit wallet approval.
Selling Templates

Upload a Template

Templates are HTML-first. Upload a single HTML file or a bundle with CSS and JS — iFrame stores everything and serves it on demand.

Requirements

FieldRequiredNotes
index.htmlRequiredEntry point. Must be self-contained or reference bundled assets.
CSS filesOptionalUp to 5 CSS files. Inline styles also accepted.
JS filesOptionalNo build tools. Vanilla JS or CDN imports only.
Preview imageAutoScreenshot taken automatically from live HTML render.
NameRequired3–80 characters. Appears on the marketplace card.
CategoryRequiredLanding Page, Portfolio, Dashboard, Blog, E-commerce, or Other.

Template Guidelines

What makes a great template? Responsive layout, polished typography, at least one interactive element, and a clear use case. Templates that look great in the iframe preview convert best.

File structure example

plaintext
my-template/
├── index.html        ← entry point (required)
├── styles.css        ← linked from index.html
└── main.js           ← optional interactivity

Reference your assets with relative paths. iFrame reconstructs the file tree when serving, so ./styles.css and ./main.js will resolve correctly.

Selling Templates

Payouts & Revenue

Every template sells for $20 USD, settled in SOL at the current market rate. The split is enforced on-chain — no waiting, no invoices.

Revenue Split

$20.00 sale price SOL equivalent at market rate
$16.00 → Creator 80% · sent to your wallet
$4.00 → iFrame 20% · platform fee

Payment Timing

When a buyer approves the transaction, the SOL is split within the same transaction and sent simultaneously to both wallets. There is no escrow, no delay, and no withdrawal process — funds arrive in your wallet before you refresh the page.

Earnings math 10 sales = $160 · 50 sales = $800 · 100 sales = $1,600 — all going directly to your Solana wallet.

SOL Exchange Rate

The SOL/USD rate is fetched live from CoinGecko before each transaction. The buyer pays the exact SOL equivalent of $20 at the moment of purchase. This protects both parties from price slippage during checkout.

For Buyers

Buying Templates

Browse, preview live, and own production-ready web templates for a flat $20 each.

Purchase Flow

  • 1
    Browse the marketplace
    Every card shows a live iframe of the actual template. Filter by category using the tabs at the top.
  • 2
    Open the detail view
    Click any card to open a full-screen preview with the creator's details, description, and a Buy button.
  • 3
    Confirm payment in your wallet
    A transaction for exactly $20 in SOL is sent for your approval. Review the amount, then confirm.
  • 4
    Download your files
    Once confirmed on-chain, all template files become available in your Dashboard under Purchases.

Refund Policy

Because payments are settled on-chain and files are delivered instantly, all sales are final. We strongly encourage buyers to use the live iframe preview before purchasing — it renders the exact same code you'll receive.

All sales are final On-chain transactions cannot be reversed. Preview templates thoroughly before confirming your wallet transaction.
For Buyers

Downloads & Files

Once purchased, your templates are available forever from your Dashboard. Download them anytime.

Accessing Your Files

Go to Dashboard → Purchases. Each purchased template shows an Open Editor button that loads the template in the builder, or you can download the raw files:

http
GET /api/templates/:id/download

# Returns file manifest:
{
  "files": [
    { "name": "index.html", "size": 14820 },
    { "name": "styles.css", "size": 4210 }
  ]
}

# Download individual file:
GET /api/templates/:id/download?file=index.html

License

Purchasing a template grants you a perpetual, royalty-free license to use the code in commercial and personal projects. You may modify it freely.

You may not redistribute or resell the original template files as your own product on iFrame or other marketplaces.

API Reference

REST API

The iFrame API is a standard JSON REST API. Base URL: https://iframe-api-seven.vercel.app/api

No auth required Read endpoints are public. Write endpoints validate wallet ownership via signed message (coming soon).

Templates

GET /templates List all active templates
Returns an array of template objects with id, name, category, sales, views, image URLs, and inline html content.
GET /templates/:id Get single template
Full template object including all metadata. HTML content included.
POST /templates Publish a template
Multipart form. Fields: name, category, description, authorWallet, badge, files (HTML/CSS/JS), and optional preview.png.
DELETE /templates/:id Soft-delete (author only)
Requires walletAddress in body. Only the template author can delete. Sets status to deleted.

Users

POST /users/connect Register / upsert wallet
Body: { walletAddress: string }. Creates user on first connect, updates lastSeen on repeat visits.
GET /users/:wallet/templates Templates by wallet
Returns all active templates published by this wallet address.
GET /users/:wallet/activity Activity feed
Last 20 activity items: sales, uploads, purchases, profile updates.

Transactions

POST /transactions Record a purchase
Called by the frontend after on-chain confirmation. Body: txSignature, buyerWallet, templateId, totalSolSent, and USD amounts.
GET /transactions/:wallet?type=stats Earnings summary
Returns { stats: { totalSales, totalEarnings, totalSolEarned } } for the given creator wallet.
GET /transactions/:wallet?type=sales Sales history
Paginated list of sales where this wallet is the creator.
API Reference

Webhooks

Get notified in real time when a sale occurs. iFrame can POST to your endpoint on every transaction.

Coming soon Webhooks are on the roadmap. Until then, poll /transactions/:wallet?type=sales for new sales.

Planned Payload

json
{
  "event": "template.sold",
  "templateId": "abc123",
  "templateName": "Startup Landing Page",
  "buyerWallet": "7xKq...mN3p",
  "creatorAmtUsd": 16.00,
  "txSignature": "5r8m...Kp2n",
  "timestamp": "2026-03-14T10:00:00.000Z"
}
On this page
Planned Payload
Resources

FAQ

Answers to the most common questions about iFrame.

General

Do I need a crypto wallet to buy templates?

Yes — iFrame uses Solana as its payment layer. You'll need a Solana wallet like Phantom with some SOL to make purchases. Templates cost $20 USD worth of SOL.

Can I use purchased templates in client work?

Yes. The license is perpetual and commercial-use is allowed. You can use purchased templates in as many client projects as you like. You cannot resell the raw files as templates.

What file types are supported?

HTML, CSS, and JavaScript only. No server-side code, no PHP, no databases. Templates must run entirely in the browser.

Creators

How quickly do I receive payment?

Instantly. SOL lands in your wallet within seconds of the buyer confirming the transaction — typically under 2 seconds on Solana mainnet.

Can I update a template after publishing?

Not yet — template editing is on the roadmap. For now, delete and re-publish with the updated files.

Is there a limit on how many templates I can sell?

No limit. Publish as many templates as you want. Each listing is independent.

Technical

Where are templates stored?

HTML/CSS/JS files are stored as base64 in MongoDB Atlas. Preview images are hosted on Cloudinary CDN. Both are served globally with low latency.

Is the API rate limited?

Read endpoints are currently unthrottled. Write endpoints (POST template, POST transaction) have soft limits enforced at the Vercel serverless level — 30 requests/minute per IP.

On this page
General Creators Technical