Funding request: TypeScript integration, part 2

Dear team!

Last year I and @JamesAlias attempted to tackle the conversion of neos-ui into TypeScript.
In 90h we managed to convert all of the leaf packages (with a notable exception to SelectBox which still needs a bit more love).

While certainly, it was a satisfactory result, it doesn’t yield a lot of real fruits in practice just yet: when creating new features we still mostly have to use JS, because we would very likely need things from the “second-order” packages which are not converted yet.
I was planning to continue working on the TS integration during the Vienna sprint, but that along I’m afraid may not be enough, therefore I propose to spend some funds this year to get it finished.

Read the previous funding request to understand why TS integration is so important for us.


I would again split the task in 3 parts:

  1. Get the leaf packages done done (i.e. finish the Robert’s SelectBox PR and just give it a bit more testing overall). I can probably do it during the Vienna sprint without funding.
  2. Convert the “2nd order” packages. That would be 9366 LOC, compared to 10498 LOC that we have already converted. I would estimate this to be another 120 hours.
  3. Convert the “neos-ui” itself. 7498 LOC. Let’s guestimate it to 80 hours.

Again, this year we can safely just do 1. and 2., and leave 3. for later. The immediate benefit that it would give is that we’d be able to use TS for most new standalone features while converting the rest of “neos-ui” at a “codesprint pace”.


I have spoken with @markusguenther, and he’s ready to join the effort, which is great news, given his TS experience! Also anyone else from the team with the TS experience is, of course, free to join. Maybe @christianm?

I’m personally ready to put into this up to 120h till the end of the year at the slightly discounted rate of 50€/h.
Markus is also ready to work at the reduced (hugely reduced for him!) rate of 50€/h, and he’d be able to put at least 20h/month into this.


So we have a decision to make:

a. sponsor nothing. It would be fine, we still have a solid TS foundation of leaf packages as of now.
b. sponsor 120h (6000€) for converting the “2nd order packages”
c. sponsor 200h (10000€) to get the whole thing converted.

NOTE: This does not contain a poll, because we will do a Konsensierung with all the other budget proposals handed in.

Appendix. LOC by package

Name LOC
Leaf packages (almost done) 10498
react-ui-components 5206
neos-ui-redux-store 2782
neos-ui-backend-connector 984
utils-helpers 110
neos-ui-contentrepository 292
neos-ui-decorators 53
neos-ui-extensibility 534
neos-ui-i18n 149
neos-ui-validators 388
2nd order 9366
neos-ui-containers 133
neos-ui-guest-frame 1221
neos-ui-editors 4216
neos-ui-sagas 1418
neos-ui-inspector 73
neos-ui-views 684
neos-ui-ckeditor5-bindings 1621
last order 7498
neos-ui 7498