diff --git a/README.md b/README.md index ec50e816..d9ac28f0 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,23 @@ Tuono (Italian word for "thunder", pronounced /2 Oh No/). Why Tuono? Just a badass name. +## Introduction + +NodeJs/Deno/Bun are the only tools that make a React app fullstack right? (TLDR; no) + +Techically the only thing React needs to do on the backend side is to render the HTML and returns it in the response payload and for it just a JS engine is required. +Why then we need to bring the entire runtime? + +Tuono wants to prove that it's possible creating fully fledged react applications without the need to host them on a JS runtime server leveraging the best of the two worlds: +super powered server and crazy cool development experience. + +## Requirements + +- rust +- cargo +- node +- pnpm (other package managers support will be added soon) + ## Installation ``` @@ -19,7 +36,7 @@ cargo install tuono ## Create a new project ``` -tuono new +tuono new [NAME] ``` ## Development @@ -27,30 +44,33 @@ tuono new ``` tuono dev ``` - ## Features -- Rust based server side rendering -- FS routing -- CSS modules -- Hot Module Reload -- Multi thread backend + +- [x] FS routing +- [x] Hot Module Reload +- [x] CSS/SCSS modules +- [x] Rust based server side rendering +- [x] Multi thread backend +- [x] Development environment +- [ ] Create custom APIs +- [ ] Image optimization +- [ ] Build optimization + +> 💡 Any suggestion or improvement is strongly appreciated ## Folder structure ``` -- .tuono -- public/ +| public/ - src/ -| - routes/ -| | - api/ + | routes/ + | styles/ +| package.json +| Cargo.toml +| .gitignore +| tsconfig.json ``` -```tsx -// Data is passed by the loading function -const IndexPage = ({data, isLoading, isError}) =>

Index Page

+## License -export const Route = createFileRoute({ - loader: (params) => fetchApi(params), - component: IndexPage -}) -``` +This project is licensed under the MIT License.