SwiftPage architecture
System overview
SwiftPage is a Shopify embedded app that builds landing pages with a visual drag-and-drop editor. Page layouts are represented as structured data while merchants edit them, then published to Shopify and rendered as native Liquid, HTML, and CSS by a Theme App Extension. SwiftPage does not inject a global JavaScript bundle into the storefront.- Merchants use the embedded editor inside Shopify admin.
- Authenticated app requests are tied to the current shop.
- Publishing makes the page content available to Shopify and its theme app block.
- The theme app block renders the published page on the storefront.
Rendering decision
Pages render through a Liquid app block rather than JS-injected widgets:- Styles load only where the app block is present.
- Interactive behavior loads only for sections that need it.
- Images and iframes use
loading="lazy"; the carousel is CSSscroll-snap. - Uninstalling the app removes the app block, leaving no ghost code.
Content delivery
Publishing copies page content and SEO details to Shopify-native page data. The Theme App Extension reads the published data and retains compatibility with pages published by earlier versions. When required Shopify permissions are missing, the publish action prompts the merchant to reauthorize before it makes changes. Draft changes remain in the editor until publishing succeeds. The storefront renders the published copy held by Shopify.Layout JSON
The layout object drives both the editor and the storefront renderer:global:maxWidth,fontFamily,primaryColor,secondaryColor,backgroundColor,textColor.sections: an array of{ id, type, settings, mobile?, visibility? }.
hero, rich_text, image, image_with_text, product_feature, collection_grid, countdown, testimonials, newsletter, video, spacer, divider, custom_html, cro_widget, model_3d, and funnel_step.