README.md
# Spotless
*Instant OAuth integration for personal projects.*
[](https://hex.pm/packages/spotless)
[](https://hexdocs.pm/spotless/)
Spotless gives you a simple, secure way to connect local projects to many OAuth-powered services. Once authorized you can interact with the serviceβs API directly using your favourite libraries and tools.
Automate your personal life with Spotless.
```gleam
import midas/sdk/dnsimple
import midas/node
import midas/task as t
import spotless
fn task() {
// Choose a free port that will be used for the OAuth flow with Spotless.
let port = 8080
// Returns a valid access token for your dnsimple account
use token <- t.do(spotless.dnsimple(port))
use domains <- t.do(dnsimple.list_domains(token))
t.done(domains)
}
pub fn main() {
// Defining tasks with midas is optional.
// Choosing midas allows you to run tasks in browser or cli.
node.run(task())
}
```
## β¨ Why Spotless?
- π Connect to many OAuth services with minimal setup
- π Hosted authorization flow β no need to register apps yourself
- π Use your own language and tools β The [spotless.run](https://spotless.run) OAuth server can be used with any language
- π©βπ» Built for developers and makers with personal automation in mind
## π§ How It Works
The Spotless OAuth server is a hosted service that is already registered with a selection of OAuth services. The Spotless server is preconfigured to accept authorization requests from public clients running on `localhost`.
The spotless library is able to run as a client requiring only a free port to accept the OAuth redirect.
**Can I use Spotless in production?** Yes! You can use spotless as a single integration point to all the services we support. We need to understand your use case and set you up as a confidential client. The best thing is to email me and we can discuss.
## ποΈ Current Integrations
Spotless supports a growing list of services. Initial integrations include:
- DNSimple
- Github
- Linkedin
- Netlify
- Twitter
- Vimeo
Want a new integration? Open an issue.
## π¦ Installation
```sh
gleam add spotless
# Also add your client library of choice
```
## π Documentation
Further documentation can be found at <https://hexdocs.pm/spotless>.
## Development
```sh
gleam run # Run the project
gleam test # Run the tests
```