-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build-time state can be user or "segment" specific, and it's actually easy to setup #295
Comments
This is a really nice pattern, and one I've considered in the past as well, but the problem is that static content is hosted by frameworks in opaque, but accessible, URLs. To do this, you would have to add authentication middleware to block access to certain parts of the Do you have another way around this? I don't see that issue mentioned in your article (which was great by the way!). |
Glad you liked it! |
Understood, right now Perseus doesn't have good support for middleware beyond customising the server used to host the app, but v0.5.x will include this, and I'd be happy to look at something then to make this approach more ergonomic at a framework-level, maybe even with first-class support --- this would certainly be possible by checking a JWT in a cookie or similar, although that limits the auth patterns this could be used with. This will probably be a plugin or otherwise separate crate, but we'll see how the final middleware API ends up looking! I'll leave this open for now. |
This issue is reporting a bug in the documentation.
The user described the issue as follows:
I wanted to point out an issue regarding Perseus understanding of static/build-time rendering:
"When you generate state at build-time, you're generating it without knowledge of who will be using it. For instance, you can't generate personalized dashboard pages at build-time, because you don't know yet who your users are."
This is similar to what you could have found in Gatsby or Next.js documentation in the past. Despite being a common take, this however never has been true, counter-example are as simple as statically rendering translated content.
User-specific content is of course usually not something you want to do statically (though it's doable, including personalized dashboards), however group specific, or what I call "segment-specific" rendering in the marketing sense of "segment", is totally doable and even a good practice.
You can achieve it very simply by adding a URL redirection/rewriting server in front of your page.
I invite you to read my work on "Segmented Rendering" which describes this pattern:
https://www.smashingmagazine.com/2022/07/new-pattern-jamstack-segmented-rendering/
There are also resources at the bottom with more specific takes (the equivalence between this approach and HTTP caching ; how to scale to multiple parameters with the "megaparam").
Hope this will help in your journey!
Feel free to reach me out at [email protected] if you want to discuss the subject further
Best regards
Tribble internal data
dHJpYmJsZS1yZXBvcnRlZCxDLWRvY3MsQy1idWcsQS13ZWJzaXRlLWRvY3M=
The text was updated successfully, but these errors were encountered: