Cardo
Podcast client
Cardo is a podcast client for desktop, inspired by Android's [Antennapod](https://antennapod.org/). Cardo can be synchonized with Antennapod and other apps using [Nextcloud Gppoder](https://github.com/thrillfall/nextcloud-gpodder/), [Gpodder/Opodsync](https://github.com/kd2org/opodsync), and [goPodder](https://github.com/cbrgm/gopodder). The project is written primarily in TypeScript, distributed under the GNU General Public License v3.0 license, first published in 2024. Key topics include: client, feeds, podcast, podcasts, react.
Overview
Cardo is a podcast client for desktop, inspired by Android's Antennapod. Cardo can be synchonized with Antennapod and other apps using Nextcloud Gppoder, Gpodder/Opodsync, and goPodder.





Features
- Search podcasts online
- Manage your subscriptions
- Look at new episodes of your subscriptions with a glance
- Synchronize episodes state and subscriptions using Nexcloud Gpodder
- Lightweight app (thanks to Tauri)
- Customizable themes
- Download episodes to listen them offline
- Add podcast from feed url
- Synchronization using Opodsync
- Synchronization using goPodder
- Keep your favorite episodes
- Audio manipulation, speed, silence skip & normalization
- Add podcasts from sources other than i-tunes
- Windows taskbar play/pause button
Compatible clients (from nextcloud-gpodder)
| client | support status |
|---|---|
| AntennaPod | Initial purpose for this project, as a synchronization endpoint for this client.<br> Support is available as of version 2.5.1. |
| KDE Kasts | Supported since version 21.12 |
| Podcast Merlin | Full sync support podcast client for Windows |
| RePod | Nextcloud app for playing and managing podcasts with sync support |
Contributing
Helping with donations
If you like this app you can contribute by buying me a coffee or whatever you want, that would be really great :)
<div style="display: inline-flex; gap: 10px; align-items: center"> <a href="https://www.buymeacoffee.com/n0vella" target="_blank" rel="noopener"> <img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" > </a> <a href="https://www.paypal.com/paypalme/adriannovella" target="_blank" rel="noopener"> <img src="https://www.paypalobjects.com/webstatic/icon/pp196.png" alt="Paypal" width="60" height="60" style="border-radius: 10px" /> </a> </div>If you are a developer
It's also nice if you want to improve the app. The stack is Tauri v2 + React + Typescript + Tailwind.
Feel free to summit a PR if you create something good!
Setup
This project uses:
Install these with the setup script for your platform:
- Windows (PowerShell):
bash./scripts/setup-windows.ps1
- MacOS:
bash./scripts/setup-macos.sh
- Ubuntu/Debian Linux:
bash./scripts/setup-ubuntu.sh
Once you have successfully completed the above, you will need to install the pnpm packages:
bashpnpm install
Run and debug
Debug from the command line:
bashpnpm tauri dev
Run without debugging:
bashpnpm tauri dev --release
View linter output:
bashpnpm lint
For your convinenece the setup scripts will also create a Visual Studio Code launch.json project file for your platform. Open the Cardo folder in VS Code and it will be used automatically.
For help modifying the setup with VS Code, follow the instructions in the Tauri docs but replace yarn in the sample config to pnpm.
Translations
Current status
<!-- TRANSLATION-TABLE-START --> <table> <thead> <tr> <th>Language</th> <th>Status</th> </tr> </thead> <tbody> <tr> <td>en</td> <td style="color: green;">100%</td> </tr> <tr> <td>es</td> <td style="color: green;">100%</td> </tr> <tr> <td>ar</td> <td style="color: green;">94%</td> </tr> <tr> <td>fr</td> <td style="color: green;">94%</td> </tr> <tr> <td>tr</td> <td style="color: green;">94%</td> </tr> <tr> <td>cn</td> <td style="color: yellow;">89%</td> </tr> <tr> <td>de</td> <td style="color: yellow;">89%</td> </tr> <tr> <td>pt</td> <td style="color: yellow;">89%</td> </tr> </tbody> </table> <!-- TRANSLATION-TABLE-END -->Contributing
You can contribute with translations if you speak some other languages.
It's only necessary to replicate json files in the translations folder. There is a tool on scripts to auto translate it using Google Translate, but I didn't want to leave bad translations, even English could be badly translated as it isn't my mother language.
Troubleshooting
On Windows you may experience a Windows shield alert, that's because the app is signed with a self-signed certificate, not a paid one. Maybe alerts will stop appearing if the app earns some reputation. Of course you don't have to believe me, inspecting the code and building it by yourself is always the safer option.
Logs
Recent logs are saved to one of the following directories. It may be helpful to include the logs when filing a bug report.
- Windows:
%LOCALAPPDATA%\cardo\logs\ - MacOS:
~/Library/Logs/cardo/ - Linux:
~/.config/cardo/logs/
Contributors
Showing top 12 contributors by commit count.