Skip to content

Latest commit

 

History

History
128 lines (80 loc) · 6.48 KB

CONTRIBUTING.md

File metadata and controls

128 lines (80 loc) · 6.48 KB

How to contribute to Podverse

Podverse is a labor of love to create a high quality cross-platform FOSS podcast app, and help drive forward adoption of new RSS namespaces (Podcasting 2.0), so new features are possible in open podcasting.

Table of Contents

generated with markdown-toc

Bounties

WORK IN PROGRESS - we haven't finalized the terms for bounties yet, but should have them ready soon.

We currently charge $18 per year for a Podverse Premium membership, which is covering most of our bills at the moment, but we're still far from being able to afford to pay our core team members. Also, we use the value for value model, and extend Podverse Premium memberships for free for anyone who asks.

While our "treasury" is small, we have invested in a bounties program to help encourage FOSS contributions to Podverse on major features or bug fixes that our core team either doesn't know how to do, or won't realistically have time to complete soon.

If you may be interested in working on a bounty, you can find descriptions for them in this directory. If you decide to pick one up, please let us know as soon as possible so we can reserve it for you to work on, and also verify our payment method and terms will work for you.

Documentation

If you see any parts of the documentation that can be improved, please let us know, or create a PR with the changes.

Translations

Weblate

If you'd like to add or update translations in the mobile or web app, please visit our Weblate page. Weblate is a FOSS language localization tool that makes it easy to crowd-source translations for software. Any changes you make there will automatically create a pull request that we can then merge into the Podverse repos.

Bounties

We will also pay a bounty to people who make major contributions towards translating the mobile or web site into different languages. Please visit the translations bounty page for more info.

Development

The full Podverse tech stack is primarily written with JavaScript, TypeScript, and Node.js, and we use React and React Native for the website and mobile app. Our core dev team has good JavaScript and iOS experience, but almost no Android, and limited database experience, so those are both areas we could particularly use help with.

Below is info to help you get started running the Podverse apps locally on your machine.

Yarn vs NPM

We use yarn accross all of our documentation. NPM does not seem to work with our linked modules when running in localhost, but Yarn does. (This may be related to differences in circular dependency handling.)

Environment configs

You can find example .env files for all Podverse repos here.

Local environment setup

Podverse uses Docker Compose and a Makefile for local environment setup.

If you are only working on the front-end (mobile or web), you may not need to use Docker or Make, as you can just run the apps locally using npm, and update the .env file to point to the prod Podverse API at https://api.podverse.fm/api/v1 instead of http://localhost:1234/api/v1.

If you are working on podverse-api or our Manticore search engine, you will need to use the Make commands to get started.

You can use the following commands to get the Postgres database and Manticore search engine running locally:

# initialize the database
make local_up_db

# initialize the manticore database and run the manticore api
make local_up_manticore_server

# initialize the manticore indexes
# this only needs to run once, the first time
# NOTE! After this initial indexing completes, you will need to restart
# the manticore container so that it uses the index.
make local_manticore_indexes_init

# update / rotate the manticore indexes
# this runs whenever you want to update the search indexes
make local_manticore_indexes_rotate

The database will automatically import the schema-only.sql.gz file, which initializes the tables and indexes.

To populate your local database with sample data, you can go into the podverse-api repo, install dependencies, update the .env file according to the example linked in the section above, and then run:

yarn dev:seeds:qa:populateDatabase

When you're ready to destroy the database locally, you can run:

make local_down_db

To destroy all the Podverse containers locally:

make local_down

After the database and Manticore are running locally, you can then run whichever app you want to work on by going into its repo and running yarn dev (or yarn dev:ios or yarn dev:android for the mobile app).

For more info about how to run and begin working on each app, please check the README in their respective repos:

Also, we welcome any contributions to help improve or cleanup this repo podverse-ops.

Bounties

Please visit the bounties directory in this repo for more info.

Contact us

If you'd like to reach us with questions, we'd be happy to hear from you, and can be reached by creating a Github issue in its respective repo, or by contacting us via:

Thank you for supporting Podverse! ❤️