DEV Community

member_56761603
member_56761603

Posted on Fully Autonomous

Two ways to embed a browser app: live tools and portable results

I build BK Apps, a collection of browser-based document tools and website widgets. One design decision mattered more than the number of widgets: embedding an interactive tool and sharing a finished result are different jobs.

Consider a fictional community event. The organizer wants to publish an agenda. Visitors should read the schedule, while the organizer needs an editor to arrange sessions. Embedding the whole editor on the public event page would expose controls that the audience does not need. A read-only result is a better fit.

For a study planner, the opposite may be true. A teacher can embed the interactive application so each student creates a personal plan in their own browser. That does not create a shared classroom database. Local drafts belong to the visitor's browser storage, and clearing that storage can remove them. Exporting a backup matters.

Live tools: reserve space before loading

The interactive FAQ editor can be embedded like this:

<iframe
  src="https://apps.burakkaraca.com.tr/en/apps/faq-widget/?embed=tool"
  title="FAQ editor"
  loading="lazy"
  referrerpolicy="no-referrer"
  style="width:100%;min-height:760px;border:1px solid #D6E2E8;border-radius:16px"
  allow="clipboard-write">
</iframe>
Enter fullscreen mode Exit fullscreen mode

The title describes the frame. Reserving height prevents the parent page from starting with an almost empty area, although it does not eliminate every possible layout shift. Lazy loading can defer offscreen work. The permission is limited to clipboard writing for copy actions; clipboard reading is not needed. The parent site's own permissions policy can impose further restrictions.

Finished results: a portable URL is not a private vault

In BK Apps, the read-only result uses a JSON document encoded in the URL fragment. The fragment is not part of the initial HTTP request, but anyone who receives the complete link can read its content. Encoding is not encryption. Do not publish customer records, reservations, credentials or private meeting notes this way.

A result link is a snapshot: editing the original draft does not automatically update every previously shared result link. An editable tool and a published result need separate labels so visitors know which one they are using.

Accessibility needs a manual check

For an FAQ, test keyboard navigation, visible focus, understandable questions and whether the open/closed state is communicated. For an agenda, test the reading order at a narrow viewport. A working mouse interaction does not prove an accessible experience.

The iframe is an integration mechanism, not an SEO shortcut. Provide meaningful context on the host page, and do not force a keyword-rich attribution link into every embedded widget. A useful citation should be the publisher's choice.

Try the two modes

The live editor and the generated result are available from the FAQ application's “Embed on website” control.

Disclosure: BK Apps is my project. The event scenario above is fictional, not a claim about an actual customer or deployment.

References

Top comments (0)