An independent community continuation of DeskThing, originally created by Riprod. This fork is not affiliated with or endorsed by the original project; fixes that apply upstream are offered back to it. This fork is in development; public installers are not available yet. See the public launch plan for release gates, product priorities, compatibility testing, and community ownership.
Project links
π Fork operations and service ownership are documented in
docs/.
π¬ Community links are intentionally not assigned until this fork has its own moderation team.
π Distribution links will be added after this fork has project-owned hosting and signing.
Let's begin, shall we?
DeskThing turns Spotify's discontinued Car Thing into a configurable desk or vehicle display backed by a desktop Electron server. This community fork focuses on reliable device connections, privacy-first defaults, independently owned distribution services, and a maintainable release process.
The original project was created by Riprod and remains attributed under the MIT license. This fork does not claim ownership of the original project's accounts, domains, or trademarks.
For development and testing, build from source using the instructions below. End-user installation instructions will accompany the first public beta.
The feature screenshots and setup video below are historical upstream references, not verified instructions or screenshots for this fork.
The DeskThing is a simple CarThing Chromium-based website that can communicate with a Desktop APP on your computer. The CarThing can:
Note: Not all of these are updated and are pending a revision. This is new as of v0.7.0
-
- Download apps directly from the Desktop App
- Manage and update the Car Thing's display
- Probably more - just check it out already
-
- Make any button do any function!
- Control audio with the top buttons, front buttons, back buttons, really whatever you want!
- Modify them from the Desktop UI
- Add more directly from apps! (Basically, you can do anything)
-
- Show currently listening (Album, Artist, Song name, album art)
- Control Spotify (Skip, pause, play, rewind, shuffle, repeat)
- Supports Podcasts too!
- Set Audio Output Source
-
- Show currently listening (Album, Artist, Song name, album art)
- Control Any Playing Media (Skip, pause, play, rewind, shuffle, repeat)
Gif uploaded via the Image Viewer app
Updating this ReadMe with the updated flashing / installation instructions was tedious and led to confusion
So now, it is contained inside an easy youtube video
You can also check out the Additional Resources for further tutorials if you'd rather look there.
https://www.youtube.com/watch?v=iW2biAnq0n8
While older versions may work, this is recommended.
Node Version: >=v22.15.0 NPM Version: >=10.0.0
Note: Signed end-user installers are not published by this fork yet. Current builds are intended for development and testing.
- Clone the repo
git clone <your-fork-url>- cd into the directory
cd ./deskthing/DeskThingServer- Install packages
npm ci- Run the development build
npm run devThat's it, you should be off to the races! A few aspects of the app are different while in development, but nothing monumental.
Before opening a pull request, run:
npm run verifyOptional self-hosted statistics, feedback, and supporter integrations are
documented in docs/SERVICE_CONFIGURATION.md.
The architecture is
src/
main/ // all of the server-end code
preload/ // types and definitions for the IPC communication layer
renderer/ // the GUI of the application
shared/ // shared types between the frontend and backend that are local to the server (global types are in @deskthing/types)
@deskthing/types is installed from npm with the other dependencies. When developing
a compatible types fork locally, use npm's standard npm link workflow and keep the
linked version aligned with the range in DeskThingServer/package.json.
Welcome contributions! Here's how to get started:
- Reporting Issues: Use GitHub Issues to report bugs or suggest features. Include details like OS, DeskThing version, and steps to reproduce.
- Submitting Pull Requests: Fork the repo, make changes on a feature branch, and submit a PR. Ensure code follows the project's style (e.g., TypeScript types from @deskthing/types or shared/ directory). For new features, include screenshots or demos if applicable.
- Coding Standards: Use ESLint/Prettier if configured. Test your changes locally before submitting.
- Questions: Open a discussion or issue in the repository that distributed your build.
- π§ superbird-tool - This is the CarThing image that is being used. Be sure to either include this link or steps on how to flash the CarThing.
- π€ superbird-custom-webapp - The React web app framework that this project started with.
- π¨οΈ Car Thing Hax Community Discord - The discord where there is this project and so much more!
For this fork, use repository discussions or issues so answers remain public and searchable.
Historical upstream sponsor acknowledgment
This fork does not currently collect donations.