fresh
fresh copied to clipboard
Roadmap
This issue exists as a continually growing roadmap for fresh. It is a rough outline of the features I want to add to fresh in the future. Features are seperated into two sections: short term (within the next month), and longer term (further than 1 month out).
Short term
- [ ] More advanced data serialization for island props (support signals + jsx elements as props)
- [ ] Deprecate
<Head>
and instead allow<head>
anywhere in the component tree
Longer term
- [ ] Extend plugin system to support injecting middlewares, islands, and routes
- [ ] Introduce a first class type safe data fetching system for islands
- [ ] First class session handling
- [ ] First class data persistence
- [ ] Improved error handling for server side rendered pages (404 pages etc)
- [ ] Built in i18n support
- [ ] Lazy loaded islands
- [ ] Better testing story
Done
- [x] A plugin system for styling integrations
Hi @lucacasonato, what do you have in mind for Lazy loaded islands? I would like to work on this feature. I thinking options like:
-
whenIdle
// requestidlecallback -
whenVisible
// IntersectionObserver
@pazguille See https://github.com/denoland/fresh/issues/565
@lucacasonato is there any plan for creating a library or extension for testing the UI components? Or it should be another project separate for testing UI components?
I think having a better testing story would be good. Please open a separate comment if you have ideas.
hi @lucacasonato , I want to be responsible for i18n supporting, can you be my mentor?
this is my rfc for i18n : https://github.com/rottenpen/fresh/commit/e208eef77a40bb00543a308b7e0bc403968daa56
- This case ⬆️ has the internationalized language switch between zh-CN and en-US
- use
i18n-runtime
to get the i18n content -
i18n.config.js
is the options for fresh/plugins/i18n.ts
Something like Fluent that supports more natural-sounding translations might be a good fit as well.
@rottenpen Can you open a separate issue so we can discuss it there?
maybe this is a killer feature https://github.com/floodfx/liveviewjs https://github.com/beenotung/ts-liveview
maybe this is a killer feature
God, please, no more jsp-like things.
Hi! Is there a plan for prefetching of routes? https://web.dev/route-prefetching-in-nextjs is a good explanation of how this is implemented in Next.js.
@Industrial For route prefetching we’d probably need client-side routing first… https://github.com/denoland/fresh/issues/287
@rottenpen @jed1976 in the meantime for i18n, I created a fairly simple translation plugin :) Let me know if it helps or if you have any questions! git:brocococonut/freshlate deno:freshlate
Hi! Is there a plan for prefetching of routes? https://web.dev/route-prefetching-in-nextjs is a good explanation of how this is implemented in Next.js.
Hi @Industrial , I've developed a small fresh plugin for adding nextjs-like prefetching using Google's quicklink library. Check it out at: https://deno.land/x/prefetch
Introduce a first class type safe data fetching system for islands
This means something similar to how tRPC can be used with NextJS, correct? Like how it's used in create-t3-app. If so, this would be awesome!
lmao, this lib is dead af, almost every commit since October last year has been showcase additions
lmao, this lib is dead af, almost every commit since October last year has been showcase additions
"Hey guys look at me, I make nothing and everyone should give me the best and latest shit for free and make it snappy or else my face goes :("
Where is your "lib"? Mine is here, I think it was a good attempt, and I learnt a lot from UltraJS: https://github.com/Industrial/reflex
This is another one in the deno space: https://ultrajs.dev/
Regarding session handling. I just made a prototype of it. Please check my gists https://gist.github.com/arisris/05284be5e78649b7a11eb443e22ee615 . Is that the concept?
This is a tricky question to ask, as it risks being another of the 'any updates?' comments that plague gh issues and (worse) spam so many of us subscribing to them. Due apologies to anyone subscribed here who dislikes this kind of comment.
But then again this issue is explicitly a roadmap, so I think it's fair to ask here, given the relative paucity of recent substantive progress in the repo as a whole, whether the overall intent for Fresh is still something along the lines specified in this roadmap?
Taking it as a given that there are no guarantees, it would be useful to have some feedback about the current level of commitment towards maintaining and enhancing Fresh.
I was recently looking for a way to use shared context in Fresh so that the useContext
is available in the islands. I have a plugin in test: the source.
My code is somewhat hacky but might be useful. Having something similar in Fresh would be nice.
About i18n. Is this really something that Fresh needs out of the box? This is not so hard to implement with preact itself. For example, I use a simple hook and context. It is a bit underdocumented but really simple to use:
Hi, @lucacasonato A reminder to update/check this:
More advanced data serialization for island props (support signals + jsx elements as props)
And a suggestion to add compression support like GZIP
Closing this as we're switching to a monthly iteration plan. The current plan at the time of this writing can be found here #1485.