Notion public pages have become a surprisingly common landing page choice for indie makers and solo founders. The setup takes minutes, the formatting is clean, and sharing a notion.so URL costs nothing. For an early-stage product or a simple portfolio, it works.
The problem arrives when you want testimonials. Notion does not have a quote block, a testimonial component, or any way to display social media posts. It has a Callout block, a Toggle block, and the ability to embed external content. Those three tools are everything you have to work with.
This guide covers what is actually possible with Notion public pages, where the platform genuinely limits you, and the one approach that produces real social proof on a Notion page.
What Notion Can and Cannot Do for Testimonials
Before going through specific methods, it is worth being direct about Notion's limitations for this use case.
What Notion can do:
- Display styled text blocks (Callout, Quote, Toggle)
- Embed external URLs that support oEmbed
- Embed iframes via the Embed block (with limitations)
- Link out to external pages
What Notion cannot do:
- Render complex third-party JavaScript widgets
- Display full X native tweet embeds (X's widget script does not execute in Notion embeds)
- Create a multi-card horizontal scrolling carousel natively
- Connect to any social media API
The ceiling is real. Notion is a document tool made public — it is not a website builder. If your landing page needs a pixel-perfect testimonial carousel with full design control, Notion is the wrong platform for that page. If you need a quick, credible social proof section on an existing Notion public page, there are options.
Method 1 — Callout and Quote Blocks for Static Testimonials
Notion's Callout block and Quote block are the closest native equivalents to a testimonial card.
Using the Quote block
Type /quote to insert a Quote block. It renders as a vertical bar on the left with indented text — the standard editorial blockquote style. Use it for a single strong testimonial:
"We replaced our entire onboarding doc with this and cut time-to-activation by 40%." — Sarah K., Head of Customer Success
Add the attribution as a smaller text block below or inside the quote. Notion does not support in-line attribution styling, so you will either put it on a new line or use an italic text block immediately after.
Using the Callout block
Type /callout for a block with a background color and an icon. It stands out visually from body text and works well for a standout testimonial. Replace the default emoji with " for a quote-like visual.
Displaying multiple testimonials
Notion's two-column layout helps here. Create a two-column block (type /2 columns) and place one Callout or Quote block in each column. For three testimonials, use a three-column layout.
Limitation: Notion's column layout is not responsive. On mobile, columns collapse to a single stack. A three-column testimonial row becomes a three-block vertical list on mobile — functional, but not designed.
When this works
- You have 2 to 4 short testimonials that are static
- You are using the Notion page as a temporary or MVP landing page
- You want zero setup time and zero external tools
- The audience will mostly view it on desktop
Method 2 — Embed Individual Tweets
Notion supports embedding individual tweets from X. When you paste a tweet URL on a Notion page and select Create embed, Notion renders a static preview of the tweet — not the full X widget with JavaScript, but a visual representation that shows the tweet content.
How to embed a tweet in Notion
- Find the tweet you want to embed on X
- Copy the tweet URL (the URL in the browser address bar when viewing the tweet)
- Paste it on your Notion page
- Notion will show a prompt — select Create embed
- The tweet appears as an embedded block
What the embed looks like
Notion renders a clean visual card showing the tweet text, the author's name, username, and profile photo. It does not run X's full widget script, which means no like/retweet buttons, no follow prompt, and no X tracking — just the tweet content displayed cleanly.
Limitations
One tweet per embed block. There is no way to combine multiple tweet embeds into a single scrollable carousel in Notion. If you want 8 testimonials, you add 8 separate embed blocks — they stack vertically.
Some tweets do not embed. Notion's oEmbed support for X is inconsistent. Recent changes to X's API access have made some tweet embeds fail. If a tweet URL shows only a link preview instead of a tweet card, it is a platform limitation.
No carousel. Eight stacked tweet embeds is a list, not a carousel. It works for a short testimonials section but becomes unwieldy beyond 4 to 5 entries.
When this works
- You have 3 to 5 specific tweets you want to highlight
- The tweets embed successfully (test before committing to this approach)
- A vertical list of testimonials fits your page layout
Method 3 — Embed an iframe Carousel
Notion's Embed block can render some iframes from external sources. This is the most powerful option available on a Notion public page — and the one that produces a real multi-card testimonial carousel.
How it works with LaunchWall
LaunchWall generates a hosted embed URL in addition to an iframe code snippet. This hosted URL can be pasted into Notion's Embed block and rendered as a carousel directly on your Notion page.
- In LaunchWall, build your testimonial carousel (paste a post URL, select replies, publish)
- Copy the embed URL (the direct URL to the carousel, not the full
<iframe>tag) - On your Notion page, type
/embed - Paste the embed URL and press Enter
- Notion fetches and renders the carousel
What visitors see
The embedded carousel shows your curated X testimonials — real profile photos, usernames, tweet text, and links back to the original posts on X. It scrolls horizontally within the Notion page.
Testing before publishing
Notion's embed rendering depends on the source URL's oEmbed support. Test in your Notion workspace before publishing the page. If the embed renders as a plain link rather than a carousel, it means Notion's oEmbed does not recognize the URL format. In that case, fall back to Method 2 (individual tweet embeds) or consider switching to a dedicated landing page tool.
When this works
- You have genuine public X replies you want to display as a carousel
- The LaunchWall embed URL renders correctly in Notion's Embed block
- You want verified testimonials that link back to original posts
The Honest Assessment of Notion as a Landing Page
Notion public pages are an excellent zero-cost starting point. For a pre-launch waitlist, a portfolio, or an MVP product page, they work fine. But they are built on a document editor — the platform was never designed for conversion-optimized landing pages.
If testimonials are important to your conversion rate, Notion is a constraint. The column layout is not responsive. Tweet embeds are inconsistent. iFrame rendering depends on oEmbed support you cannot control.
If you are getting meaningful traffic and conversions matter, the practical move is to migrate to a dedicated landing page tool (Framer, Carrd, Webflow, or even a simple HTML page) where you have full control over the embed. LaunchWall's iframe code works on any of those platforms without the limitations Notion imposes.
For now, if Notion is what you have: use Callout blocks for 2 to 3 static quotes, and try the embed method for a carousel. Get something up. You can improve the platform later.
LaunchWall is built for the founder who already has social proof on X and wants it live today — on whatever platform they are using. The $1 trial takes 15 minutes.