A calm, customizable, and non-algorithmic RSS reader. Lots of customization options and great support for video content. Fully open source and easily self-hostable.
All release notes can be found at https://serial.tube/releases.
Getting up and running with Serial is easy. Here are the steps you need to start developing locally:
- Clone the repository locally
- Install the Turso CLI: https://github.com/tursodatabase/turso-cli
- Copy
apps/app/.env.exampletoapps/app/.env - Set
PUBLIC_BASE_URLtohttp://localhost:3000 - Navigate to Better Auth and generate an auth secret. Set it as
BETTER_AUTH_SECRET - Install Node.js 22.12 or newer.
- Install pnpm if you don't have it already.
- Run
pnpm ito install packages. - Run
pnpm devto create, migrate, and run your database for the first time, then boot up the development server.
If you'd like to support additional features in development, see below!
Self hosting Serial is relatively easy. Here are the current platform-specific guides:
If your preferred platform doesn't have a guide, follow these rough steps:
- Fork the
megaflorasoftware/serialrepository to your own GitHub account. - Use a git-based deployment system to deploy when a new commit happens. There are a few ways to do this:
- If deploying through Docker, the provided Dockerfile and Compose files build the app from the monorepo root
- If building from source, build with
pnpm --filter @serial/app build:artifactand start withpnpm start.
- Set up a custom domain (if desired)
- Set up your database:
- If you want to use a local libsql database, use the provided
docker-compose.yamlconfiguration. The database requires no additional configuration, but the application variables below are still required.- It's less common, but you can also manually provide your local libsql server URL in
DATABASE_URL.
- It's less common, but you can also manually provide your local libsql server URL in
- If you want to use a cloud libsql database provider (like Turso), set up a database with them and add your
DATABASE_AUTH_TOKENandDATABASE_URLto your environment variables.
- If you want to use a local libsql database, use the provided
- Set
PUBLIC_BASE_URLto the public origin URL where Serial will be available, such ashttps://serial.example.com. - Navigate to Better Auth and generate an auth secret. Set this as
BETTER_AUTH_SECRETin your environment variables. - Deploy your application. Docker images read public configuration when the container starts, so the same image can be used at different domains without rebuilding it.
- To update Serial in the future, sync your forked code from the main repo and the app will redeploy.
If you'd like to support additional features, see below!
Serial takes a model of progressive enhancement for features. The app can run with very few external dependencies, but services can be enabled whenever you want for whatever you need for your specific instance.
Serial supports Resend and SendGrid as email providers. Only one is used at a time — if both keys are set, Resend takes priority.
- Resend: Create an account, add your
RESEND_API_KEYto.envor your host's environment variables UI. - SendGrid: Create an account, set up a mailing address, add your
SENDGRID_API_KEYto.envor your host's environment variables UI.
- Register a new Instapaper OAuth application using their form.
- Wait to receive your OAuth credentials
- Add your
INSTAPAPER_OAUTH_IDandINSTAPAPER_OAUTH_SECRETto.envor your host's environment variables UI.
