HomeGuidesAdding a Comment Widget to an Imweb Site

Adding a Comment Widget to an Imweb Site

One line in the site settings, one div in a code widget. The Korean labels for both are below.

Updated

A hosted comment thread runs on Imweb, and the reason matters before you touch anything: Imweb writes the code you paste into the HTML of every page, in its own words "모든 페이지의 HTML에 공통으로 삽입됩니다", so the widget reads your own hostname when it checks where it is running. Nothing is wrapped in a sandbox. The install lives on two screens. The loader line goes into Footer Code, under 환경설정 > SEO(검색엔진최적화) > 고급 설정 > 공통 코드 삽입, and the mount element goes into a 코드 위젯 (code widget) on the page that needs the thread. Read the plan and domain section first, because both decide whether the widget can answer for your address at all.

There is no free Imweb site to test this on

Start with what Imweb does not say. No page consulted for this guide states that code insertion requires a particular tier. The pricing comparison table has no row for scripts or custom code, and neither of the two help articles that walk through the tiers mentions one. So "which plan switches the boxes on" stays unverified here rather than being guessed at, which is the honest position when a vendor is silent.

Two documented facts settle the practical question anyway. The free tier was retired on July 30, 2025, so a new site runs on a 14-day trial and then has to be paid for: Starter at 16,000 KRW a month, Pro at 24,000, Global at 40,000. And connecting your own address is spelled out: "Free 버전 사이트에서는 개인 도메인 연결이 불가하니, Starter 버전 이상의 요금제로 결제 후 개인 도메인을 연결해 주세요." Roughly: a free site cannot connect a personal domain, so pay for Starter or above first. A widget that answers only on domains you registered therefore starts at Starter, whatever the code panel itself would have allowed.

What lands on the page

The widget is running here, on this page, so you can see the finished state before deciding whether the click path is worth it. On an Imweb page it looks the same, because by then it is one div in your own document.

Preview

2 comments

Add a comment…
Commenting as AlexPost
  • M
    Maya2h ago

    One line and done, did not expect setup to be this easy!

  • J
    JordanYesterday

    Shared sign-in means nothing else to wire up. 👍

A thread filled with sample replies for the preview. Google sign-in and moderation from your dashboard arrive with the install, not with this box.

Nothing here is sandboxed, and Imweb keeps saying so

This is the question that decides whether a hosted widget can work on a builder at all, so it is worth answering with the vendor's sentences rather than a guess. Imweb describes the placements by position in your document: Header Code sits inside <head> on every page, Body Code goes immediately after <body> opens, Footer Code goes just above </body>. Those are coordinates in your page, not in a frame drawn on top of it.

The code widget documentation says the same thing from another angle. Imweb tells you not to declare jQuery or Bootstrap again because the site already loads them, which is only true of code sharing one document with the site. It warns that code touching the built-in widgets can misbehave after an Imweb update. And the troubleshooting article says a tag left open or closed in the wrong order causes trouble for "사이트의 전체적인 레이아웃과 기능", then tells you to check widget id and class names and CSS priority. Code locked inside a cross-origin frame could not reach far enough to cause any of that.

Builders split hard on this point, which is why one widget needs a different guide per platform. Wix routes pasted HTML into a sandboxed iframe on a Wix origin, so a widget that checks its hostname is finished before it starts and the fix there is a different panel entirely: the Wix install is that story. On Imweb the ordinary door is the right door.

Box under 공통 코드 삽입Where Imweb puts itWhat it is for
Header Code 상단Above the rest of the headOwnership meta tags for Naver and Google webmaster tools
Header CodeInside <head> on every pageAnything that has to be parsed before the body
Body CodeImmediately after <body> opensMarkup that has to precede your page content
Footer CodeJust above </body>The loader line for this install
Four boxes on one screen. A deferred loader belongs in the last one.

The install

  1. Two hostnames answer for one Imweb site

    Every Imweb site is given a (domain).imweb.me address when it is created, and Imweb states that this basic domain cannot be deleted. Connect your own domain and the imweb.me address keeps answering: the help center says automatic forwarding from the basic domain is not supported, "아임웹 기본 도메인(*.imweb.me)에서 개인 도메인으로 자동연결은 지원하지 않습니다", and the 대표 도메인 setting only forwards between two or more personal domains. So the site really does answer on two hostnames. Add both in the BootSignal dashboard, exactly as they appear in the address bar, and the dashboard hands back the site id the loader needs. Register only one and a visitor who arrives on the other reads a page with no thread on it, with no error to explain why. Both addresses are managed under 환경설정 > 도메인.

  2. Paste the loader into Footer Code

    In the site admin, open 환경설정 > SEO(검색엔진최적화), scroll to 고급 설정, and find 공통 코드 삽입. Put the line below into Footer Code, then press 저장. Imweb's instruction for JavaScript here is to declare it between <script> and </script>, which this tag already satisfies. data-lang decides the language of the widget interface itself, and Korean, English and Japanese are available.

    Snippet
    <script src="https://bootsignal.com/bootsignal.js"
            data-site-id="YOUR_SITE_ID" data-lang="ko" defer></script>
  3. Give the thread a home with a code widget

    Imweb recommends this exact division of labour: keep a code widget to "HTML 정도만" and load shared CSS and JavaScript from the common code boxes, calling them from the widget. So the widget holds one div and nothing else. In 디자인 모드, click the 위젯 추가 + icon at the top left, choose 코드 위젯, right-click the widget that appears on the canvas, choose 위젯 설정, paste the div, and press 저장 at the bottom right. The data-thread-id value is what separates one conversation from another, so give each page its own.

    Snippet
    <div data-bootsignal="comments" data-thread-id="blog/hello-imweb"></div>
  4. Check it in 미리보기, then on the live address

    The canvas will look empty, and that is documented behaviour rather than a failed paste: Imweb renders a code widget only in 미리보기 (preview) mode, to keep pasted code from colliding with the editor. Use 미리보기 at the top right, then open the published address and scroll to the widget. Open it on the personal domain you registered. The imweb.me address stays quiet unless you added that hostname too, which is step one doing its job.

When you would rather not type a thread id per page

Hand-written ids are fine for a handful of pages and tiresome after that, and a duplicated id quietly merges two conversations into one. The alternative is to leave the attribute off the div and let one snippet fill it in from the path. Paste this above the loader tag in the same Footer Code box: it runs while the page is parsed, and the loader tag is deferred, so the ids are in place before anything scans for mounts.

Footer Code, above the loader line
<script>
(function () {
  function stamp() {
    var sel = '[data-bootsignal="comments"]:not([data-thread-id])';
    var list = document.querySelectorAll(sel);
    for (var i = 0; i < list.length; i++) {
      list[i].setAttribute('data-thread-id', location.pathname);
    }
    if (list.length && window.BootSignal && window.BootSignal.activate) {
      window.BootSignal.activate();
    }
  }
  stamp();
  document.addEventListener('DOMContentLoaded', stamp);
})();
</script>

What the code widget will not do

Imweb draws the boundary itself, and it is a short list worth reading before you spend an evening on the wrong idea. The code widget supports client-side languages only: HTML, JavaScript and CSS run, while PHP, JSP and ASP do not. A widget accepts up to one million characters, which no embed will ever approach. Comments are removed on save. And because Imweb already loads jQuery and Bootstrap, adding your own copies is work that buys nothing.

The comment widget wants none of what is missing. It is a hosted service: sign-in, storage and moderation live on our side, and the page only needs a div and a deferred script. That is the whole reason this install fits inside a text box in an admin panel.

See What the Thread Does Once It Is Live

Two boxes on two screens, one site id, and replies start landing in your dashboard.

What it costs on top of Imweb

Imweb bills per site plan, from 16,000 KRW a month at Starter. BootSignal bills per registered domain: $20 per month or $200 per year per registered domain. That covers all 38 widgets in the catalog and the ones added after you subscribe, and nothing about the bill moves when traffic does. Your imweb.me address and your own domain are two entries in the same site's domain list rather than two subscriptions, so the pair costs what one costs. The pricing page has the rest.

Competitor prices are not on this page on purpose, because a number that goes stale inside a guide is worse than no number. The alternatives section carries those with a source and a date attached to each one.

The second widget is a shorter job

The loader in Footer Code already knows how to mount everything else in the catalog, so the next widget is one more code widget with a different data-bootsignal value. Feedback earns its place quickly on a Korean small-business site: the visitor who would never post in public will often send one private line about a price or a delivery date.

Preview
Leave your feedback…
Send

The Feedback widget, with sample entries standing in for real ones. Details on the Feedback page.

When the published page shows nothing

  1. Are you looking at the canvas? A code widget draws in 미리보기 mode and on the live site, and nowhere else.
  2. Is bootsignal.js in the Network tab of the live page? If it is missing, the Footer Code entry was never saved.
  3. Does the address bar show a hostname you registered? An imweb.me address you skipped renders nothing at all, which is the allowlist working as intended.
  4. Did part of the page layout break at the same time? Imweb warns that tags left open or closed in the wrong order affect the whole site layout and its features, so re-read the paste before suspecting the widget.
  5. Does the div carry a data-thread-id? Without one the loader writes a console warning and draws nothing.
  6. Did anything server-side go into the widget? Client-side languages only, so PHP, JSP and ASP never run there.

Questions people ask

Which Imweb plan unlocks the common code boxes?
No Imweb page consulted for this guide names one, and the feature comparison table has no row for scripts, so that specific answer is unverified rather than known. What is written down is the domain requirement: a free site cannot connect a personal domain, and Starter or above can. Since the widget answers only on hostnames you registered, Starter is the practical floor.
The canvas is empty where the code widget sits. Did the paste fail?
Probably not. Imweb renders a code widget only in 미리보기 mode inside 디자인 모드, deliberately, so that pasted code does not collide with the editor. Switch to 미리보기 first, and confirm on the published address afterwards.
My HTML comments disappeared from the saved code. Is something rewriting it?
That is documented behaviour: Imweb strips comments when the code is stored for the live site. It is harmless in itself, and it matters only if you planned to leave a comment in the markup and find it later with a script. Attach to a real element instead.
Do I have to add the imweb.me address if I already connected my own domain?
Yes, if anyone reaches the site that way. The basic domain cannot be deleted, and Imweb does not support automatic forwarding from it to a personal domain, so both addresses stay reachable. A visitor who lands on the unregistered one sees the page without the thread.
Can the widget code call anything on the server?
Not from a code widget. Imweb runs client-side languages there, so PHP, JSP and ASP are out. This widget needs none of them: the sign-in, the stored replies and the moderation screen are hosted, and the page contributes one div and one deferred script tag.
Imweb already loads jQuery. Does the loader want its own copy?
No. The loader is self-contained and asks for no library, which is convenient here because Imweb ships jQuery and Bootstrap with the site and says as much. Leave both alone. Loading a second copy of either is a well-known way to break widgets that were working.
Register Your Imweb Domains and Get a Site ID

Add the personal domain and the imweb.me address. One site id ties both to one install.

Where these numbers come from