!! This is not complete list of TODOs !!
For more specific TODOs see comments in code

[Functionality - PROGRESS]
- Landing page
- Home page (user specific)

- Operational synthesis schema as LibraryItem ?

- Draggable rows in constituents table
- Clickable IDs in RSEditor tooltips

- Library organization, search and exploration. Consider new user experience
- Private projects and permissions. Consider cooperative editing
- Rework access setup: project-based, user-based, enable sharing. Prevent enumerating access to private schemas by default


[Functionality - PENDING]
- User notifications on edit - consider spam prevention and change aggregation
- Static analyzer for RSForm
- Content based search in Library
- User profile: Settings

- Export PDF (Items list, Graph)
- ARIA (accessibility considerations) - for now machine reading not supported
- Internationalization - at least english version. Consider react.intl
- Focus on codemirror editor when label is clicked (need React 19 ref for clean code solution)


[Tech]
- add debounce to some search fields
- duplicate syntax parsing and type info calculations to client. Consider moving backend to Nodejs or embedding c++ lib

- DataTable: fixed percentage columns, especially for SubstituteTable. Rework column sizing mechanics


[Deployment]
- logs collection
- status dashboard for servers


[Security]
- password-reset leaks info of email being used
- improve nginx config. Consider DDOS and other types of attacks on infrastructure


[Research]
Research and consider integration
- django-allauth - consider supporting popular auth providers
- drf-messages

- backend error message unification
https://drf-standardized-errors.readthedocs.io/en/latest/error_response.html

- radix-ui
- shadcn-ui

- Zod
- use-debounce

- react-query
- react-hook-form

- node-based UI