qdrant / qdrant-web-ui

Self-hosted web UI for Qdrant
Apache License 2.0
210 stars 82 forks source link

Migrating the entire codebase to Typescript #129

Open Gmin2 opened 9 months ago

Gmin2 commented 9 months ago

would be very helpful if we migrate the entire codebase of the qdrant-web-ui as it will give more type safety to the code

generall commented 9 months ago

There are counter-arguments for this https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01?ref=dailydev

DhairyaMajmudar commented 9 months ago

@generall @kartik-gupta-ij I went through the blog link provided by you that's true that Turbo 8 and is dropping Typescript but still many famous open-source projects like Zulip, Stripe, Prisma etc. are migrating their codebases to Typescript.

Along with that many open source frameworks and libs. like NextJS, NestJS, Angular etc. gained a lot of popularity after migrating to TypeScript in prev. years.

So, I think it will be very beneficial to migrate qdrant-web-ui in Tyepscript.

Stripe Blog Netligy Blog

ryuusama09 commented 8 months ago

In that case , I would like to take up on this task !

DhairyaMajmudar commented 8 months ago

I would also want to take up this task. But I think at first we need confirmation from @generall and @kartik-gupta-ij regarding the same.

dmgolembiowski commented 4 months ago

TypeScript is a solid choice for a majority of web projects, and that might also be true here as well. But what about migrating the UI to a Rust web framework like leptos? Qdrant's product is already written in Rust. This means that large amounts of library logic could be imported into the code-base without the need of a Promise or fetch calling another process: to ultimately run the same logic at the expense of using a framework that cannot copy strings by reference because their encodings are different (Utf-16 to Utf-8 and vice-versa). Over time, as qdrant matures we might expect the Web-Ui feature list to grow but the amount of effort to meet those expectations will scale linearly. Instead, being able to call into qdrant's code directly might reduce this from a linear relationship into a logarithmic one (as time goes on less effort is needed).