-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
developmentStandard developmentStandard development
Description
Specification
Migrate the Polykey Desktop GUI from its current Electron-based setup to a React Native-based setup, ensuring native GUI compatibility with Android, iOS, macOS, and Windows. Maintain Electron for Linux compatibility, using React Native Web to achieve maximum code reuse across platforms. Integrate Tailwind CSS styling consistently, using twrnc
for React Native components and standard Tailwind CSS for regular React web components.
Additional context
- React Native now officially supports stable desktop implementations for macOS and Windows maintained by Microsoft.
- Electron will be preserved exclusively for Linux due to its mature ecosystem and broad compatibility.
- Prior experimentation has demonstrated feasibility of React Native Web integration with Electron.
- Using
twrnc
(Tailwind React Native Classnames) allows consistent styling between React Native Web components and regular React web components styled with Tailwind CSS. - Ensure configuration consistency between
twrnc
and standard Tailwind CSS setups. - Compatibility and packaging on NixOS must be validated.
Tasks
- Set up a unified React Native and React Native Web monorepo supporting all target platforms (Android, iOS, macOS, Windows, Linux).
- Integrate official React Native desktop implementations (macOS, Windows).
- Configure Electron specifically for Linux, integrating React Native Web.
- Configure and integrate Tailwind CSS for regular web React components.
- Set up and configure
twrnc
for React Native Web components. - Validate consistent Tailwind configurations across platforms.
- Test and document the unified workflow and setup clearly for developers.
Metadata
Metadata
Assignees
Labels
developmentStandard developmentStandard development