{"id":15061686,"url":"https://github.com/aoede3/taujs-server","last_synced_at":"2025-04-10T13:13:48.149Z","repository":{"id":255446975,"uuid":"852198942","full_name":"aoede3/taujs-server","owner":"aoede3","description":"taujs [ τjs ]  Universal Fastify + React 19 - CSR, SSR, Streaming SSR,  SPA, MPA, MFE, Plugin","archived":false,"fork":false,"pushed_at":"2025-03-11T21:49:15.000Z","size":239,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T04:49:36.887Z","etag":null,"topics":["csr","fastify","hydration","mfa","mfe","micro-frontend","react","spa","ssr","streaming","tsx","typescript","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aoede3.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-04T11:57:37.000Z","updated_at":"2025-03-11T21:49:12.000Z","dependencies_parsed_at":"2024-09-12T23:56:18.130Z","dependency_job_id":"ec0908c2-76f9-40bb-a8e8-3fad263b7ffb","html_url":"https://github.com/aoede3/taujs-server","commit_stats":null,"previous_names":["aoede3/taujs-server"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoede3%2Ftaujs-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoede3%2Ftaujs-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoede3%2Ftaujs-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoede3%2Ftaujs-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aoede3","download_url":"https://codeload.github.com/aoede3/taujs-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225653,"owners_count":21068078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csr","fastify","hydration","mfa","mfe","micro-frontend","react","spa","ssr","streaming","tsx","typescript","vite"],"created_at":"2024-09-24T23:23:41.267Z","updated_at":"2025-04-10T13:13:47.619Z","avatar_url":"https://github.com/aoede3.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @taujs/server\n\n`npm install @taujs/server`\n\n`yarn add @taujs/server`\n\n`pnpm add @taujs/server`\n\n## CSR; SSR; Streaming SSR; Hydration; Fastify + React 19\n\nSupports rendering modes:\n\n- Client-side rendering (CSR)\n- Server-side rendering (SSR)\n- Streaming SSR\n\nSupported application structure and composition:\n\n- Single-page Application (SPA)\n- Multi-page Application (MPA)\n- Build-time Micro-Frontends, server orchestration and delivery\n\nAssemble independently built frontends at build time incorporating flexible per-route SPA-MPA hybrid with CSR, SSR, and Streaming SSR, rendering options.\n\nFastify Plugin for integration with taujs [ τjs ] template https://github.com/aoede3/taujs\n\n- Production: Fastify, React\n- Development: Fastify, React, tsx, Vite\n\n- TypeScript-first\n- ESM-only focus\n\n## τjs - Developer eXperience\n\nIntegrated ViteDevServer HMR + Vite Runtime API run alongside tsx (TS eXecute) providing fast responsive dev reload times for both backend / frontend\n\n- Fastify https://fastify.dev/\n- React https://reactjs.org/\n- tsx https://tsx.is/\n- Vite https://vitejs.dev/guide/ssr#building-for-production\n\n- ViteDevServer HMR https://vitejs.dev/guide/ssr#setting-up-the-dev-server\n- Vite Runtime API https://vitejs.dev/guide/api-vite-runtime\n- ESBuild https://esbuild.github.io/\n- Rollup https://rollupjs.org/\n- ESM https://nodejs.org/api/esm.html\n\n## Development / CI\n\n`npm install --legacy-peer-deps`\n\n## Usage\n\n### Fastify\n\nhttps://github.com/aoede3/taujs/blob/main/src/server/index.ts\n\nNot utilising taujs [ τjs ] template? Add in your own ts `alias` object for your own particular directory setup e.g. `alias: { object }`\n\n### React 'entry-client.tsx'\n\nhttps://github.com/aoede3/taujs/blob/main/src/client/entry-client.tsx\n\n### React 'entry-server.tsx'\n\nExtended pipe object with callbacks to @taujs/server enabling additional manipulation of HEAD content from client code\n\nhttps://github.com/aoede3/taujs/blob/main/src/client/entry-server.tsx\n\n### index.html\n\nhttps://github.com/aoede3/taujs/blob/main/src/client/index.html\n\n### client.d.ts\n\nhttps://github.com/aoede3/taujs/blob/main/src/client/client.d.ts\n\n### Routes\n\nIntegral to τjs is its internal routing:\n\n1. Fastify serving index.html to client browser for client routing\n2. Internal service calls to API to provide data for streaming/hydration\n3. Fastify serving API calls via HTTP in the more traditional sense of client/server\n\nIn ensuring a particular 'route' receives data for hydration there are two options:\n\n1. An HTTP call elsewhere syntactically not unlike 'fetch' providing params to a 'fetch' call\n2. Internally calling a service which in turn will make 'call' to return data as per your architecture\n\nIn supporting Option 2. there is a registry of services. More detail in 'Service Registry'.\n\nEach routes 'path' is a simple URL regex as per below examples.\n\nhttps://github.com/aoede3/taujs/blob/main/src/shared/routes/Routes.ts\n\n### Service Registry\n\nIn supporting internal calls via τjs a registry of available services and methods provides the linkage to your own architectural setup and developmental patterns\n\nhttps://github.com/aoede3/taujs/blob/main/src/server/services/ServiceRegistry.ts\n\nhttps://github.com/aoede3/taujs/blob/main/src/server/services/ServiceExample.ts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoede3%2Ftaujs-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoede3%2Ftaujs-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoede3%2Ftaujs-server/lists"}