fresh icon indicating copy to clipboard operation
fresh copied to clipboard

Roadmap

Open lucacasonato opened this issue 2 years ago • 8 comments

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

lucacasonato avatar Jul 30 '22 15:07 lucacasonato

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 avatar Aug 01 '22 13:08 pazguille

@pazguille See https://github.com/denoland/fresh/issues/565

lucacasonato avatar Aug 01 '22 14:08 lucacasonato

@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?

slim-hmidi avatar Aug 01 '22 19:08 slim-hmidi

I think having a better testing story would be good. Please open a separate comment if you have ideas.

lucacasonato avatar Aug 01 '22 19:08 lucacasonato

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

rottenpen avatar Aug 23 '22 02:08 rottenpen

Something like Fluent that supports more natural-sounding translations might be a good fit as well.

jed1976 avatar Aug 24 '22 20:08 jed1976

@rottenpen Can you open a separate issue so we can discuss it there?

lucacasonato avatar Aug 26 '22 20:08 lucacasonato

maybe this is a killer feature https://github.com/floodfx/liveviewjs https://github.com/beenotung/ts-liveview

sunw31 avatar Sep 09 '22 01:09 sunw31

maybe this is a killer feature

God, please, no more jsp-like things.

albnnc avatar Sep 14 '22 08:09 albnnc

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 avatar Sep 17 '22 18:09 Industrial

@Industrial For route prefetching we’d probably need client-side routing first… https://github.com/denoland/fresh/issues/287

vwkd avatar Oct 07 '22 12:10 vwkd

@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

brocococonut avatar Oct 22 '22 13:10 brocococonut

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

tlgimenes avatar Nov 10 '22 15:11 tlgimenes

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!

paudrow avatar Dec 17 '22 13:12 paudrow

lmao, this lib is dead af, almost every commit since October last year has been showcase additions

sebastiancarlos avatar Jan 15 '23 20:01 sebastiancarlos

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/

Industrial avatar Jan 16 '23 11:01 Industrial

Regarding session handling. I just made a prototype of it. Please check my gists https://gist.github.com/arisris/05284be5e78649b7a11eb443e22ee615 . Is that the concept?

arisris avatar Feb 07 '23 16:02 arisris

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.

crispinb avatar Mar 03 '23 00:03 crispinb

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:

nesterow avatar Mar 04 '23 15:03 nesterow

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

jlucaso1 avatar Jun 16 '23 04:06 jlucaso1

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.

marvinhagemeister avatar Jul 19 '23 17:07 marvinhagemeister