Hyperspace is a client for Mastodon and the fediverse written in React and TypeScript. It aims to provide a clean, simple, and fun interface for interacting with Mastodon instances. Currently, Hyperspace works on the web as a static site, on desktop via Electron, and on mobile devices as a progressive web app*.
Note: *Progressive web app support is currently experimental. Not all features may render or work correctly. PWA support may not work on Android.
Building from source
To get the packages and environment set up, run
npm install. Most commands and scripts derive from
create-react-app and should be easy enough to use.
npm install npm run build
Building desktop versions
If you wish to build the desktop versions of Hyperspace, it is recommended to run
build-electron instead of
npm run build. This will build for Windows, macOS, and Linux.
Alternatively, you can run any of these commands to build for your specific platform:
build-electron-darwin- build only for macOS
build-electron-win- build only for Windows
build-electron-linux- build only for Linux distributions (AppImage, deb, snap)
build-electron-linux-select -- <package type>- where
appimageto build the specific package type
Note: Ensure you have code-signing certificates ready.
electron-buildershould automatically detect them and code-sign your apps for you.
In addition, if you plan on creating versions for the Mac App Store, ensure that you have a provisioning profile and entitlements/info property list in the
Deploying to the Web
To run Hyperspace from a website, download either the static files or build from source and then upload them to your hosting server.
Hyperspace makes use of the following modules and components to make it as fluffy as possible:
megalodon- the handler for Mastodon API calls
office-ui-fabric-react- React components from Microsoft that offer Modern/Fluent design
@uifabric/icons- icon pack that goes with Fabric UI
moment- for date formatting
node-sass- for compiling the Sass files needed
electron- for making the desktop versions
emoji-picker-react- for adding an emoji picker
The Hyperspace project itself is licensed under the GNU Lesser General Public License, though some components are licensed under other free-software licenses such as the MIT License and GNU GPL.
If you want to aid the project in other ways, consider supporting the project on Patreon.
If you have Matrix, you can join the Hyperspace community (+hyperspace-masto:matrix.org).