Static storefronts
Each demo page behaves like a different customer website, even though they live in this same Astro repo.
Embeddable AI sales assistant
This repo now acts as a SaaS prototype: static demo storefronts load the same widget, pass a different store ID, and call a backend that keeps catalogue, inventory, settings, and recommendations separated by customer.
<script>
window.AIWidget = {
storeId: "northpoint_tire",
apiBaseUrl: "https://api.nortnt.com"
};
</script>
<script src="https://demo.nortnt.com/widget.js"></script> What this proves
Each demo page behaves like a different customer website, even though they live in this same Astro repo.
The browser downloads one `widget.js`, injects a chat bubble, reads `storeId`, and calls the SaaS API.
The backend chooses the right settings, catalogue, and recommendation logic from the incoming store ID.
Runtime flow