Obviate

Obviate, well, obviates the tedium of setting up static sites away.

Created by Kewbish.
Written in Vue.
Made for Hack the 6ix 2020.
Released under GPLv3.

About

I make static sites quite frequently, and I'm tired of constantly repeating the same steps to mock up a quick blog for a friend or something. So: Obviate was born. (And the name's just from my vocabulary book - I was studying the day before the hackathon).

I had very little experience with OAuth and the GitHub API, and learned all about the implicit grants and various authentication methods during this hackathon. I gained a lot of knowledge regarding Javascript fetches, as well as learning about promises and such.

I had a lot of issues with GitHub OAuth and Netlify OAuth (which I had to cut), from not being able to make a request for an authorization token, to not exchanging the correct format, to not having adequate documentation, and to literally redoing the same request 100s of times to test. My biggest challenge was forgetting that I had to stringify a request's POST body, and this caused a lot of confusion for me: why did it work in Postwoman but not in my app?

I didn't end up being able to implement some of the features that I would have liked to due to that issue with POST bodies (and some other real-life things), so I had to cut the Netlify automation part of my app out, as well as not being able to get my site on Netlify. However, I've also been able to watch a lot of talks and network with a couple people, and I think this experience of getting a project from zero to MVP in about 16 hours of active work was an incredible learning experience.

Access

Right now, it's only accessible through localhost (haven't found the time to get it on Netlify yet).
Run npm run serve and navigate to localhost:8080.
Clone the source, and place a store.js file as a sibling of the main.js file. This'll need to include a GitHub OAuth Client ID and Secret. (The application's callback doesn't matter at the moment.)

Use

Customize your Hugo blog's template, and click 'submit' on the customize page. This'll fork the template and place an action in to replace all the variables. NetlifyCMS is already integrated in the template, but you'll need to make your own OAuth app to verify in the Netlify dashboard.

Roadmap

In the future, I'd like to:

  • properly integrate Netlify
  • make the Action run on fork (currently blocked)
  • add an account system to keep track of your Obviate sites
  • and perhaps add a small monetization feature (I'd like to see how OAuth works with payment providers, or if I can get PayPal, Stripe, or GitHub Sponsors to work somehow) :eyes:

Built With

Share this project:

Updates