Open dai-shi opened 1 year ago
How about actions? I was thinking about developing a plugin for vite a while ago, Since I think it's something similar to telefunc while developing this tool with Rom Brillout.
Actions (what I call "React Server Functions") are already implemented. I wouldn't say it's complete though.
Nice!
Anecdotally there seems to be a fairly large gap between waku's server actions and Next.js' implementation - I suppose this is expected because server actions are completely experimental in React right now.
IMO it makes sense to mark them as such (as an opt-in config option) before releasing v1.
I don't think our RSF (react server function) isn't that experimental, meaning it's the same level as react server component. I suppose Next's server action does more experimental things.
That said, I would like to revisit our approach anyway, which will require some feedbacks from collaborators/contributors/users.
In any case, unless we have an official doc or RFC from React, we wouldn't be able to finalize our API, which means v1 probably won't land until then.
The problem with shipping server actions now (or before they're stable in React) is that the semantics are not specified yet. For example Next.js server actions are queued, it's impossible to execute them concurrently - not the case in Waku. There is also the integration with transitions, not sure if this is implemented in Waku.
IMO need to wait for a React RFC but only for server actions, there is already an RFC for server components and they're designated at stable by the React team.
This is why I think waku server actions behind a flag is the right way forward.
Yeah, if we would release v1 before the callserver RFC, we should hide it behind a flag. For now, just noting it's not finalized would be enough. But in that sense, everything isn't finalized.
@dai-shi How about SSG? And change docs website to static files.
docs website is already static files. we generate static files on build (SSG is a vague word, as people expect to generate HTML files.)
IMO it makes sense to mark them as such (as an opt-in config option) before releasing v1.
Having been working on #124, I'm getting more skeptical about the stability. (What is currently working may not work in the future.) My gut feeling is that we should wait releasing v1 before React 18.3.0 or 19 is out.
So waku will not use react-server-dom-vite
in the future?
So waku will not use
react-server-dom-vite
in the future?
I think it's up to upstream. currently react official repo only has webpack and turbopack support.
BTW, is react-server-dom-esm an alternative?
It depends on what react-server-dom-vite
and react-server-dom-esm
will be like.
Hope the esm one is published: https://github.com/facebook/react/issues/27197
Integrate React Float
@dai-shi
What is React Float? What's the relation with no index.html
?
Integrate React Float
@dai-shi What is React Float? What's the relation with
no index.html
?
I hope React docs will cover that soon. It will be called something like hoistable resource/elements.
It's technically not "integration". As #289 may tell, we no longer use index.html
and add <title>...</title>
in components, for example, which is possible because of hoistable elements.
How about initializing git setting? (git init
and then recomanded .gitignore
, etc)
I think it's a bit low-priority but It seems like good to be at waku@v1
.
https://github.com/dai-shi/waku/issues/24#issuecomment-1655694291
@tom-sherman Do you know any updates? I guess it's unlikely that the React docs specify such details.
Explore Jotai integration
@dai-shi Is this still something that needs exploration?
If yes, what are some things that you'd be concerned about with using jotai + waku?
I suspect some exploration has been done already though, considering the waku.gg docs use example code with jotai as the state library.
I suspect some exploration has been done already though, considering the waku.gg docs use example code with jotai as the state library.
The example in docs is what's possible now. What I would like to explore is to use atoms on the server too (that is connected to the client behind the scenes.) So, it's a very tight integration (and one reason that I started developing my own framework.)
I have a goal but don't have the implementation idea yet. #11 is an old attempt.
Anyway, there are so many things to do before working on it.
@dai-shi does https://github.com/nksaraf/vinxi help with this roadmap?
I don't believe so. Waku's design conflicts with Vinxi's design. So, it's unlikely that we use it at any time soon. We don't know the far future. Related discussion: #522
Here are tasks that I would like to finish before v1.
Previous Versions
## -v0.14.0 - [x] Server bundling #21 - [x] New API as middleware #23 - [x] RSC-only SSR (or opt-in SSR) #66 - [x] Improve HTTP errors (404 instead of 500, especially with router) #76 - [x] Support interacting with server (`req` and `res`) #86 - [x] CSS Modules on server #98 #105 - [x] Server bundling issues #79 ## v0.15.0 - [x] fix waku/router #85 #104 - [x] Revisit `entries.ts` API (requires to revisit waku/router) #84 - [x] Revisit `mutate()` api and maybe `serve()` api #119 ## v0.16.0 - [x] waku/router `[slug]` support #133 - [x] SWR #96 ## v0.17.0 - [x] Reconsider SSR (give up RSC-only SSR and go with full SSR) #147 - [x] Node 20 #159 - [x] Refactor `rscPrefix` config to `rscPath` #160 ## v0.18.0 - [x] Support running on the edge - [x] Vite 5 #207 ## v0.18.1 - [x] css support #240 - [x] deploy support #263 #267 #271 ## v0.19.0 - [x] Utilize hoistable elements #289 - [x] Renew waku/router API #246 - [x] Environment variables #292 - [x] Improve Vercel deployment - [x] Config file `waku.config.ts` support in cli.ts #368 - [x] Improve CLI and templates ## v0.19.1 - [x] fix issues with deployment #395 #398 - [x] fix style HMR #411 #414 ## v0.19.2 - [x] Dev improvement #427 #439 #110 - [x] More support for deployments #422 #419 - [x] router improvement #424 ## v0.19.3 - [x] #448 - [x] #113 - [x] Better Netlify support #465 ## v0.19.4 - [x] #493 - [x] Support customizing 404 #497 - [x] #498 - [x] #417 - [x] #514 - [x] #418 ## v0.20.0 - [x] #513 - [x] Enable SSR by default (no `--with-ssr` option) - [x] `getContext` from `waku/server` - [x] Conditional SSR #534 #569 - [x] File-based router #572 #575 - [x] Managed mode (no `main.tsx` and `entries.tsx`) #580 - [x] new waku/router apis #593 #613 ## v0.20.1 - [x] Support omitting file extensions in import statements #629 - [x] Support `.js` and `.jsx` extensions #633 #636 - [x] Support trailing slash with static sites (SSG) #637 - [x] Bug fixes #631 #651 #639 #452 ## v0.20.2 - [x] Improvements #666 #668 #672 #675 #694 #689 #696 - [x] Bug fixes #673 #697 #678 #682 #687 ## v0.21.0 - [x] Transform files on the server (DEV) #762 #707 - [x] Support importing server files directly from client files #708 #714 - [x] Support server actions in server components #729 #785 - [x] Router improvements #799 #746 - [x] Cloudflare Pages support #795 - [x] Support customizing html attrs & head with SSR #825 - [x] DEV improvements #833 ## v0.21.1 - [x] Minor improvements #848 #851 #850 #852 ## v0.21.2 - [x] Improve build system (mostly internally, plugin system) #860 #866 - [x] Bug fixes #864 #870 ## v0.21.3 - [x] Improve build system (mostly internally, plugin system) #876 #877 #878 #879 #880 #881 #882 - [x] Improve router #854 #886 #895 #917 - [x] Misc #914 #808 ## v0.21.4 - [x] Internal re-architecture (customizable entries with router) #947 #951 #961 - [x] Router improvement #952 #949 #966 ## v0.21.5 - [x] Bug fixes #979 #980v0.21.6
991
963
989
v0.21.7
997
1003
1001
941
998
v0.22.0
waku.config.ts
config file (novite.config.ts
)v1-alpha
423
977
816
react-server
andreact-client
directlyv1-beta
272
v1-final