
Nothing in the dark half of this painting, and it is the half that makes it work.
Most of the question is "will it look right on my site", and you should not have to hand over an email to find out. Switch layouts, try themes, turn captions, dates, avatars and badges on and off, and watch a blog restyle as you click. Pointing it at a real blog comes later, and takes one text field.

Look at how little of this is the bird. Almost all of it is the fill.

Three days of this to land on two colours. The rest of the palette goes in the bin.

Red, green and the cream of the paper. Everything else is done with the outline.

The good brushes live in a drawer. These live in a jar and do all the work.

The dissected parts along the bottom are the whole reason these plates still read so well.

Graded from cream to blue this morning. It will not survive the afternoon.
Masonry. Columns that keep each photo’s own shape, so nothing is cropped to fit.
Build this with your own feedA preview, not the live renderer: the theme colours are read from the product’s own theme definitions and the layout names are the real ones, but the shapes here are drawn for this page. This box shows image posts only, which is a limit of the preview rather than of the widget: a real Tumblr feed mixes text and quote posts in with the pictures, and the wall higher up this page is drawn with them. Some tiles here crop to a square, which is also the drawing rather than the product: the widget never crops, though the sideways scrolling layouts do fit a tall photo inside a square box with bars down the sides. The studio itself carries 40 layouts and 16 themes, a theme builder on every plan, and renders the actual widget as you edit. Paper Kettle Press is a demo blog we invented, its address is invented too, and the images are CC0 stand-ins. The number on a card is a Tumblr note count.
Most sites handle a Tumblr blog with a small link in the footer, which asks a visitor who is already on your page to leave it for a theme you last edited years ago. The wall below is the other option: the blog itself, on your domain, in your type, with the text posts still text.

Look at how little of this is the bird. Almost all of it is the fill.

The good brushes live in a drawer. These live in a jar and do all the work.
Ten until four, from this weekend. The press will be running most of the afternoon, so it will be loud, and you are welcome to come and stand next to it. Everything on the seconds table is half price.

Nothing in the dark half of this painting, and it is the half that makes it work.
Four titles, two of them first collections, all four sewn rather than glued. Proofs came back this morning and we have signed them off, which means there is nothing left to change and we can stop looking at them.

Three days of this to land on two colours. The rest of the palette goes in the bin.

Red, green and the cream of the paper. Everything else is done with the outline.

Half a dozen pencil strokes for the ground and the bird is standing on something.

The dissected parts along the bottom are the whole reason these plates still read so well.

Graded from cream to blue this morning. It will not survive the afternoon.

Named cultivars, hand-lettered around the fruit. Nobody labels anything this well now.

A proof copy is the best surface in the building. It is already ruined.
“A book should be a beautiful object, or there is no reason for it to be an object at all.”
— a bindery note from 1911, found in a box of offcuts
A striped robe under a blossom branch, and the eye still goes straight to her face.

Two paper stocks, the same page count, a visibly different book. This is the one.

It does not stay like this and we have never photographed it any other way.
A Tumblr source is one of two things, and the choice is yours at setup rather than a plan feature. Both are on the free plan, hashtags included, which is not true of hashtag sources on every platform here.
A source is one blog or one hashtag, and neither asks you to log in: Tumblr is read through a server-side key we hold. A blog source follows that blog. A hashtag source pulls whatever anyone has tagged, which is why the preview above shows three different names.
The goal of a good feed widget is to look like it was always part of the page. 40 layouts, 16 themes, a theme builder that is free on every plan, and display toggles for dates, avatars, badges and captions. Here is one blog under three of them, and a few of the rest are yours to click through further up.

Red, green and the cream of the paper. Everything else is done with the outline.
Four titles, two of them first collections, all four sewn rather than glued. Proofs came back this morning and we have signed them off, which means there is nothing left to change and we can stop looking at them.

Three days of this to land on two colours. The rest of the palette goes in the bin.

The dissected parts along the bottom are the whole reason these plates still read so well.

Look at how little of this is the bird. Almost all of it is the fill.

A proof copy is the best surface in the building. It is already ruined.

The dissected parts along the bottom are the whole reason these plates still read so well.

It does not stay like this and we have never photographed it any other way.
Four steps, in the order you meet them, each shown with what it actually produces. None of them needs a developer, and none of them opens a Tumblr screen, because none of them has to.
Sign up free, create a feed, add Tumblr as a source and choose which of the two it is. A blog takes its name, a URL or a custom domain. A hashtag takes the tag, and pulls what anyone has tagged with it. No authorisation screen appears at any point.
No credit cardNo login screen opens from here, and no permission dialog either. Type the blog name and we read its public posts through our own Tumblr key. There is no password to see or store because none is asked for.
Imported posts land on the Collect page as cards with approve, pin and remove controls, and you can edit the post text inline. Nothing reaches your visitors that you have not chosen to show them.
You hold the approve buttonKeyword rules and the AI content filter can screen a post before this queue ever shows it to you, which matters most on a hashtag source.
Pick from 40 layouts and 16 themes, toggle dates, avatars, badges and captions, and watch the live preview restyle as you click. Masonry and list are the two that suit a feed where some posts are pictures and some are only words.
Real renderer in the previewThe preview in the studio is the real widget, so the posts you approve here are the posts that ship.
Copy the snippet for your platform and paste it where the feed should appear. Plain HTML, WordPress, Webflow and React get a script, Shopify a wrapped one, Wix and Squarespace a self-resizing iframe, Notion and Google Sites a bare URL.
The dialog picks the right snippet<link rel="preload" as="fetch" …><div id="collectsocials-2a7f60b4"></div><script src="…/api/widget"data-feed-id="…" data-token="…"data-container="…" data-api-base="…"defer></script>Abridged: the dialog fills in your own ids and adds the feed-url attribute. Pick your platform there and the snippet changes shape to suit it.
Every imported post waits as a card: approve it, pin it to the front, remove it, or edit its text inline. Keyword rules and an AI content filter can screen what comes in before you see it. On a hashtag source this is not a nice-to-have, because the posts arriving were written by people who have never heard of your site.
A script tag is not universally installable: some builders sandbox custom code, others strip it. So the embed dialog asks where you are installing and hands out the right snippet for that host.
One script tag and one container div. The widget mounts directly in your page and renders inside a Shadow DOM, so its CSS and yours cannot interfere.
The same script with a page-width wrapper, because Shopify themes lay sections out with flexbox and would otherwise compress the container.
Both sandbox or strip custom scripts, so these get an iframe that resizes itself as content loads. No clipped feeds, no scrollbars.
Builders that cannot run scripts at all take a fixed-height frame by URL. Content scrolls inside it.
We do not publish speed-score leaderboards, because a widget's score depends on where it sits on the page and what the feed contains. What we publish instead is how the thing is built, which you can verify in your own DevTools.
The whole integration is one script tag and one div. Deferred means it never blocks your page from rendering.
The snippet preloads the feed request so posts and code arrive in parallel instead of one after the other.
The widget renders inside a Shadow DOM. Your stylesheets cannot break the feed, and the feed cannot break your page.
One feed can combine 10 platforms, so a post can sit beside a pin, an Instagram post and a Google review in the same section. Every platform is on the free plan except X (Twitter), which is premium for one reason: X charges for API access.
Booked the sunrise trip on the strength of the photos and it was better than the pictures. The guides knew exactly where to be and when.
YouTubeThree days on the ridge trail, start to finish
TikTokThe swings go right out over the water
Sunrise crew made the ridge before the storm broke. Whole set is up on the site now.
Lagoon day. Six boats out, nobody tipped in, and the water stayed that colour the whole afternoon.

Second trip with them this year. Everything ran on time and the small group size is the whole point.
InstagramFound the yellow wall. Obviously we danced at it.
InstagramMade the crest just before the sun did.
InstagramUp before the balloons were.
End of the festival, and they let the whole lot go at once. Nobody said a word for about ten seconds.

A demo feed for an invented brand, showing 6 of the 10 live sources in one wall. The posts, reviewers and engagement numbers are illustrative, not product metrics. Every field on these cards is one the widget really renders, but the wall itself is drawn for this page rather than served by the widget.
Try the full design studio for 7 days, no credit card. When the trial ends you keep a plan a live site can actually run on.
An embeddable component that pulls posts from a public Tumblr blog, or from a hashtag, and displays them on your website as a live, self-updating section. You give it a name once, style it, and paste one snippet. From then on the section keeps up on its own, and the visitor stays on your page instead of leaving for Tumblr.
No, and there is no screen where you could. Tumblr is read through a server-side key we hold, not through your account, so adding a source is typing a blog name into a text field. Nothing is authorised, no permission dialog appears, and there is no connection to renew later. That is unusual: most platforms here need you to sign in through their own OAuth screen first.
All of them. A Tumblr post can be text, a photo, a quote, a link, a chat, audio or video, and the importer reads the body of each one rather than only the ones with a picture attached. That is the whole reason a Tumblr feed looks different from an Instagram feed on a page, and the masonry and list layouts are the two that handle the mix best. A text post with no picture appears as a card of words, because that is what it is.
It is the note count, which is Tumblr’s single engagement figure: likes, reblogs and replies added together. Tumblr does not break those apart in the API, so the widget stores the note total and shows that. There is no separate comment count and no separate reblog count to show, and any tool that shows you one is not getting it from Tumblr.
You pull other people’s posts. A hashtag source returns whatever anyone has tagged, from any blog, so the posts on your page were written by strangers who did not agree to appear there. Moderation matters more here than anywhere else on the product: approve individually, use keyword rules and the AI filter, and treat the feed as a submission queue rather than a wall you can leave running.
Technically yes, because public posts are public and no permission is involved. Whether you should is a rights question rather than a technical one: putting someone else’s writing and pictures on a commercial page is their call to make, so ask them. The honest answer to what the product does is that it reads any public blog, and we would rather say that plainly than pretend at a restriction the code does not have.
The widget is built not to: it is a single deferred script and one container element, the feed request starts in parallel with the script download, and the whole thing renders inside a Shadow DOM without touching your page’s CSS. We deliberately do not publish speed-test leaderboards, because scores depend on where a feed sits on the page and what it contains. We explain that methodology decision, with our test data, in our side-by-side test of 8 feed widgets.
Tumblr itself, with no upgrade, hashtag sources included: 7 of the 40 layouts with masonry and list among them, every one of the 16 themes plus the theme builder, moderation, and a daily sync. Free widgets carry a small CollectSocials credit link; paid plans can remove it. The 7-day trial opens the full design studio (every layout, plus the separate mobile design) with no credit card.
New posts sync automatically on your plan’s schedule: every 24 hours on the free plan, hourly on Pro, every 15 minutes on Business and every 10 on Scale. Because there is no per-user token in the picture, there is also nothing that can expire and no reconnection prompt to meet six weeks from now.
Yes. One feed can combine 10 platforms, including Instagram, Pinterest, YouTube, Facebook and Google Reviews, into a single wall. Every platform is on the free plan except X (Twitter), which is premium for one reason: X charges for API access. Pinterest is the usual second half of a visual wall, and it has a page of its own.
Type a blog name, choose a layout, paste one snippet. The 7-day trial covers the full design studio and asks for no card.
Works with WordPress, Shopify, Wix, Squarespace, Webflow, Notion and plain HTML.