You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: guide/features.md
+14
Original file line number
Diff line number
Diff line change
@@ -8,28 +8,40 @@ Picard.js is your comprehensive solution for orchestrating micro frontends, prov
8
8
9
9
Picard.js is designed to be versatile and adaptable across various environments. Whether you're working in a browser, Node.js, Deno, or Electron, Picard.js seamlessly orchestrates micro frontends, ensuring consistent performance and compatibility.
10
10
11
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/develop/examples/08-ssr-tractor/package.json)
12
+
11
13
## Multi Format
12
14
13
15
With Picard.js, you can integrate and manage multiple micro frontend formats effortlessly. It supports Module Federation, Native Federation, Pilets, and more, providing flexibility and ease of use for diverse development needs.
14
16
17
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/10-dependencies-sharing/index.html)
18
+
15
19
## Multi Framework
16
20
17
21

18
22
19
23
Picard.js excels at integrating various frameworks, including single-spa, HTML fragments, and web components. This multi-framework support allows you to choose the best tools for each part of your application, fostering innovation and efficiency.
20
24
25
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/develop/examples/06-static-page-single-spa/index.html)
26
+
21
27
## Error Handling
22
28
23
29
Picard.js takes the hassle out of managing errors. It automatically handles errors across your micro frontends, ensuring a smooth and uninterrupted user experience while reducing the need for manual error management.
24
30
31
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/06-static-page-single-spa/mfs/red/src/Product.jsx#L87)
32
+
25
33
## Loose and Strong Coupling
26
34
27
35
Picard.js supports both loose and strong coupling of micro frontends. Utilize a micro frontend discovery service for loose coupling or specify script URLs directly for strong coupling, akin to module federation, allowing you to tailor the integration to your specific requirements.
28
36
37
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/develop/examples/02-static-page-feed/index.html#L10)
38
+
29
39
## Optional Routing
30
40
31
41
Picard.js provides robust routing capabilities, whether you need client-side or server-side routing. This flexibility enables you to design your application's navigation in the most efficient and effective way possible.
32
42
43
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/develop/examples/05-static-page-with-routing/index.html#L11)
44
+
33
45
## Debugging
34
46
35
47
Debugging with Picard.js is straightforward and integrates seamlessly into your existing development workflows. It supports native debugging processes and extends compatibility with micro frontend debugging utilities such as the [Piral Inspector](https://github.com/smapiot/piral-inspector), enhancing your ability to identify and resolve issues quickly.
@@ -39,3 +51,5 @@ Debugging with Picard.js is straightforward and integrates seamlessly into your
Picard.js facilitates the creation of island architectures, enabling server-side rendered (SSR) applications that can hydrate and continue on the client side. This approach optimizes performance and user experience, combining the best of SSR and client-side rendering.
54
+
55
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/develop/examples/09-islands-netflix/package.json)
Copy file name to clipboardExpand all lines: guide/variants/browser.md
+8
Original file line number
Diff line number
Diff line change
@@ -62,3 +62,11 @@ When Picard.js starts it will look for a script tag with the `type` set to `pi-s
62
62
```
63
63
64
64
The provided state must match the format of Picard's internal state. One way to get this is to retrieve an export of the internal state, e.g., using the `readState()` function on `window.picard`.
65
+
66
+
::: warning
67
+
The provided state is not type-checked. As a result, any wrong or unexpected input here might lead to some undefined behavior later on.
68
+
69
+
Always just take the state as it was exported via `JSON.stringify(picard.readState())` as input for a `pi-state` script.
70
+
:::
71
+
72
+
Ideally, you don't use this thing directly, but rely on Picard.js doing it implicitly, e.g., when using SSR with an islands architecture model.
Copy file name to clipboardExpand all lines: guide/why.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ One of the reasons why Picard.js might be interesting for you is that it allows
14
14
15
15
For owners of existing micro frontend solutions the integration of other micro frontends will no longer break due to technology incompatibilities. If two micro frontends have been written - one using Module Federation and another one using Native Federation - you will no longer require some frankenstein solution, but instead can just embed both; and it will just work.
16
16
17
-
👉 Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/10-dependencies-sharing/index.html)
17
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/10-dependencies-sharing/index.html)
18
18
19
19
### Error Handling
20
20
@@ -24,7 +24,7 @@ Error handling has been one of the largest problems in solutions like Module Fed
24
24
25
25
With Picard.js error handling is integrated from the ground up. You reference an invalid component? Nothing bad will happen. The component crashes or does not accept the given inputs? The solution will just continue - if you care you can pick up the error and display something else instead.
26
26
27
-
👉 Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/06-static-page-single-spa/mfs/red/src/Product.jsx#L87)
27
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/06-static-page-single-spa/mfs/red/src/Product.jsx#L87)
28
28
29
29
### Technology Agnostic
30
30
@@ -34,7 +34,7 @@ A design goal of Picard.js was to work without any tooling. As such owners of ex
34
34
35
35
One advantage of this approach is that - out-of-the-box - Picard.js is technology agnostic. While other approaches require specific tooling to work we don't need this here. As a result, Picard.js can also be used with tooling that is rather micro frontend hostile such as the Angular CLI. As long as there is some HTML somewhere you can add the script and use the web components.
36
36
37
-
👉 Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/01-static-page/index.html)
37
+
:point_right: Want to see this in action? [Example online](https://github.com/picardjs/picard/blob/main/examples/01-static-page/index.html)
0 commit comments