Hacker News new | past | comments | ask | show | jobs | submit login
HubPress – A web application to build your Blog on GitHub (hubpress.io)
162 points by rcarmo on Feb 9, 2015 | hide | past | favorite | 65 comments

This is very cool. I'm currently using a static blog generator (Frog) to run mine, but to be honest the appeal has started to wear on me because of the barriers involved between writing something and actually pushing it. I'm a lot more likely to actually get some writing up if I can just click in a box and start writing, whereas at the moment I've got to generate a new post template, edit it, re-build the page, then push the lot.

It's a minor inconvenience, but it's one that's been enough on more than a few occasions for me to just say bugger it and post my thoughts elsewhere or just not bother.

> because of the barriers involved between writing something and actually pushing it

Can you explain what barriers are you talking about? I moved from a CMS to static blog only to reduce these barriers. For me, a new post is just three steps

   $ hugo new <post>
   $ vim <post>
   $ git commit -am "new post" && git push
which is something I vastly prefer as I am in my text-editor. Even the live preview is easily made possible with livereload (pre-built in Hugo).

The best use-case of hubpress, IMHO, is when I want to publish from mobile (or when my dev environment is not unavailable)

[0] - http://gohugo.io/

Like I say, it's a minor barrier, but it's sometimes enough to not feel like bothering with unless it's very important. Every time I want to write a new post I have to:

  1. Start Emacs (I could use something else here, but I like Markdown mode)
  2. Start eshell and run:
    $ raco frog -n <title for a post I may still have in idea stage and don't know what to call it yet>
    $ find-file _src/date+title.md
  3. edit template tags. 
  4. write post.
  5. save post.
  6. run:
    $ raco frog -bp
  7. check the preview and make sure nothing's broken in the formatting
  8. push to git. 
  9. check again and make sure nothing broke now that it's actually hosted (this has happened a few times)
It's not a huge burden, but it's occasionally a pain and the roundabout steps involved, and the weird bugs at times in code-block rendering, get a little old when I compare it to:

  1. Click link to Blogger/Medium/Tumblr/ello/etc.
  2. Click "new post"
  3. write post.
  4. preview/publish post.

In my case, the main barrier is switching constantly between environments. When I was using Wordpress, I had everything right there in my browser. Now that I've moved to a static blog, I have

  * A text editor, where I write the post
  * A terminal, where I commit/push my changes
  * A web browser, where I preview my changes
The constant switching between contexts makes it harder for me to focus. Of course, there are advantages (I can now write on the train and push everything afterwards), but I do feel the difference.

Isn't it like the whole point? You use a tool which is best for the job. Like in http://en.wikipedia.org/wiki/Unix_philosophy.

Did the Unix philosophy ever win out for end users? As far as the eye can see there's only integration. Microsoft Office is the most popular office suite, Photoshop integrates probably 1000 tools, etc.

The only place users have accepted a single tool for a single role seem to be mobile apps, because the interface is so limited.

At least that's my impression...

Why not use an online text editor with integrated git or github support?

If it's like the one I use? Because I still have to be able to run the command line build tool.

Mine get run on my VPS, launched by a git hook. But from what I've read, there are a few more "full featured" online editors like Nitrous.io which actually have a backend which can run such tools.

I use jekyll and docker to preview before commit.: docker pull kisenka/centos6-jekyll

docker run -i -t -p -v /home/xxx/xxx.github.com:/data kisenka/centos6-jekyll

HubPress seems interesting, but I do not want to give them my github credential.

The way it looks, your credentials are posted directly to the Github API. Hard to tell more without clean source to look at.

That's right, credentials are send to the API, then we generate a personal token (you can see it in your settings).

I will push sources at the end of the month or in the first half of march.

I had the same workflow issue. Especially when all I wanted to post was a youtube link or a quote I heard. So I built: https://github.com/whistlerbrk/mail2frontmatter as a result.

In a nutshell it lets you email your blog, parses it and resizes attachments, interprets links (with plugins) and will also commit it to git and push for you. With guard you can autotrigger rebuilds as well.

So then, why not use something, which you can connect with Dropbox, and alike service?

I have Dropbox running on the server side. So I can edit files locally and they are immediately pushed to the server.

Same here. http://taoofmac.com is run that way. Check out http://github.com/rcarmo/sushy for the next rendering engine...

Is there any service that offers the combination of Dropbox + Jekyll + Git?

I might consider it without git, but Jekyll is really essential for me.

Well, there is https://pancake.io/. You can try it.

One thing to remember before hosting your blog on Github is that content seems to be censored by them far more actively than other platforms (e.g. Wordpress)

Case in point -- this parody account that was shut down by Github (http://www.theregister.co.uk/2013/12/19/feminist_software_fo...) without any legal need for the same. You may think today "Oh, that's fine, they were assholes anyway", but in principle, the same thing could happen to you tomorrow if your blog conflicts with the Github values du jour.

Worth mentioning - Github is a great place for code since code itself is rarely objectionable, but when you begin hosting writing there, they appear to be really quick to drop the censorship hammer for questionable reasons, hiding behind the ToS when questioned.

Blogs are the simplest thing in the world to host - a $5 VM at Digital Ocean or similar all but eliminates any censorship concerns, and a static generator like Octopress ensures that you have an easily-rehostable backup of your words in case of the contrary.

Be warned, I love Digital Ocean but they have been caught doing the same thing. Hosting blogs there that push any edges is dangerous.

Ouch.. I wasn't aware of that. Any other providers you can think of that are more free-speech oriented?

Not that I am aware of. Even the EFF prism break only lists one webhost and that webhost is invite only and you have to use their SSL keys (no thank you!). There is also riseup but again it is invite only.

It's a major issue because according to law, they have to be able to take down illegal content, but to protect themselves most hosts will simply take down anything even close to it. Where this gets dangerous is regarding non-court ordered claims of illegality, such as DMCA takedowns, claims of libel, hate-speech, etc.

I wish I had a better answer for you. I have though about trying to host via countries like Switzerland, but I don't want to have to use another countries host just to have free speech.

Honestly I'm getting to the point that paying for my own colocation of a server I control and is locked up would be the best way to go. Still have similar issues with the colo companies refusing to host certain content, but you have to pick your battles.

The other alternative would be to get business level service so you can host via your home ISP. If you try to do it with your consumer service they can find it and tell you that hosting content is not part of the agreement.

While I must agree that DMCA+GitHub is a dangerous combo that feminist programming language "project" is literally just troll bait. It's a hoax on the cost of some misguided person who literally thought that programming languages can be sexist.

Everybody laughed, I pulled out a lot of my hair, joking about sexist hammer and homophobic wrench. I can see why GitHub didn't feel like hosting a troll fest.

Look, from what I have read, the language is an obvious parody. Probably not a very skillful one.

If it's leading to a "trollfest", then that is a separate problem. Taking down the repo is not the solution to trolling.

Very cool, but please add full github markdown support. https://github.com/adam-p/markdown-here/wiki/Markdown-Cheats...

It seems that the authors made a specific point to not use Markdown:


My point of view is that asciidoc is really powerful and underused, that's why i focused on it.

However, HubPress is powered by Asciidoctor (http://asciidoctor.org) which provide a compatibilty with Markdown : http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/...

I'm surprised there aren't more things like this out there. With GitHub, Tumblr, etc. basically allowing you to host almost whatever you want it's surprising people still pay for hosting their small, personal-ish websites.

I guess I'm out of the loop. What cool things can I do on tumblr?

For 1, you can use tumblr as your media CDN, i.e. post photos, videos and other bandwidth heavy stuff, and use the tumblr API to access and display them on your website / blog.

tumblr actually allows you to use custom domain, i currently have 4-5 domains where my clients only update once a year for an event. i make up a custom theme and them take it over. no fuss around with hosting it.

Yeah, especially because you can host it on a custom domain, and having your website in a git repo is pretty nice, using githuh for your blog / homepage / whatever seems like a no-brainer.

Last I heard using your own domain on top of github had issues, has this been resolved?

I've recently done this for one of my projects and didn't encounter any issues at all.

I find the concept of using a content editor on top of a SCM as a CMS very intriguing. Thanks for sharing - Can anyone comment on how this compares to http://prose.io/ ?

It looks like a dialled-down version of Prose without image upload and more elaborate metadata/YAML options.

Prose is beginning to pick up after it changed maintainers, but there are still some hangups such as image upload that need to be fixed.

Some time ago I wrote Coisas[1], which is somewhat like this, but with Markdown and YAML Front Matter and not so much visual appeal as Hubpress. Anyway, it is a nice thing, runs in your browser and publishes to GitHub Pages. Small and modular codebase, you can fork and modify it easily.

[1]: https://github.com/fiatjaf/coisas

I've been working on similar things, so this is really cool. Although, as an advanced jekyll user, all of my solutions revolve around GitHub Pages + Jekyll combination, which I think is the best offering for static websites.

My solutions are called potion (discontinued) and Sazed (assembly.com/sazed)

Thank you kindly for introducing me to assembly.com.

Anyone else gets an authentication error when trying to login to the admin console with github credentials?

Hi, i'm the creator of HubPress, to log in the app, you need to update your config file :


In your case :

{ "meta": { "username": "msravi", "repositoryName": "msravi.github.io", "branch": "master" }, "theme": { "name": "Casper" } }

Duh, thanks! That was real stupid of me.

you have to fork it to a repo you control.

Yes, I did. And I updated the config.json to use my username and repository name. But once I go to <username>.github.io/hubpress and try to login, there's an authentication error. Looking at the console output shows this:

""" AuthServices - login error Objecterror: 404path: "/repos/undefined/undefined"request: XMLHttpRequest__proto__: Object__defineGetter__: function __defineGetter__() { [native code] }__defineSetter__: function __defineSetter__() { [native code] }__lookupGetter__: function __lookupGetter__() { [native code] }__lookupSetter__: function __lookupSetter__() { [native code] }constructor: function Object() { [native code] }hasOwnProperty: function hasOwnProperty() { [native code] }isPrototypeOf: function isPrototypeOf() { [native code] }propertyIsEnumerable: function propertyIsEnumerable() { [native code] }toLocaleString: function toLocaleString() { [native code] }toString: function toString() { [native code] }valueOf: function valueOf() { [native code] }get __proto__: function __proto__() { [native code] }set __proto__: function __proto__() { [native code] }app.js:3544 (anonymous function) """

I have a similar issue. I was able to access the admin console, but get a 401 when trying to save anything.

I had a look to your configuration, it seems to be good. Are you still blocked ?

Yeah, when I hit save from the admin console, I errors in the console, like:

http://msluyter.github.io/blog/hubpress/scripts/Dexie.min.js... Failed to load resource: the server responded with a status of 404 (Not Found)

I'll open an issue in the main hubpress project I guess.

There is an issue for 404 on the map files but in your case it's not the problem.

In your config file you must set the repositoryName to blog (I added a comment on your commit)

Sorry i did not see it before.

Does it need my password to go through HubPress?

No. I risked it and it only sends your password to GitHub.

That's right, your credentials are send to GitHub, then a personal token is generate through the GitHub API, and its use for each futur call

Cool concept, but does it work with GitHub 2-factor authentication? (cursory testing says no; anyone else get in?)

I'm also unable to login with 2-factor auth. Console says a 401 error.

2-factor is not implemented in the preview, but i will work on it asap.

You can create a other github account and give him access to write on your repository, it's a kind of workaround if you want to keep the 2-fact auth on your main account

Anyone else unable to use this as they have 2FA enabled on their github account?

I think a Youtube videos does not qualify to be titled as 'demo'.

You are right, it is more a preview than a demo, i'll change that. Thank you

I'm reading this later, but upvote based solely on the title. ;)

Logo looks like Hivestreaming. https://www.hivestreaming.com

Downvoted because HiveStreaming has nothing to do with this.

The logos look alike, why is that not "having nothing to do" with each other?

Btw. thanks for providing reasons instead of simply downvoting, though.

Cool story bro

And like hugo: http://gohugo.io/

At least the colour is distinguishably different. The other one is really close. Good info anyways! "H" might not be a cool logo to take.

It's a valid info I think.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact