HomeGuidesHow to Add a Comment Widget to Tistory

How to Add a Comment Widget to Tistory

Nothing to upgrade, nothing sandboxed. The thing that quietly undoes this install is a skin swap.

Updated

Tistory hands you the skin source rather than a widget slot. In the blog admin, open 꾸미기 > HTML/CSS 편집 (the screen for editing the skin you are using), paste a mount element into skin.html beside the post comment region, add one loader line before the closing body tag, and press 저장 (save). There is no tier to buy on the way: tistory.com publishes no pricing page, and no vendor document ties this screen to a paid level. Two conditions are real, though. The blog has to exist first, and applying a different skin resets your HTML/CSS edits along with your uploaded files, so keep a copy of everything you paste.

What Tistory asks of you before you start

This is the unusual part for anyone arriving from a site builder. Squarespace runs third-party scripts only from a certain plan up, Wix wants a connected domain, and both send you looking for a checkout page. Tistory has no plans at all. The service front page sells nothing, and the help articles that describe skin editing describe it as a feature of the blog rather than of a subscription.

So the two conditions worth knowing are not financial. First, you need a blog on the account, and Tistory's help says an account runs up to 5 of them while the address itself is fixed once created: "이미 개설한 티스토리 주소(URL)는 변경할 수 없습니다." An address, once opened, cannot be changed. Second, and this is the one that bites months later, swapping the skin wipes what you did in HTML/CSS 편집 and the files you uploaded next to it. The install below takes ten minutes. Recovering it after a skin change takes ten minutes too, but only if you kept the snippets somewhere.

Three tabs, and only one of them is the file you want

Tistory describes the screen plainly in its own guide: "현재 사용중인 스킨을 직접 편집하거나, 스킨에 포함된 파일을 관리할 수 있습니다." You edit the skin in use directly, or manage the files inside it. Which is to say the tab strip is the whole map, and it is short.

Tab or fileWhat it holdsWhat you do here today
HTML/CSS 편집 > skin.htmlThe skin markup for the blog, substitution tags includedBoth snippets go here
HTML/CSS 편집 > style.cssThe skin stylesheetNothing, unless you want to reserve space around the thread
파일 업로드Files bundled with the skinNothing, since the widget is fetched over the network rather than uploaded
Tistory documents the upload rule in the same article: everything except skin.html, style.css, preview.gif and index.xml is uploaded into the images directory. Its skin guide adds that "image, script, css 등을 업로드하여 스킨에서 사용합니다.", meaning scripts alongside images are an ordinary part of a skin rather than something you are working around.

That last line answers the question people actually arrive with, which is whether a third-party script is allowed to run at all. The vendor's own guidance treats added scripts as normal and asks for care rather than forbidding them: "맞춤법 오류, 태그를 닫지 않은 경우, 무리하게 스크립트를 추가하는 경우 블로그가 정상적으로 보이지 않을 수 있으니 주의해주세요." Typos, unclosed tags and reckless script additions can leave the blog rendering wrong. The official Tistory theme published by the vendor loads a script from an external CDN in its own skin.html, and a live Tistory blog served today runs scripts from domains that are not Tistory's, with no Content-Security-Policy header in the response to stand in the way.

Both of your addresses have to be registered

A Tistory blog answers on the address it was created with. Attach a domain of your own under 관리 > 블로그 (blog management) after buying it and pointing DNS, and the blog answers there too, which means the widget has two hostnames to recognize rather than one. Register both. Tistory covers the certificate side either way: "티스토리는 서비스 도메인과 외부 도메인 모두에 https를 지원합니다." Both the service domain and an external domain get https, which is what the sign-in popup requires.

The install

  1. Put both addresses on the same site id

    Open a published post, read what the address bar says, and add that hostname in your BootSignal site settings. If a domain of your own is attached, add the tistory.com address next to it rather than instead of it: the admin screens still live there, and old links keep arriving. What comes back is a site id, and that string is the only value you type into Tistory. The widget compares location.hostname against the list behind that id and draws nothing on a hostname that is not on it.

  2. Open 꾸미기 > HTML/CSS 편집 and copy skin.html out first

    In the blog admin, the skin editing screen opens on the skin.html tab, which is the whole file in one editor. Before you type anything, select all of it and paste it into a text file on your own machine. Tistory offers no restore button on this screen, and the reset that arrives with a skin change is the reason this guide exists. Name the file with today's date and keep it wherever you keep the blog's other notes.

  3. Paste the mount beside the comment region

    Search the file for <s_rp>. The skin guide describes that block as the one whose substitution tags are printed when the page is reached as a comment view, so it marks where Tistory already draws its own comment area. Leave the block intact for now and put the mount just before it. The second element is an inline script rather than an attribute, and the reason is in the next step.

    Snippet
    <div data-bootsignal="comments" id="bs-thread"></div>
    <script>
      document.getElementById('bs-thread')
        .setAttribute('data-thread-id', location.pathname);
    </script>
  4. Let the post address decide the thread key

    A Tistory post lives at a numbered path, and skin.html is one file shared by every post on the blog. Type a fixed key into the mount and all of them share one conversation. Reading location.pathname gives each post its own, and the timing works because the loader scans for mounts once the document is parsed while that inline script runs during parsing. Add the loader before the closing body tag, once, no matter how many widgets you end up with.

    Snippet
    <script src="https://bootsignal.com/bootsignal.js"
            data-site-id="YOUR_SITE_ID" data-lang="en" defer></script>
  5. Preview, save, then open a real post

    The screen has 미리보기 (preview) and 저장 (save) side by side, and Tistory is explicit that the edit reaches the blog only once saved. Preview first to confirm the page still draws, save, then open a published post on the live address. Judge it there rather than in the preview pane, and open your list page too: if your skin renders the post area on more than one kind of page, each of those pages gets its own key from its own path.

What you just pasted

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. 👍

The widget drawing here on this page. The comments in it are sample rows, kept short so the layout is readable; a fresh Tistory post starts empty.

Get a Site Id for My Tistory Blog

Register the address, copy the id, paste two snippets into skin.html.

Tistory already draws a comment area, so decide which one stays

You now have two comment areas on the same post, and readers will use whichever one they see first. Split conversations are worse than either choice on its own, so pick before you tell anyone the blog has comments.

Keeping Tistory's own area means readers write with the identity Tistory gives them and the thread you added sits underneath as a second box, which only makes sense while you are testing. Removing it means editing the <s_rp> block out of skin.html, and the consequence is worth stating plainly: those comments are stored on Tistory's side and do not travel. They stop being drawn on the page and nothing more. If there is a thread on an old post you would miss, copy it into the post body before you delete the block.

The skin swap is what undoes this

Every other failure in this guide announces itself. This one does not. Tistory states that applying a skin resets both the HTML/CSS edits and the uploaded files, so the day you try a new design for an afternoon, the widget leaves with the old skin and the page looks fine without it. Nobody files a bug against a comment box that is simply absent.

  • The full skin.html you copied out in step 2, dated.
  • The two snippets, with your real site id already filled in rather than the placeholder.
  • One line saying where in the file they went, for instance immediately before the s_rp block.

Three items in one text file, kept with the blog's other notes. Reapplying them after a skin change is a search and two pastes. Reconstructing them from memory is an evening.

When the thread does not appear

The address is not the one on your site id

This is the first thing to check and the most common cause. The widget answers only on registered hostnames, and sign-in checks the page origin, so a blog reachable at both its tistory.com address and a domain of your own needs both of them registered. Tistory's help also notes that a personal domain can show you as signed out even while you are signed in, thanks to browser cookie policy. That is about Tistory's own session rather than the widget, whose sign-in lives in the browser storage of the page origin, but it is a confusing thing to hit on the same afternoon, so name it before it names itself.

Preview looked right, the live post did not

Preview and save are separate buttons for a reason, and an edit that was only previewed is not on the blog. If you did save and the post still shows nothing, view source on the live post and search for your mount element. Present but empty points at the hostname; absent entirely points at the wrong file position, most often a paste that landed inside a block the current page does not render.

The whole skin looks broken after saving

Undo the paste and reload before debugging anything else, which is the fastest reason to have that copy of skin.html. Tistory's own warning names unclosed tags and heavy-handed script additions in the same breath, so start with the shape of what you pasted rather than with the widget. The two snippets here are one div, one inline script and one script tag, all closed.

What the widget costs, and what it does not scale with

Comments are part of the BootSignal subscription: $20 per month or $200 per year per registered domain, with all 38 paid widgets included and nothing that scales with traffic. That last clause matters more on Tistory than on most platforms, because a Korean blog can sit at a few hundred readers a day for a year and then meet an aggregator, and a comment tool priced by pageviews gets expensive in exactly the week you least want to think about it. A second blog on a different address is a second registration, added from the dashboard. The pricing page lists what is free next to what is not, and the alternatives section puts hosted comment systems side by side.

While the file is open

The loader line you added runs the rest of the catalog too, so a second widget is one div and no more script tags. On a long Tistory post the natural companion is a table of contents, built from the headings already in the article.

Preview
☰ Contents
Getting startedConfigurationFAQ

The table of contents widget, reading the headings of whatever page it sits on. Here that is this guide.

skin.html, near the top of the post area
<div data-bootsignal="toc"></div>

Add that line to the text file with the others before you close the editor. The next skin you try will take it away with everything else, and the file is what makes that a five minute problem instead of a lost afternoon.

Questions people ask

Tistory never asked me to upgrade. Is there a catch further in?
Not on the Tistory side. There is no pricing page on tistory.com and no vendor document that puts skin editing behind a level, so the HTML/CSS edit screen is simply there on every blog. What you do pay for is the widget itself, and that is a BootSignal subscription per registered domain. Read the absence of a Tistory plan as nothing standing in your way rather than as a promise anyone made you, which is the honest shape of a fact established by the absence of a page.
What exactly does applying a different skin reset?
The edits you made in the HTML/CSS screen and the files you uploaded beside them. Your posts, comments and settings are untouched, which is why this is easy to miss: the blog looks entirely healthy, minus one widget nobody is looking for. Keep the copy of skin.html and the two snippets described above, and reapplying them is a search and two pastes.
The same comments follow me from post to post. Where does the thread key come from?
From whatever sits in the mount element's thread attribute, and skin.html is a single file shared by every post, so a value typed in by hand is the same value everywhere. The inline script in step 3 fixes that by writing the current path in before the loader reads it. If you skipped that script, the mount has no key at all and nothing renders; if you replaced it with a literal string, every post shows one conversation.
Do readers need a Tistory account to write something?
No, and they do not get to use one either. The widget has a single identity route, which is signing in with Google, so a reader with a Tistory login and no Google session still has to sign in once. Weigh that against what you have now before removing the built-in area: it filters out drive-by spam, and it also filters out the person who wanted to leave one line and move on.
What happens to the comments already sitting in Tistory's own comment box?
They stay on Tistory's side, and the new widget starts empty on every post. Deleting the s_rp block from your skin stops those older comments being drawn without deleting them anywhere. There is no import between the two, so treat anything you would hate to lose from the page as something to copy into the post body while both are still visible.
My blog answers on a domain I bought. Which address goes in the dashboard?
Both, as separate entries. The tistory.com address keeps working after a domain is attached, the admin screens are still reached through it, and links published before the move keep arriving there for a long time. Enter the exact hostnames rather than a shortened form of them, since a bare tistory.com entry would match every blog on the platform instead of the one you meant.
Is there anything in skin.html I should leave alone?
One tag in particular. The skin guide marks s_t3 as the required insertion point for Tistory's shared javascript and puts it immediately inside the opening body tag, so paste around it and never through it. Beyond that, the safety rule is procedural rather than a list: copy the file out before your first edit, and any single mistake costs you one paste to undo.
Register a Tistory Blog

Add the tistory.com address and your own domain, then copy the site id.

Where these numbers come from