{"id":20975231,"url":"https://github.com/functionland/fx-components","last_synced_at":"2026-02-20T00:05:08.224Z","repository":{"id":50884173,"uuid":"496328972","full_name":"functionland/fx-components","owner":"functionland","description":"Monorepo for File Manager and Box apps with accompanying mobile design system components.","archived":false,"fork":false,"pushed_at":"2026-02-12T06:26:55.000Z","size":91999,"stargazers_count":5,"open_issues_count":48,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-12T15:38:29.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.fx.land/functionyard/fxblox-app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/functionland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-25T17:29:18.000Z","updated_at":"2026-02-12T06:17:26.000Z","dependencies_parsed_at":"2024-05-01T21:48:20.680Z","dependency_job_id":"62d44452-4201-465e-a5c1-00f0f5bf1b32","html_url":"https://github.com/functionland/fx-components","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/functionland/fx-components","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionland%2Ffx-components","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionland%2Ffx-components/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionland%2Ffx-components/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionland%2Ffx-components/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/functionland","download_url":"https://codeload.github.com/functionland/fx-components/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionland%2Ffx-components/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29637398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T04:41:13.870Z","updated_at":"2026-02-20T00:05:08.203Z","avatar_url":"https://github.com/functionland.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Functionland's](https://fx.land/) Mobile Apps Monorepo\n\nThis is the monorepo using [nx](https://nx.dev) that contains the source for the **Blox App**, **File Sync App**, and Design System **component library** projects.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"35%\"\u003e\n    \u003cp\u003eBlox\u003cp\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/17250443/189409007-ffa2cf49-98db-4f48-9ed2-899a56b44848.gif\" /\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"35%\"\u003e\n    \u003cp\u003eFile Sync\u003cp\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/17250443/189410320-8536a82e-7abf-4b53-bab2-1f6b8d79d65a.gif\" /\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## About the Apps\n\nFunctionland's FxBlox hardware is managed and used by the `File Sync` and `Blox` apps. `Blox` and `File Sync` can be used independently of each other. The `Blox` app is responsible for managing, controlling and configuring the FxBlox hardware as well as the setup / linking of wallets for to receiving Fula (rewards) tokens. If you have FxBlox hardware, you will need the Blox app. The `File Sync` app is responsible for utilizing the FxBlox hardware as a decentralized storage solution for your data.\n\n\u003e Note: The word \"box\" is used interchangeably for \"blox\"\n\n\u003cbr\u003e\n\n### Quick start\n\nIn the root run `yarn` followed by `yarn ios` and see our [STYLEGUIDE](https://github.com/functionland/apps-monorepo/blob/main/STYLEGUIDE.md) when [contributing](#contributing-to-the-monorepo).\n\n\u003cbr\u003e\n\n# Development\n\n## Getting started with development\n\nIn the project root run `yarn install`, this will install all the required dependencies across all the projects.\n\n#### Requirements\n\nSetup your development environment according to [react native setup documentation](https://reactnative.dev/docs/environment-setup)\n\nAdditional requirements:\n\n- CMake 3.10.2 (Android only, available through Android Studio)\n- `nx` as a global dependency (optional).\n\nIt is easiest to develop in a Unix based environment as there is currently an [issue](https://github.com/functionland/apps-monorepo/issues/224) open for Windows in relation to CMake.\n\n#### To run the iOS apps in development\n\n```sh\nyarn ios file-manager\n```\n\n```sh\nyarn ios box\n```\n\n#### To run the Android apps in development\n\n```sh\nyarn android file-manager\n```\n\n```sh\nyarn android box\n```\n\nIf you ran into `lstat EEPROM` permission issue, you can follow the below:\n\n```\nnpx react-native run-android\n```\nThe above build the android version. Then run the below to start the server:\n```\nnpx react-native start\n```\n\nRunning these commands will install the required native dependencies via Gradle or Cocoapods.\n\nThese commands are shorthand for: `nx start [app]` followed by `nx run-ios [app]`.\n\nThe default project is `box`\n\n## Project structure\n\nThere are 3 core parts to the folder structure:\n\n- [Component Library](https://github.com/functionland/apps-monorepo/tree/main/libs/component-library) (Completed):\n  - 📁 `libs/component-library`\n    - 📄 `src/index.ts` exports all components from the component library in `src/lib`\n- [Blox](https://github.com/functionland/apps-monorepo/tree/main/apps/box) app (WIP):\n  - 📁 `apps/box`\n    - 📁 `src`: Contains the actual TypeScript + React-Native FB mobile for the Blox app.\n    - 📁 `ios`: Contains the basic skeleton for a React Native iOS app, plus the native\n    - 📁 `android`: Contains the basic skeleton for a React Native Android app, plus the native\n- [File Sync](https://github.com/functionland/apps-monorepo/tree/main/apps/file-manager) app (To Do):\n  - 📁 `apps/file-manger`\n    - 📁 `src`: Contains the actual TypeScript + React-Native FB mobile for the File Sync app.\n    - 📁 `ios`: Contains the basic skeleton for a React Native iOS app, plus the native\n    - 📁 `android`: Contains the basic skeleton\n\nThe designs for the app can be found under the design files folder [`design-files`](https://github.com/functionland/apps-monorepo/tree/main/design-files)\n\n## Restyle\n\nA core library to this monorepo is [Shopify's restyle library](https://github.com/Shopify/restyle). This ensures a consistent design language when developing the apps and enables easy plug and play theming with light and dark themes (or any other). We have setup base light and dark themes in the component library [theme.ts file](https://github.com/functionland/apps-monorepo/blob/main/libs/component-library/src/lib/theme/theme.ts). The `Blox` and `File sync` apps can implement this theme directly or hydrate their own themes from these base themes. See our [style guide rules](https://github.com/functionland/apps-monorepo/blob/main/STYLEGUIDE.md) for more info.\n\n# Contributing to the Monorepo\n\nYou can contribute by beta testing or by submitting code to either apps (File Sync and Blox) or submitting code to the component library.\nIf you plan to make a contribution please do so through [our contribution steps](#contribution-steps). You can also join us on Discord to discuss ideas.\n\nWhen submitting code, please make every effort to follow existing [conventions and style](https://github.com/functionland/apps-monorepo/blob/main/STYLEGUIDE.md) in order to keep the code as readable as possible.\n\nPlease always be respectful when contributing.\n\n\u003cbr\u003e\n\n## How To Run locally?\n\nSee [Getting started](#getting-started-with-development)\n\n1- Run `rm -rf node_modules \u0026\u0026 rm -rf /tmp/metro-*`\n\n2- Run `yarn`\n\n3- Set `ANDROID_HOME` and `JAVA_HOME` envs.\n\n4- Connect an android device or run an emulator.\n\n5- Run `adb reverse tcp:8081 tcp:8081`\n\n6- Run `yarn android box`\n\n\n## Submit to Appstore\n\n```\nyarn install\n\ncd apps/box/ios\n\npod install --repo-update\n```\n\nPush the changes to repo and then go to [Appstore Connect](https://appstoreconnect.apple.com/apps) and go to XCode Cloud and start a build. Then  submit the build for review\n\n## Submit to Google Play\n```\nyarn install\n\ncd apps/box/android\n\n./gradlew assembleRelease\n```\n\nIt gives you the apk which you can submit to Google Play\n\n\n## Submitting a PR\n\n- For every PR there should be an accompanying [issue](https://github.com/functionland/apps-monorepo/issues) which the PR solves. If there isn't one please create it.\n\n- The PR itself should only contain code which is the solution for the given issue\n\n- If you are a first time contributor check if there is a [good first issue](https://github.com/functionland/apps-monorepo/labels/good%20first%20issue) for you\n\n## Contribution steps\n\n1. Fork this repository to your own repositiry.\n\n2. Clone the forked repositiry to your local machine.\n\n3. Create your feature branch: `git checkout -b my-new-feature`\n\n4. Make changes to the project.\n\n5. Commit your changes: `git commit -m 'Add some feature'`\n\n6. Push to the branch: `git push origin my-new-feature`\n\n7. Submit a pull request :D\n\n## License\n\nBy contributing your code, you agree to license your contribution under the terms of the [MIT License](https://github.com/functionland/apps-monorepo/blob/main/LICENSE) license.\n\nAll files are released with the MIT License license.\n\n# Misc\n\n### Unresolved branches\n\n[Rewards Screen](https://github.com/functionland/apps-monorepo/tree/feat/rewards-screen) branch relating to the rewards screen is unresolved and in a [draft PR](https://github.com/functionland/apps-monorepo/pull/229).\n\n\n### Github Actions\n\nchange the versionCode nad number\n```\nBUILD_GRADLE_PATH=${{ github.workspace }}/apps/box/android/app/build.gradle\nsed -i \"s/versionName \\\".*\\\"/versionName \\\"$NEW_VERSION_NAME\\\"/\" $BUILD_GRADLE_PATH\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunctionland%2Ffx-components","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunctionland%2Ffx-components","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunctionland%2Ffx-components/lists"}