Tilda Publishing Overview Tilda is a block-based website builder — drag blocks onto a page, customize them visually, and publish. No backend to manage, no hosting to configure. For developers: inject custom HTML/CSS/JS into any block, use the Tilda API to manage content programmatically, connect forms to any backend, and build custom integrations. Perfect for marketing sites, landing pages, and small e-commerce stores where non-technical staff need to update content independently. When to Use - Building marketing sites and landing pages quickly - Need a CMS that non-technical staff can update…

+ (users * price).toLocaleString();\n }\n\n usersInput.addEventListener('input', updatePrice);\n planSelect.addEventListener('change', updatePrice);\n\u003c/script>\n```\n\n### Tilda API\n\n```typescript\n// api/tilda.ts — Manage Tilda content programmatically\nconst TILDA_PUBLIC_KEY = process.env.TILDA_PUBLIC_KEY;\nconst TILDA_SECRET_KEY = process.env.TILDA_SECRET_KEY;\nconst BASE_URL = \"https://api.tildacdn.info/v1\";\n\n// Get all projects\nasync function getProjects() {\n const res = await fetch(\n `${BASE_URL}/getprojectslist/?publickey=${TILDA_PUBLIC_KEY}&secretkey=${TILDA_SECRET_KEY}`\n );\n return res.json(); // { status: \"FOUND\", result: [{ id, title, ... }] }\n}\n\n// Get all pages in a project\nasync function getPages(projectId: number) {\n const res = await fetch(\n `${BASE_URL}/getpageslist/?publickey=${TILDA_PUBLIC_KEY}&secretkey=${TILDA_SECRET_KEY}&projectid=${projectId}`\n );\n return res.json();\n}\n\n// Get full page content (HTML + CSS + JS)\nasync function getPageFull(pageId: number) {\n const res = await fetch(\n `${BASE_URL}/getpagefull/?publickey=${TILDA_PUBLIC_KEY}&secretkey=${TILDA_SECRET_KEY}&pageid=${pageId}`\n );\n return res.json();\n // Returns: { html, css, js, images[], title, descr, ... }\n}\n\n// Export page to your own hosting\nasync function exportPage(pageId: number) {\n const page = await getPageFull(pageId);\n const { html, css, js } = page.result;\n\n // Build self-contained HTML\n return `\n \u003c!DOCTYPE html>\n \u003chtml>\n \u003chead>\n \u003cstyle>${css}\u003c/style>\n \u003c/head>\n \u003cbody>\n ${html}\n \u003cscript>${js}\u003c/script>\n \u003c/body>\n \u003c/html>\n `;\n}\n```\n\n### Form Handling and Webhooks\n\n```typescript\n// webhook/tilda-form.ts — Receive Tilda form submissions\n/**\n * Configure in Tilda: Block Settings → Form → Webhook URL\n * Tilda sends POST with form data on every submission.\n */\nexport async function handleTildaForm(req: Request) {\n const formData = await req.formData();\n const data = Object.fromEntries(formData);\n\n // data: { Name: \"Kai\", Email: \"[email protected]\", Phone: \"+1234567890\", ... }\n\n // Save to CRM\n await fetch(\"https://api.mycrm.com/leads\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n name: data.Name,\n email: data.Email,\n phone: data.Phone,\n source: \"tilda-landing\",\n }),\n });\n\n // Send to Telegram\n await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n chat_id: CHAT_ID,\n text: `🔔 New lead!\\nName: ${data.Name}\\nEmail: ${data.Email}\\nPhone: ${data.Phone}`,\n }),\n });\n\n return new Response(\"OK\");\n}\n```\n\n### E-Commerce (Tilda Store)\n\n```html\n\u003c!-- Custom product page enhancements -->\n\u003cscript>\n // Add to cart with custom handling\n document.addEventListener('DOMContentLoaded', () => {\n // Track add-to-cart events\n document.querySelectorAll('.js-store-buttons-buy-btn').forEach((btn) => {\n btn.addEventListener('click', () => {\n const productName = btn.closest('.js-product')\n ?.querySelector('.js-product-name')?.textContent;\n\n // Send to analytics\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'add_to_cart',\n product_name: productName,\n });\n }\n });\n });\n });\n\u003c/script>\n```\n\n### SEO and Analytics Setup\n\n```html\n\u003c!-- Add to Settings → More → HTML code in \u003chead> -->\n\n\u003c!-- Google Analytics 4 -->\n\u003cscript async src=\"https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX\">\u003c/script>\n\u003cscript>\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'G-XXXXXXXXXX');\n\u003c/script>\n\n\u003c!-- Facebook Pixel -->\n\u003cscript>\n !function(f,b,e,v,n,t,s){/* ... Facebook Pixel code ... */}();\n fbq('init', 'YOUR_PIXEL_ID');\n fbq('track', 'PageView');\n\u003c/script>\n\n\u003c!-- Custom structured data -->\n\u003cscript type=\"application/ld+json\">\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Organization\",\n \"name\": \"My Company\",\n \"url\": \"https://mycompany.com\",\n \"logo\": \"https://mycompany.com/logo.png\",\n \"contactPoint\": { \"@type\": \"ContactPoint\", \"telephone\": \"+1-234-567-8900\" }\n}\n\u003c/script>\n```\n\n## Examples\n\n### Example 1: Build a marketing landing page\n\n**User prompt:** \"Create a landing page for a SaaS product with hero, features, pricing, FAQ, and contact form — staff should be able to update text and images.\"\n\nThe agent will design the page with Tilda blocks, configure form webhooks, add custom CSS for brand consistency, and set up analytics tracking.\n\n### Example 2: Custom interactive elements on Tilda\n\n**User prompt:** \"Add a pricing calculator and interactive product comparison table to our Tilda site.\"\n\nThe agent will create Zero Block layouts with custom HTML/JS for the calculator and comparison table, styled to match the Tilda theme.\n\n### Example 3: Connect Tilda forms to CRM\n\n**User prompt:** \"Send every form submission to our CRM and notify the sales team on Telegram.\"\n\nThe agent will configure Tilda webhooks, create a serverless function to receive submissions, and forward data to CRM + Telegram.\n\n## Guidelines\n\n- **Blocks for structure, Zero Block for custom** — use pre-built blocks for speed, Zero Block for full control\n- **Custom code in Settings** — HTML in `\u003chead>` for CSS/meta, before `\u003c/body>` for JS\n- **Forms have built-in webhooks** — send submissions to any URL\n- **Tilda API is read-only** — export content, can't create pages via API\n- **SEO settings per page** — title, description, OG tags in page settings\n- **Custom domain** — point DNS to Tilda, SSL automatic\n- **E-commerce built-in** — product catalog, cart, checkout, payments\n- **Responsive by default** — blocks adapt, but test and adjust breakpoints\n- **Staff can edit anything** — text, images, blocks, page order via visual editor\n- **Export for self-hosting** — API returns full HTML/CSS/JS for self-deployment\n- **Don't override critical Tilda classes** — prefix custom CSS with your namespace\n- **Google Tag Manager** — use GTM for complex tracking setups instead of inline scripts\n---","attachment_filenames":["_scores.json"],"attachments":[{"filename":"_scores.json","content":"{\n \"version\": \"1.0.0\",\n \"skillHash\": \"sha256:6b5cea5ee1e568a7739eb53501f24073980cb2671e9f8d19ad59f992f62cdb17\",\n \"scoredAt\": \"2026-05-13T10:26:05.381Z\",\n \"backend\": \"subagent\",\n \"model\": \"claude-sonnet-4-6\",\n \"quality\": {\n \"score\": 93,\n \"dimensions\": {\n \"clarity\": \"PASS\",\n \"completeness\": \"WEAK\",\n \"conciseness\": \"PASS\",\n \"actionability\": \"PASS\",\n \"crossPlatform\": \"PASS\",\n \"examples\": \"PASS\"\n },\n \"issues\": [\n {\n \"severity\": \"MEDIUM\",\n \"category\": \"completeness\",\n \"detail\": \"The instructions do not cover error handling or edge cases for API failures or form submission errors.\"\n }\n ]\n },\n \"security\": {\n \"verdict\": \"SAFE\",\n \"issues\": []\n },\n \"impact\": {\n \"baselineAvg\": 38,\n \"treatmentAvg\": 86,\n \"multiplier\": 2.26,\n \"scenarios\": [\n {\n \"name\": \"Export Tilda page to self-hosted HTML\",\n \"baseline\": 30,\n \"treatment\": 85,\n \"rationale\": \"Treatment uses the documented getpagefull endpoint and rebuilds an HTML wrapper from the returned html/css/js fields; baseline guesses at unrelated scraping or download tooling and misses Tilda's API entirely.\"\n },\n {\n \"name\": \"Forward Tilda form submissions to CRM and Telegram\",\n \"baseline\": 45,\n \"treatment\": 88,\n \"rationale\": \"Treatment configures the documented Tilda form webhook URL and parses formData fields with capitalized keys (Name/Email/Phone) per the SKILL.md example; baseline invents a non-existent push API.\"\n }\n ]\n }\n}\n","content_type":"application/json; charset=utf-8","language":"json","size":1561,"content_sha256":"0f56bb0189843eef40aa48926145c236f0f645d43c2c23fb5787a47fe45e59bb"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Tilda Publishing","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Overview","type":"text"}]},{"type":"paragraph","content":[{"text":"Tilda is a block-based website builder — drag blocks onto a page, customize them visually, and publish. No backend to manage, no hosting to configure. For developers: inject custom HTML/CSS/JS into any block, use the Tilda API to manage content programmatically, connect forms to any backend, and build custom integrations. Perfect for marketing sites, landing pages, and small e-commerce stores where non-technical staff need to update content independently.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to Use","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Building marketing sites and landing pages quickly","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Need a CMS that non-technical staff can update easily","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Small-to-medium e-commerce (Tilda's built-in store)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Custom landing pages with advanced animations","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Sites that need both visual editing and custom code","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Instructions","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Site Structure","type":"text"}]},{"type":"paragraph","content":[{"text":"Tilda sites are organized as:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Project","type":"text","marks":[{"type":"strong"}]},{"text":" → contains pages","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Page","type":"text","marks":[{"type":"strong"}]},{"text":" → contains blocks (sections)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block","type":"text","marks":[{"type":"strong"}]},{"text":" → pre-designed section (hero, features, pricing, gallery, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Zero Block","type":"text","marks":[{"type":"strong"}]},{"text":" — custom block where you have full design freedom","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Custom HTML/CSS/JS in Blocks","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"html"},"content":[{"text":"\u003c!-- Add custom code via: Settings → More → HTML code in \u003chead> or Before \u003c/body> -->\n\n\u003c!-- Custom CSS (head) -->\n\u003cstyle>\n /* Override Tilda defaults */\n .t-title {\n font-family: 'Inter', sans-serif !important;\n }\n\n /* Custom animations */\n .t-animate {\n opacity: 0;\n transform: translateY(20px);\n transition: all 0.6s ease;\n }\n .t-animate.is-visible {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Responsive overrides */\n @media (max-width: 640px) {\n .t-cover__wrapper {\n min-height: 60vh !important;\n }\n }\n\u003c/style>","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"html"},"content":[{"text":"\u003c!-- Custom JavaScript (before \u003c/body>) -->\n\u003cscript>\n // Intersection Observer for scroll animations\n document.addEventListener('DOMContentLoaded', () => {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add('is-visible');\n }\n });\n }, { threshold: 0.1 });\n\n document.querySelectorAll('.t-animate').forEach((el) => observer.observe(el));\n });\n\n // Custom form handling — send to your own API\n document.querySelector('.t-form')?.addEventListener('submit', async (e) => {\n const formData = new FormData(e.target);\n const data = Object.fromEntries(formData);\n\n // Send to your backend alongside Tilda's built-in handling\n await fetch('https://api.myapp.com/leads', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n });\n });\n\u003c/script>","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Zero Block (Custom Design)","type":"text"}]},{"type":"paragraph","content":[{"text":"Zero Block gives you full Artboard-like control — place elements precisely with custom positioning, animations, and responsive breakpoints.","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"html"},"content":[{"text":"\u003c!-- Zero Block with custom interactive elements -->\n\u003cdiv class=\"custom-calculator\" id=\"price-calc\">\n \u003ch3>Price Calculator\u003c/h3>\n \u003cdiv class=\"calc-row\">\n \u003clabel>Number of users\u003c/label>\n \u003cinput type=\"range\" id=\"users\" min=\"1\" max=\"1000\" value=\"10\">\n \u003cspan id=\"users-count\">10\u003c/span>\n \u003c/div>\n \u003cdiv class=\"calc-row\">\n \u003clabel>Plan\u003c/label>\n \u003cselect id=\"plan\">\n \u003coption value=\"starter\">Starter — $5/user\u003c/option>\n \u003coption value=\"pro\">Pro — $12/user\u003c/option>\n \u003coption value=\"enterprise\">Enterprise — $25/user\u003c/option>\n \u003c/select>\n \u003c/div>\n \u003cdiv class=\"calc-result\">\n Total: \u003cspan id=\"total\">$50\u003c/span>/month\n \u003c/div>\n\u003c/div>\n\n\u003cscript>\n const prices = { starter: 5, pro: 12, enterprise: 25 };\n const usersInput = document.getElementById('users');\n const planSelect = document.getElementById('plan');\n\n function updatePrice() {\n const users = parseInt(usersInput.value);\n const price = prices[planSelect.value];\n document.getElementById('users-count').textContent = users;\n document.getElementById('total').textContent = '

Tilda Publishing Overview Tilda is a block-based website builder — drag blocks onto a page, customize them visually, and publish. No backend to manage, no hosting to configure. For developers: inject custom HTML/CSS/JS into any block, use the Tilda API to manage content programmatically, connect forms to any backend, and build custom integrations. Perfect for marketing sites, landing pages, and small e-commerce stores where non-technical staff need to update content independently. When to Use - Building marketing sites and landing pages quickly - Need a CMS that non-technical staff can update…

+ (users * price).toLocaleString();\n }\n\n usersInput.addEventListener('input', updatePrice);\n planSelect.addEventListener('change', updatePrice);\n\u003c/script>","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Tilda API","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"typescript"},"content":[{"text":"// api/tilda.ts — Manage Tilda content programmatically\nconst TILDA_PUBLIC_KEY = process.env.TILDA_PUBLIC_KEY;\nconst TILDA_SECRET_KEY = process.env.TILDA_SECRET_KEY;\nconst BASE_URL = \"https://api.tildacdn.info/v1\";\n\n// Get all projects\nasync function getProjects() {\n const res = await fetch(\n `${BASE_URL}/getprojectslist/?publickey=${TILDA_PUBLIC_KEY}&secretkey=${TILDA_SECRET_KEY}`\n );\n return res.json(); // { status: \"FOUND\", result: [{ id, title, ... }] }\n}\n\n// Get all pages in a project\nasync function getPages(projectId: number) {\n const res = await fetch(\n `${BASE_URL}/getpageslist/?publickey=${TILDA_PUBLIC_KEY}&secretkey=${TILDA_SECRET_KEY}&projectid=${projectId}`\n );\n return res.json();\n}\n\n// Get full page content (HTML + CSS + JS)\nasync function getPageFull(pageId: number) {\n const res = await fetch(\n `${BASE_URL}/getpagefull/?publickey=${TILDA_PUBLIC_KEY}&secretkey=${TILDA_SECRET_KEY}&pageid=${pageId}`\n );\n return res.json();\n // Returns: { html, css, js, images[], title, descr, ... }\n}\n\n// Export page to your own hosting\nasync function exportPage(pageId: number) {\n const page = await getPageFull(pageId);\n const { html, css, js } = page.result;\n\n // Build self-contained HTML\n return `\n \u003c!DOCTYPE html>\n \u003chtml>\n \u003chead>\n \u003cstyle>${css}\u003c/style>\n \u003c/head>\n \u003cbody>\n ${html}\n \u003cscript>${js}\u003c/script>\n \u003c/body>\n \u003c/html>\n `;\n}","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Form Handling and Webhooks","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"typescript"},"content":[{"text":"// webhook/tilda-form.ts — Receive Tilda form submissions\n/**\n * Configure in Tilda: Block Settings → Form → Webhook URL\n * Tilda sends POST with form data on every submission.\n */\nexport async function handleTildaForm(req: Request) {\n const formData = await req.formData();\n const data = Object.fromEntries(formData);\n\n // data: { Name: \"Kai\", Email: \"[email protected]\", Phone: \"+1234567890\", ... }\n\n // Save to CRM\n await fetch(\"https://api.mycrm.com/leads\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n name: data.Name,\n email: data.Email,\n phone: data.Phone,\n source: \"tilda-landing\",\n }),\n });\n\n // Send to Telegram\n await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n chat_id: CHAT_ID,\n text: `🔔 New lead!\\nName: ${data.Name}\\nEmail: ${data.Email}\\nPhone: ${data.Phone}`,\n }),\n });\n\n return new Response(\"OK\");\n}","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"E-Commerce (Tilda Store)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"html"},"content":[{"text":"\u003c!-- Custom product page enhancements -->\n\u003cscript>\n // Add to cart with custom handling\n document.addEventListener('DOMContentLoaded', () => {\n // Track add-to-cart events\n document.querySelectorAll('.js-store-buttons-buy-btn').forEach((btn) => {\n btn.addEventListener('click', () => {\n const productName = btn.closest('.js-product')\n ?.querySelector('.js-product-name')?.textContent;\n\n // Send to analytics\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'add_to_cart',\n product_name: productName,\n });\n }\n });\n });\n });\n\u003c/script>","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"SEO and Analytics Setup","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"html"},"content":[{"text":"\u003c!-- Add to Settings → More → HTML code in \u003chead> -->\n\n\u003c!-- Google Analytics 4 -->\n\u003cscript async src=\"https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX\">\u003c/script>\n\u003cscript>\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'G-XXXXXXXXXX');\n\u003c/script>\n\n\u003c!-- Facebook Pixel -->\n\u003cscript>\n !function(f,b,e,v,n,t,s){/* ... Facebook Pixel code ... */}();\n fbq('init', 'YOUR_PIXEL_ID');\n fbq('track', 'PageView');\n\u003c/script>\n\n\u003c!-- Custom structured data -->\n\u003cscript type=\"application/ld+json\">\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Organization\",\n \"name\": \"My Company\",\n \"url\": \"https://mycompany.com\",\n \"logo\": \"https://mycompany.com/logo.png\",\n \"contactPoint\": { \"@type\": \"ContactPoint\", \"telephone\": \"+1-234-567-8900\" }\n}\n\u003c/script>","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Examples","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 1: Build a marketing landing page","type":"text"}]},{"type":"paragraph","content":[{"text":"User prompt:","type":"text","marks":[{"type":"strong"}]},{"text":" \"Create a landing page for a SaaS product with hero, features, pricing, FAQ, and contact form — staff should be able to update text and images.\"","type":"text"}]},{"type":"paragraph","content":[{"text":"The agent will design the page with Tilda blocks, configure form webhooks, add custom CSS for brand consistency, and set up analytics tracking.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 2: Custom interactive elements on Tilda","type":"text"}]},{"type":"paragraph","content":[{"text":"User prompt:","type":"text","marks":[{"type":"strong"}]},{"text":" \"Add a pricing calculator and interactive product comparison table to our Tilda site.\"","type":"text"}]},{"type":"paragraph","content":[{"text":"The agent will create Zero Block layouts with custom HTML/JS for the calculator and comparison table, styled to match the Tilda theme.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 3: Connect Tilda forms to CRM","type":"text"}]},{"type":"paragraph","content":[{"text":"User prompt:","type":"text","marks":[{"type":"strong"}]},{"text":" \"Send every form submission to our CRM and notify the sales team on Telegram.\"","type":"text"}]},{"type":"paragraph","content":[{"text":"The agent will configure Tilda webhooks, create a serverless function to receive submissions, and forward data to CRM + Telegram.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Guidelines","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Blocks for structure, Zero Block for custom","type":"text","marks":[{"type":"strong"}]},{"text":" — use pre-built blocks for speed, Zero Block for full control","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Custom code in Settings","type":"text","marks":[{"type":"strong"}]},{"text":" — HTML in ","type":"text"},{"text":"\u003chead>","type":"text","marks":[{"type":"code_inline"}]},{"text":" for CSS/meta, before ","type":"text"},{"text":"\u003c/body>","type":"text","marks":[{"type":"code_inline"}]},{"text":" for JS","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Forms have built-in webhooks","type":"text","marks":[{"type":"strong"}]},{"text":" — send submissions to any URL","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Tilda API is read-only","type":"text","marks":[{"type":"strong"}]},{"text":" — export content, can't create pages via API","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"SEO settings per page","type":"text","marks":[{"type":"strong"}]},{"text":" — title, description, OG tags in page settings","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Custom domain","type":"text","marks":[{"type":"strong"}]},{"text":" — point DNS to Tilda, SSL automatic","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"E-commerce built-in","type":"text","marks":[{"type":"strong"}]},{"text":" — product catalog, cart, checkout, payments","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Responsive by default","type":"text","marks":[{"type":"strong"}]},{"text":" — blocks adapt, but test and adjust breakpoints","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Staff can edit anything","type":"text","marks":[{"type":"strong"}]},{"text":" — text, images, blocks, page order via visual editor","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Export for self-hosting","type":"text","marks":[{"type":"strong"}]},{"text":" — API returns full HTML/CSS/JS for self-deployment","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Don't override critical Tilda classes","type":"text","marks":[{"type":"strong"}]},{"text":" — prefix custom CSS with your namespace","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Google Tag Manager","type":"text","marks":[{"type":"strong"}]},{"text":" — use GTM for complex tracking setups instead of inline scripts","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"tilda","author":"@skillopedia","source":{"stars":62,"repo_name":"skills","origin_url":"https://github.com/terminalskills/skills/blob/HEAD/skills/tilda/SKILL.md","repo_owner":"terminalskills","body_sha256":"14e3a64aa8165ee29cfebb3fa98e234c54fc60397dca6b93cb92335c0092df99","cluster_key":"b3a0b1144bd0f5cf26bcefbb2db12ca64aeb9228420c2320c91c22e7f48ac954","clean_bundle":{"format":"clean-skill-bundle-v1","source":"terminalskills/skills/skills/tilda/SKILL.md","attachments":[{"id":"88d50cd3-db49-5a7a-ba45-10cb7cd835a2","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/88d50cd3-db49-5a7a-ba45-10cb7cd835a2/attachment.json","path":"_scores.json","size":1561,"sha256":"0f56bb0189843eef40aa48926145c236f0f645d43c2c23fb5787a47fe45e59bb","contentType":"application/json; charset=utf-8"}],"bundle_sha256":"198b6ef507d1c219db48f33d8cfa467942013ebd426e72b6cd53cef05b306789","attachment_count":1,"text_attachments":1,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"skills/tilda/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"web-development","category_label":"Web"},"exact_dupes_collapsed_into_this":0},"license":"Apache-2.0","version":"v1","category":"web-development","metadata":{"tags":["tilda","website-builder","no-code","landing-page","ecommerce","cms"],"author":"terminal-skills","version":"1.0.0","category":"development"},"import_tag":"clean-skills-v1","description":"Build and customize websites with Tilda — zero-code website builder with advanced customization. Use when someone asks to \"build a website with Tilda\", \"Tilda Publishing\", \"customize Tilda site\", \"Tilda API\", \"landing page builder\", \"no-code website\", \"Tilda custom code\", or \"integrate Tilda with external services\". Covers block-based building, custom HTML/CSS/JS, Tilda API, form handling, e-commerce, and integrations.","compatibility":"Browser-based editor. Custom code: HTML/CSS/JS. API: REST."}},"renderedAt":1782980548850}

Tilda Publishing Overview Tilda is a block-based website builder — drag blocks onto a page, customize them visually, and publish. No backend to manage, no hosting to configure. For developers: inject custom HTML/CSS/JS into any block, use the Tilda API to manage content programmatically, connect forms to any backend, and build custom integrations. Perfect for marketing sites, landing pages, and small e-commerce stores where non-technical staff need to update content independently. When to Use - Building marketing sites and landing pages quickly - Need a CMS that non-technical staff can update…