Built an app with Lovable or Bolt and need a brochure, catalog, or report that readers can actually flip through? This tutorial shows the exact prompts, React component, and iframe settings to embed a flipbook without breaking your layout or mobile view.
You prompted your way to a working app in an afternoon, and now you need to show a brochure, a product catalog, or a 60-page report inside it. A plain PDF link feels clunky, and a raw PDF viewer looks dated. The cleanest fix is a page-turning flipbook, and the fastest way to build one is with Flipbooks AI, then drop it into your Lovable or Bolt project with a few lines of code or a single chat prompt.
This tutorial walks through the whole process: converting the PDF, grabbing the embed code, asking Lovable or Bolt to place it, and fixing the usual iframe headaches. Every snippet is copy-ready.
Why Flipbooks Fit AI-Built Apps
AI app builders generate React components quickly, but they do not generate polished document viewers. When you ask for "a PDF viewer," you often get a bare <embed> tag that breaks on mobile, hides page navigation, and offers no analytics.
A flipbook solves three problems at once:
Readability: pages turn like a real publication, with zoom, thumbnails, and full-screen mode.
Speed: the content loads from a hosted viewer, so your app bundle stays small.
Control: you update the PDF once and every embedded copy refreshes, with no redeploy.
Where This Works Best
Founders using these builders tend to need documents in a handful of places:
A pricing or sales deck on a landing page
A downloadable product catalog inside a store dashboard
A client portal that shows monthly reports
A documentation or onboarding page with a manual
💡 Pro tip: If the document changes often, such as a price list, a hosted flipbook beats bundling a PDF into your repository. You skip the commit, the build, and the cache problem.
Lovable vs Bolt for Embeds
Both tools produce React and Vite projects, so the embed method is nearly identical. The differences are in how you instruct the AI and where you edit files.
Feature
Lovable
Bolt
Stack generated
React, Vite, Tailwind, Supabase
React or other frameworks, Vite, Tailwind
Best way to add embed
Chat prompt or edit in code view
Chat prompt or edit in file tree
Live preview
Built-in preview pane
WebContainer preview
iframe support
Full support
Full support
Deploy target
Lovable hosting or custom domain
Netlify and others
Needs a build step
No manual step
No manual step
The takeaway: you do not need a special plugin for either platform. A standard iframe works in both.
Step 1: Build the Flipbook First
Before touching your app, create the flipbook itself. This takes about two minutes, and the PDF to Flipbook Converter handles the heavy lifting.
Click to create a new flipbook and upload your PDF.
Wait for conversion. Pages become high-resolution images with a smooth page-turn effect.
Preview the result and check that fonts and images look sharp.
Customize Before You Embed
Styling now saves editing later. Inside the editor you can adjust:
Branding: add your logo and pick background colors that match your app theme.
Page effects: choose the flip animation speed and shadow depth.
Multimedia: attach video or audio to pages where it helps.
Toolbar: hide buttons you do not need so the viewer feels native to your interface.
✅ Best practice: Match the flipbook background to your app's section background. A mismatched gray box inside a white page is the number one reason embeds look pasted on.
Pick Your Privacy Settings
Decide who can see the document. Public links are fine for marketing material. For client reports, enable password protection so only people with the code can open it. Remember that the password lives on the flipbook, not in your app, so you do not need to build extra auth for it.
Step 2: Copy the Embed Code
Open the share panel of your finished flipbook and select the embed option. You get an iframe snippet similar to this:
If you want a deeper look at the options, the Embed Flipbook on Website tool page lists every sharing method, including direct links and QR codes.
Convert HTML to JSX
React does not accept every HTML attribute as written. If you paste the snippet into a component by hand, change these:
HTML version
React (JSX) version
allowfullscreen
allowFullScreen
style="border: none;"
style={{ border: "none" }}
frameborder="0"
frameBorder={0}
class="..."
className="..."
Skip this conversion and your app may show a console warning or a blank frame. If you ask the AI builder to do the work, it handles the conversion for you.
Step 3: Add It in Lovable
You have two paths in Lovable: describe the result in chat, or paste the code yourself.
The Prompt Method
Open the chat and send something like this:
Add a section titled "Our Catalog" to the home page. Inside it, embed this
iframe responsive at full width with a 16:10 aspect ratio, no border,
rounded corners, allow fullscreen, and lazy loading:
<iframe src="https://flipbooksai.com/embed/YOUR-FLIPBOOK-ID"></iframe>
Lovable will usually create a new component and import it into your page. Review the preview, then publish.
The Component Method
For more control, create a reusable component. This version accepts the flipbook ID as a prop so you can place several documents across the app:
The padding trick keeps a 16:10 ratio at any width, which prevents the iframe from collapsing on narrow screens.
Step 4: Add It in Bolt
Bolt follows the same pattern. Open the chat and describe what you want, or open the file tree, create src/components/FlipbookEmbed.tsx, and paste the component above.
A Reliable Bolt Prompt
Create a FlipbookEmbed component that takes an id and title prop and renders
an iframe pointing to https://flipbooksai.com/embed/{id}. Make it responsive
with a 16:10 aspect ratio, rounded corners, lazy loading, and fullscreen
support. Use it on the Resources page.
Bolt will wire up the import and show the result in the preview. If the preview shows a blank box, do not panic. Often it is a preview sandbox quirk, so open the deployed URL before assuming the code is wrong.
Embedding Several Flipbooks
For a resource library, store your documents in an array and map over it:
💡 Pro tip: Ask the builder to load these IDs from your database table. When you add a row, a new flipbook appears with no code change.
Fixing Common Embed Problems
Even a clean snippet can misbehave. Here are the issues readers hit most often and the fastest fix for each.
Problem
Likely cause
Fix
Blank frame
Wrong flipbook ID or private link
Recheck the ID and the sharing settings
Frame too short
Fixed pixel height
Use the aspect ratio wrapper
No fullscreen button
Missing attribute
Add allowFullScreen
Console warning in React
HTML attributes in JSX
Convert to camelCase props
Page jumps while loading
No reserved space
Wrap in a ratio container
Blocked by browser
Mixed content (http vs https)
Always use the https URL
Mobile Layout Tips
Over half of visitors will open your app on a phone. A flipbook is mobile-responsive on its own, but your container still matters:
Use width="100%" and never a fixed pixel width.
Give the frame at least 450px of height on small screens, or switch to a taller ratio such as 4:5.
Keep surrounding padding small so the pages stay readable.
Test touch gestures on a real device, not only the desktop preview.
⚠️ Warning: Do not stack the iframe inside a container with overflow: hidden and a fixed height. It clips the toolbar and makes the document feel broken.
Performance Tweaks
An embedded viewer is lightweight, but several on one page add up. Add loading="lazy" so frames load only when scrolled into view. For a page with many documents, show a cover thumbnail first and load the iframe after a click. Your Lighthouse score will thank you.
Real-World Examples
Here is how different founders use this setup.
A boutique owner builds a storefront in Lovable and embeds a seasonal lookbook using the Interactive Lookbook Designer. Shoppers flip through outfits without leaving the page.
A SaaS founder uses Bolt to ship a client portal and embeds quarterly summaries made with the Report Flipbook Creator, protected by password.
A restaurant group adds a live menu page built from the Restaurant Menu Creator. Prices change in one place and the app updates instantly.
A freelance photographer publishes a portfolio using the Photography Portfolio tool inside a Lovable-built personal site.
Once the embed works, a few platform features make it more useful inside an app.
✅ No watermarks, ever. Your branding stays front and center.
✅ Password protection for private client material.
✅ Embedded video and audio inside pages for richer demos.
✅ Offline downloads for readers who want a copy.
✅ Analytics and lead generation on the Professional plan, so you can see which pages hold attention and capture emails. Check the pricing plans to compare tiers.
✅ Unlimited flipbooks on the Standard plan and above, handy if your app hosts many documents.
A Quick Pre-Launch Checklist
Flipbook preview looks sharp on desktop and phone.
The embed uses the https URL.
The iframe has a descriptive title for accessibility.
The container uses a responsive ratio, not a fixed pixel height.
Password or privacy settings match the audience.
You tested the live site, not only the builder preview.
Next Steps for Your App
You now have everything needed: a converted flipbook, a reusable React component, and prompts that work in both builders. The whole job takes less than fifteen minutes, and the result looks far more professional than a download link.