From 4bddc337d7e7aa0afca6444eaa55e3c46a8054bd Mon Sep 17 00:00:00 2001 From: Florent EXBRAYAT Date: Tue, 12 Nov 2024 10:56:53 +0100 Subject: [PATCH] docs(blog): add roadmap 1.0 blog post --- .vscode/settings.json | 3 +- demo/src/lib/layout/Published.svelte | 5 ++ demo/src/resources/images/fexbrayat.webp | Bin 0 -> 5330 bytes demo/src/resources/images/reactivity.webp | Bin 38230 -> 0 bytes demo/src/routes/blog/+layout.server.ts | 5 +- .../routes/blog/2024-11-06/+page.server.ts | 10 +++ demo/src/routes/blog/2024-11-06/+page.svelte | 14 ++++ demo/src/routes/blog/2024-11-06/roadmap1.0.md | 75 ++++++++++++++++++ 8 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 demo/src/resources/images/fexbrayat.webp delete mode 100644 demo/src/resources/images/reactivity.webp create mode 100644 demo/src/routes/blog/2024-11-06/+page.server.ts create mode 100644 demo/src/routes/blog/2024-11-06/+page.svelte create mode 100644 demo/src/routes/blog/2024-11-06/roadmap1.0.md diff --git a/.vscode/settings.json b/.vscode/settings.json index 63022ba437..9c0de3bcdd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,5 +15,6 @@ "search.exclude": { "**/dist": true, "**/generated": true - } + }, + "cSpell.words": ["Tanstack", "Tansu"] } diff --git a/demo/src/lib/layout/Published.svelte b/demo/src/lib/layout/Published.svelte index 3114f20224..f5e847a959 100644 --- a/demo/src/lib/layout/Published.svelte +++ b/demo/src/lib/layout/Published.svelte @@ -7,6 +7,7 @@ import share from 'bootstrap-icons/icons/share.svg?raw'; import fbasso from '$resources/images/fbasso.webp'; + import fexbrayat from '$resources/images/fexbrayat.webp'; import {onMount} from 'svelte'; type AuthorInfo = { @@ -19,6 +20,10 @@ icon: fbasso, title: 'Fabrice Basso, Software engineer at Amadeus', }, + fexbrayat: { + icon: fexbrayat, + title: 'Exbrayat Florent, Principal engineer at Amadeus', + }, } satisfies Record; interface Props { diff --git a/demo/src/resources/images/fexbrayat.webp b/demo/src/resources/images/fexbrayat.webp new file mode 100644 index 0000000000000000000000000000000000000000..69e7ff49cc8618b2a2212958be05d3f01aac95e3 GIT binary patch literal 5330 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 G>wf?;2@NIy diff --git a/demo/src/routes/blog/+layout.server.ts b/demo/src/routes/blog/+layout.server.ts index 08eebc23ff..bdd26a76e0 100644 --- a/demo/src/routes/blog/+layout.server.ts +++ b/demo/src/routes/blog/+layout.server.ts @@ -3,7 +3,10 @@ export const load = () => { menu: [ { title: 'News 2024', - submenu: [{label: 'State management with Tansu', path: 'blog/2024-02-01', slug: 'blog/2024-02-01'}], + submenu: [ + {label: 'State management with Tansu', path: 'blog/2024-02-01', slug: 'blog/2024-02-01'}, + {label: 'Roadmap to 1.0', path: 'blog/2024-11-06'}, + ], }, ], since: 'v0.1.1', diff --git a/demo/src/routes/blog/2024-11-06/+page.server.ts b/demo/src/routes/blog/2024-11-06/+page.server.ts new file mode 100644 index 0000000000..8b8b2cd2bf --- /dev/null +++ b/demo/src/routes/blog/2024-11-06/+page.server.ts @@ -0,0 +1,10 @@ +export const load = () => ({ + pageMeta: { + title: 'Roadmap to 1.0', + description: + 'AgnosUI is currently in 0.X version, but we intend to progress to reach 1.0 by 2025. In this blog we explain the steps to go there.', + socialImage: 'https://www.agnosui.dev/static/roadmap1.0-social-share.png', + socialImageAlt: 'Blog roadmap 1.0 image', + shareUrl: 'https://www.agnosui.dev/latest/blog/2024-11-06', + }, +}); diff --git a/demo/src/routes/blog/2024-11-06/+page.svelte b/demo/src/routes/blog/2024-11-06/+page.svelte new file mode 100644 index 0000000000..59f9e9a0fd --- /dev/null +++ b/demo/src/routes/blog/2024-11-06/+page.svelte @@ -0,0 +1,14 @@ + + +
+ +frontend development + diff --git a/demo/src/routes/blog/2024-11-06/roadmap1.0.md b/demo/src/routes/blog/2024-11-06/roadmap1.0.md new file mode 100644 index 0000000000..a201f9ceb7 --- /dev/null +++ b/demo/src/routes/blog/2024-11-06/roadmap1.0.md @@ -0,0 +1,75 @@ +## Technical updates + +We will continue be at the edge of the technology for our libraries. + +### Pass the demos to SSR + +We are working on delivery our demo examples in Server-Side Rendering (SSR) to enhance performance and the UX. + +### Migrate the React demo site to Tanstack Start + +Current React demos are build using Vite but it's not a real life usage of React. +We intend to migrate our React demo site to Tanstack Start to benefit from a good environment. + +### Upgrade to new frameworks version + +We plan to update our library to React 19 and Angular 19 as soon as they are officially released. + +### Tansu 2.0 + +We are improving the performance of Tansu (our reactive state library) (see [this PR](https://github.com/AmadeusITGroup/tansu/pull/139)) while working closely with TC39 to try to integrate the same features into the future signal implementation. + +Here are our contributions to the work in progress on signals: + +- [issue 227](https://github.com/tc39/proposal-signals/issues/227) +- [issue 226](https://github.com/tc39/proposal-signals/issues/226) +- [PR 197](https://github.com/tc39/proposal-signals/pull/197) + +## Components + +We plan to add several new components to AgnosUI. Here is a non-exhaustive list of the components we are targeting: + +- Carousel (already in progress 0.6) +- Dropdown +- Select +- Tree (already in progress for 0.6) +- Stepper +- SideNav +- Tabs +- ScrollSpy +- Tooltip +- Popover + +For date/time components, we will need to evaluate the correct abstraction to use underneath. + +We will improve some of our current components by providing services to manage them (Modal, Toast) and evaluate the usage of the new native Popover API. + +## Documentation + +We intend to continue improving the documentation by adding examples of the features and emphasis the accessibility and the good UX of our components. + +### Blog + +We will publish a few articles highlighting why our widget libraries is interesting and the best solution for their needs. + +### Contribution Guide + +A detailed guide to help new contributors participate in the development of AgnosUI has to be delivered. + +### Navigation Manager Service + +Documentation on our navigation manager service for better KN and user experience. + +### Intersection Service + +Explanation of our intersection service for efficient management of elements visible in the viewport. + +### Extension Capabilities + +Documentation on the extension capabilities of AgnosUI, including available configuration options. + +### Release Management + +We will provide clear documentation on our release management process for AgnosUI (As we have multiple libs we need to clarify this). + +We are excited to share these updates with you and continue improving AgnosUI to meet your development needs. Stay tuned for more details and updates!