惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
S
SegmentFault 最新的问题
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
I
InfoQ
U
Unit 42
博客园_首页
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 聂微东
T
Tailwind CSS Blog
量子位

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
AI can generate HTML. Publishing it is still weirdly anno...
jaxxchen · 2026-05-29 · via DEV Community

AI tools are now pretty good at making complete HTML artifacts:

  • a small portfolio page
  • a product one-pager
  • a pitch deck in HTML
  • a resume
  • a visual prototype
  • a client preview


But after the model gives you the HTML, there is still an awkward last step:

How do I turn this into a real URL I can send to someone?

For developers, the normal answer is GitHub Pages, Netlify, Vercel, Cloudflare Pages, or an object-store flow. Those are good tools. But they are also a lot of ceremony when the artifact is just one finished HTML file.

For non-developers, the gap is even worse. They can ask ChatGPT to create a nice HTML page, but the result often stays trapped in a chat window or a local file.

The narrow problem

The use case I wanted to solve was not "deploy a website."

It was:

Publish one complete AI-generated HTML document as a shareable link.

That means:

  • no repo required
  • no build step
  • no ZIP project
  • no framework deployment
  • no DNS setup
  • optional access-key sharing for private previews

So I built FolioDrop around that narrow contract.

What FolioDrop does

FolioDrop accepts one complete single-file HTML document and returns a real URL.

It is intentionally smaller than a static host:

  • Paste or upload one HTML work manually.
  • Publish from an AI tool through MCP or OpenAPI.
  • Save public works into a lightweight personal folio.
  • Keep access-key protected works unlisted.
  • Keep individual shared work routes out of search indexing.


The important boundary: FolioDrop is not a replacement for Vercel, Netlify, GitHub Pages, or Cloudflare Pages. If your project needs multiple files, a framework, a custom domain, or long-term production hosting, those tools are a better fit.

The comparison is here: FolioDrop vs static hosting.

Why MCP/OpenAPI matters here

The manual flow is useful, but the more interesting flow is agent-native publishing.

If an AI host can call a publish tool, the user can ask for:

Make this into a single-file HTML page and publish it.

The agent can then:

  1. generate the HTML
  2. validate that it is a complete document
  3. call the publishing endpoint
  4. return a URL


FolioDrop exposes:

  • MCP endpoint: https://foliodrop.app/mcp
  • public MCP config: https://foliodrop.app/api/ai/mcp-config.json
  • OpenAPI description: https://foliodrop.app/api/ai/openapi.json

I also packaged the publishing workflow as an open GitHub skill:

github.com/jaxxchen003/foliodrop-publisher-skill

That repo includes a single-file HTML validator and templates for decks, resumes, product one-pagers, emails, and portfolio case studies.

The publishing contract

The current contract is deliberately strict:

  • include <!doctype html>
  • include <html>, <head>, and <body>
  • inline CSS in <style>
  • inline JavaScript only when needed
  • use public HTTPS URLs for external images or fonts
  • do not include tokens, secrets, passwords, or local file paths

This constraint keeps the product predictable. It also makes the output easier for AI agents to reason about.

What I learned

The hard part was not generating HTML. The hard part was making the last mile boring:

  • return a stable URL
  • avoid leaking access keys
  • avoid indexing private previews
  • make deletion and expiry clear
  • keep the product boundary honest
  • give agents a structured way to publish without putting secrets into prompts

I wrote up two answer pages for the common questions:

The product is small on purpose. If the work is a real website, use a real static host. If the work is one complete AI-made HTML artifact and you just need a link, that is the gap FolioDrop is trying to close.