---
title: "Discussion on \"Turning the Page:  Replacing single-spa with CollageJS\" | Hashnode"
description: "Discussion on \"Turning the Page:  Replacing single-spa with CollageJS\". Easily migrate from the legacy single-spa micro-frontend library to CollageJS, a simplified evolution."
url: "https://hashnode.com/posts/turning-the-page-replacing-single-spa-with-collagejs/6af6645586f0f7797790d3aa"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [Turning the Page: Replacing single-spa with CollageJS](https://webjose.hashnode.dev/turning-the-page-replacing-single-spa-with-collagejs?utm_source=hashnode&utm_medium=feed)

Easily migrate from the legacy single-spa micro-frontend library to CollageJS, a simplified evolution.

21h ago · 4 min read · webjose.hashnode.dev  
Read the article

-   [#microfrontend](https://hashnode.com/tag/microfrontend)
-   [#typescript](https://hashnode.com/tag/typescript)
-   [#web-development](https://hashnode.com/tag/web-development)

## Written by

[José Pablo Ramírez Vargas](https://hashnode.com/@webJose)

@webJose

  
[View profile](https://hashnode.com/@webJose)

Senior Software Developer @ Intel

## Responses 2

Markdown supported · ⌘↵ to post

[Tarun Sharma](https://hashnode.com/@101beardo)

[7h ago](https://hashnode.com/posts/turning-the-page-replacing-single-spa-with-collagejs/6af6645586f0f7797790d3aa/comment/6af72eb41eb3c0fde6bafc40)

Having mount as the only required method keeps the entry bar low, and an idempotent unmount is a good call. Two things teams usually run into with import map setups: version drift when two pieces externalize the same library at different versions, and one piece failing to mount and blanking the shell. Does the root project give an error boundary or fallback around a failed mount?

[José Pablo Ramírez Vargas](https://hashnode.com/@webJose)

[6h ago](https://hashnode.com/posts/turning-the-page-replacing-single-spa-with-collagejs/6af6645586f0f7797790d3aa/comment/6af72eb41eb3c0fde6bafc40#reply-6af738f57fd0d70b2c3dc90f)

Hello! The mounting project (be it root or not) will always throw any errors during the evaluation of the mount lifecycle chain. The shell blanking is a possibility. Error boundaries are framework things that developers may opt to use, but since they are framework-specific CollageJS doesn't include them by default. Fallbacks are in the same category: Not included because it is up to developers whether to use fallbacks.

Generally speaking, developers/teams should always externalize using the import map entries. The Vite plug-in @collagejs/vite-aim (the hidden plug-in) does this externalization using the root project's import map, minimizing the possibility of errors due to version differences.
