# FeedVault

_A seed vault for your feeds._

FeedVault is an open-source web application written in Golang that allows users to archive and search their favorite RSS, Atom, and JSON feeds. With FeedVault, users can effortlessly add their favorite feeds, ensuring they have a centralized location for accessing and preserving valuable content.

## Features

_Note: Some features are currently in development._

- **Unified Feed Archiving**: Archive RSS (0.90 to 2.0), Atom (0.3, 1.0), JSON (1.0, 1.1), Dublin Core, and ITunes feeds seamlessly in one centralized location.
- **Content Search**: Easily search your archive for specific content.
- **Export Options**: Export your archive to various formats, including JSON, CSV, HTML, ODS, RST, TSV, XLS, XLSX, or YAML.
- **API**: Access your archive programmatically through a API.
- **Self-Hosting**: Host FeedVault on your own server for complete control over your data.
- **Privacy-Focused**: FeedVault respects user privacy by not tracking or collecting any personal data. It is an ad-free platform that prioritizes user security.

## Usage

- Visit the FeedVault website.
- Sign up for an account or log in if you already have one.
- Add your favorite feeds to start archiving content.
- Explore, manage, and enjoy your centralized feed archive.

## Contributing

All contributions are welcome regardless of skill level or experience.

Please create a new issue before submitting a big pull request. I am probably okay with anything, but I don't want you to waste your time on something that I won't accept.

Try to minimize the number of dependencies you add to the project. If you need to add a new dependency, please create an issue first.

## Contact

For any inquiries or support, please create an issue on GitHub.

## Development

- I use [goose](https://github.com/pressly/goose) and [sqlc](https://github.com/sqlc-dev/sqlc) for database migrations and queries.
  - To create a new migration, run `goose create <migration_name> sql`. Then, edit the file in `sql/schema/<date>_<migration_name>.sql` and run `goose up` to apply the migration.
    - You will have to install `goose` first. See the [Goose documentation](https://pressly.github.io/goose/installation/).
    - You will also have to install `sqlc`. See the [sqlc documentation](https://docs.sqlc.dev/en/latest/overview/install.html).
    - You have to set some environment variables for this. See [.vscode/settings.json](.vscode/settings.json) for local development.
  - To generate new queries, run `sqlc generate`.

Thank you for using FeedVault! Happy archiving!
