Ghost Launches to The Public
blog.ghost.org
blog.ghost.org
Ghost would have cut-off points with major versions,
allowing core developers to remove old code from the
codebase and evolve the platform to allow it to improve.
No one expects an app written for OSX 10.4 Tiger to work
on OSX 10.8 Mountain Lion.
Oh, hell no. Backwards compatibility is way more important than some shiny new feature. When I upgrade my software, I expect it to work better, not break. If I have a working plugin from 5 years ago, why should I have to fight with some pointless API redesign just to get it to work again?In the real world, people need compatibility more than they need whatever cleanup you're able to do by breaking compatibility. Heck, in many cases you can get both by doing your rewrite but leaving a compatibility layer on top that gives you the compatibility that you need.
I'm so sick of trendy "modern" frameworks like Rails that break compatibility every 5 minutes, and listing breaking compatibility as a major feature is a huge turnoff.
How about focusing on spending the pre-1.0 releases iterating and designing a really good API that will be amenable to backwards compatible extensions, and then sticking to that API and backwards compatible extensions to it for the forseeable future?
I think there's some good precedence for that with Firefox who (still?) deliberately broke all their extension compatibilities on every release, and contrary to that Wordpress who've led to a fully automated exploit ecosystem.
The difference between 10.4 and 10.8 is seven years. That doesn't seem like an outrageous amount of time to break compatibility.
Unless you're a large organisation paying a lot of money, you aren't likely to get 5 years of support for a particular version of most products.
http://support.microsoft.com/lifecycle/?LN=en-gb&C2=1173 http://www.microsoft.com/en-us/windows/endofsupport.aspx
Of the new software that still claims XP compatibility, much of it requires SP3.
So actually, XP = XP SP3.
Forever? At least the linux kernel has an explicit goal of never breaking userspace. That doesn't mean other parts of userspace don't break themselves, but the linux kernel has as a development goal to never break binary compatibility for userspace.
But I still admire the kernel for their stance even if it can't solve every compatibility problem.
Time and time again, rolling software has proven to be more secure than static releases. A plugin from five years ago that hasn't been maintained in that time is probably going to hurt you a lot.
Hopefully a lot.
When you have constantly breaking API changes, and then someone has an essential plugin that's unmaintained, then they're a lot more likely to stay with your old, buggy, insecure base package, rather than finding someone who knows how to update their plugin (remember, most users aren't programmers, and most have installed plugins for a reason).
What you do is try to minimize the API surface that plugins have so it's easy to maintain backwards compatibility, and minimize the impact that older plugins can have by keeping them reasonably well isolated.
Unless it just does some simple, or basic thing. In which case, you're still hurt. But in a different way....
The other way around is different, of course, as as a huge number of new APIs have been added since then.
The Ghost admin panel doesn't allow editing themes, the post doesn't have buttons that allow you to quickly format posts, there are no SEO options/plugins, there is no theme editor that allows editing of themes, no sidebars, no multi-user creation, no e-mail to post, etc. Too many features are missing and this is very simple. WordPress is better, there just is no debate on this right now.
Also, we are talking ~37k lines of code, not exactly something you can write in a week or two for $500.
I have used plugins that haven't been updated for four years without any issues.
Of course, one way to achieve this is less reliance on add-ons, so you have less API surface to expose. Having a usable WordPress install relies so heavily on add-ons that it's kind of pointless to consider WordPress alone.
I want a frozen codebase that only worries about critical security updates.
In the real world, you will break your site by adding new plugins every few months. The site will break. I get a stable codebase and I sit on it.
Development causes bugs! Milestone releases are what I want.
> In the real world, people need compatibility more than they need whatever cleanup you're able to do by breaking compatibility.
Here's the thing: if you're a user that needs compatibility don't upgrade! (not an option with most blogs) If you're always adding new functionality and plugins to your blog, things will break. If your business needs constant new web technology updates, use a real CMS and fix them when they break. They will break, they always break.
#Supporting older versions is a pain. Supporting all features in older versions AND newer versions to work together is an even bigger pain. Example: Wordrpress.
#Compatibility for older version leads to bloated code, with too many legacy variables, too many points of failure. Example: Wordpress.
#Evolution of any software requires that it discards old ideologies and embraces the newer ones. The ones that don't do, tend to drift away from the main goals. Example: Wordpress.
Wordpress was started with the exact same intention as Ghost and yet, what you are left with now is a half-baked unstable CMS, and a half-baked blogging platform that breaks old plugins with each upgrade.
If you want to embrace progress, then you must embrace C.H.A.N.G.E. And this is not just for software.
In the node world, it's easy to find reference code on libraries and modules, but I always fail to find a source of some practices further developed than todo lists. It is not about the code (which as far as I have looked is Ok), but about tying technologies and practices together.
Here, we got a node express backend with handlebars as the templating engine, defined grunt tasks, some unit tests and backbone on the client.
I am really looking forward to keep diving as the project progresses!
By the end of it you might, like me, just continue with your own framework (when you can of course).
JS BINGO!
Sorry, I couldn't resist. I'm something inbetween disgusted and amused by this soup of JS libraries and buzz words. I feel like I'm gonna vomit while laughing.
Here, we got a python flask backend with mustache as the templating engine, defined fabric tasks, some unit tests and backbone on the client. CPU sensitive tasks are handled by Celery or RQ, on Redis or RabbitHQ.
Maybe you would prefer:
Here, we got <Insert your language here> , with no templates, some bash scripts to build the project, no unit tests and a half-assed mess of javascript spaghetti code tied together on the client.
I must ask, if you do build websites, how do you (or if you do):
- Use a framework
- Use templates
- Minify and build assets
- Test your code
It's been many years since we have moved from frameworks that do everything, to small libraries that do one thing and to it well, sometimes opinionated or not. For me, choice is better.
It is always a good pass time to look how people build their projects, compare it on how you are doing it, and decide if you can learn something from that. I might be wasting my time, and your comment was just an opportunity to bash on a language or community. I could not care less, as I have no cards on this game. Just use whatever works for you.
Maybe you can try looking into one profile.
But it is /not a CMS/. It's a blogging platform, and it set out to not become what Wordpress has turned into (a CMS).
That's not to say they will become Wordpress, but just to point out that content management is in fact part of what Ghost is created to do.
Fine for a default though. As long as you can switch it later.
I think now that you've made your point I may abstract models to the point where the database can be either MariaDB or a bunch of JSON files/SQLite. Its tricky because I build databases for performance and scalability over flexibility.
To give you an idea of what I mean, Wordpress makes me cringe in the way they handle their tags, categories etc. and the sheer amount of SQL queries and joins for a simple front page. I make at most 2 queries for the front page (excluding sidebar, which would be cached), the user session authentication and the articles. I make no queries if I can help it ( Caching in node.js is so fun ). Categories are always in memory, along with user roles, settings etc.
It's really quite glorious having a readily available memory store. I'm getting around ~500 queries per second to my front page in apachebench, which would normally have about 7-10 queries to the database.
The WordPress community is rivaled by none and that makes it a hard option to pass up on a budget.
edit: This isn't to say I prefer WordPress over something like Ghost. What I do prefer is something stable with a healthy community. I wish Ghost as well as others like it the best of luck in getting there.
Where do you guys get off saying such things? It's a completely absurd statement. Of course you can't do that.
It's a well-trodden rite of passage for many web developers to end up writing a CMS or three from scratch (which are always limited, clunky, and unmaintainable) - until they get sick of getting caught out by edge cases on things like multiple editors in race conditions, CSRF on forms, scheduled revisions, password reset flows, user synchronisation, localisation etc.
That may be a great learning experience for a developer but expensive for businesses that end up having to migrate and re-platform after a year or two. It's really hard (and dull) to create a good CMS, and even then the considerations go beyond technical as this is a piece of business infrastructure. Why do you think Wordpress has so little competition even though it's a large and valuable market?
The whole Ghost thing I should have mentioned is IMO a pretty sweet concept and not at all a bad followthrough. Their marketplace, partnerships, capital etc. make them a much better contender than my team could be.
My gripe is that it appears tied to SQLite, and I can't use Postgres. Oh well, wasn't planning on using it anyway.
So in theory putting in the correct connection config should allow you to use Postgres.
I just like Postgres, that's all.
"optionalDependencies": {
"mysql": "2.0.0-alpha9"
},
And this guide [2] seems to indicate that PG support is possible.[1] https://github.com/TryGhost/Ghost/blob/master/package.json
[2] http://www.howtoinstallghost.com/how-to-install-ghost-on-her...
Your prep work in isolating the database work may even be something the Ghost people themselves would be interested in merging, as it's just good design to do so (if they hadn't already).
This is a bit of a shameless plug, but I figure it's relevant to this topic. I just put up blog post introducing my new project, Grow (http://about.grow.io/blog/all-i-want-to-do-is-build-a-web-si...). Grow overlaps with Ghost in some ways, but attempts to be a full-fledged, modern file-based CMS and is not designed just for blogs alone. I've been following all the replies in this thread to get a better idea on what people are looking for, and I think I've nailed it.
Basically, the way I've architected Grow is the whole system is file-based: content is stored in Markdown or YAML files, templates are stored as Jinja2 templates, separate from the content.
When you start up a Grow server for development, essentially what amounts to a super lightweight in-memory index is created from the file structure, and that allows your site to be generated (including pages that leverage complicated queries or access content through taxonomies).
This design keeps everything incredibly portable (zero-configuration development AND zero-configuration deployment) – which is one of the values that I hold to be very important. Anyway, the project is still super young (and my blog post is light on technical details, but I'm working on it), so I'm interested in getting any early feedback.
the db is sqlite by default, and its stored in content/ with your themes and other stuff (?)
so you just backup your content directory ;d
Glad to see this, hope it will keep up the expectations.
[0] http://www.kickstarter.com/projects/andrewgodwin/schema-migr...
Thanks for the Git-Annex link - didn't know he ran a campaign on his own after doing it on Kickstarter.
From a first glimpse:
Plus: - Good design, simple to use, friendly colors. - MIT license. - Well done support forum.
Minus: - Features should be more clear. - I might be mean but when I read "Just a blogging platform", I automatically read "Just a(nother) blogging platform." - Better replace the laptop+wodden table+moleskine+coffee stock image with something better. Everyone is using that stuff right now. If you want to be different, better look different. - Why the name "Ghost"? Maybe it has some meaning? - Git Link way too hidden.
Good job!
Svbtle and Medium are hosted (and as a result, controlled-by) a 3rd party. You host Ghost yourself, giving you complete control over the platform. I think a better comparison would be probably be to Wordpress.
I'd like to hear a comparison (though happy to throw wordpress in the consideration pool too)
Maybe some people shouldn't be spending any time configuring a server for a blog, but I have been increasingly working to take back control of my data and it's related services. That means I want to be able to install things on a server of my choosing. This also means FOSS wherever I can possibly put it. I would even happily pay for the FOSS, but the thing I hate the most about medium, svbtle, and the others, is that I can't use the platform where I want to and I don't see gpl/mit anywhere.
I understand that your intention is the hosted segment, but I really think you could gain a lot more traction by going to a one time price, FOSing the code, and still offering a paid hosting service for those that want it.
Maybe it's just because the older I get the more I am aligning with RMS.
However, there are a number of people looking for hosted solutions so they don't have to waste any time with config issues. This is where Silvrback comes in. Also, Silvrback should really only be compared to the hosted version of Ghost (which isn't out yet). Comparing it to open source isn't really possible.
I don't really understand this line of reasoning. You are running code on your servers, are you not? Your code is either closed or open. (closed) How is comparing it to open source not possible?
I would have expected you to use something like TinyMCE. Markdown is like coding for non-programmers.
I'm speculating wildly here, but maybe because the blogging platform becomes invisible, like a ghost. A similar approach to LaTeX for word processing. And also perhaps because of the writing theme, as in ghost writing.
(BLO)Ghost?
I also have an instance up and running[2] if you want to play with it. Messing it up doesn't matter to me as I will just docker run a new one. Have fun.
Username: nstinemates@gmail.com
Password: demodemodemo
1: https://github.com/keeb/Ghost/blob/add-dockerfile/Dockerfile
2: http://stinemat.es:49429/ghost/
edit: One of you lovely gentle souls decided to change the demo password. Thanks for making me have to `docker stop` then `docker run` a new one and inconveniencing me for all of 2 seconds.
Link updated.
Or if you want a private instance I will make no guarantees about just send me a note. I'll be happy to provide it on a subdomain of your chosing.
In case anyone's looking, this PPA[1] seems to come recommended and has an up-to-date node.
For example in my fork of Dokku I replaced Heroku buildpacks with plain Dockerfiles to define both a stack and a runtime dependencies — https://github.com/andreypopp/upaas
http://blog.argteam.com/coding/hardening-node-js-for-product...
Basically Nginx is used as a reverse proxy to serve requests from a pool of Node.js processes, each with its own internal port. So you would set up the Node.js app to run internally on ports 8080, 8081, 8082, and 8083 for example. (If you have a quad core server this assures that under extreme load each processor can be fully utilized by one single-thread Node.js process). Then Nginx serves requests on port 80 by fetching the response from one of those four internal ports in round robbin fashion.
If one of the processes crashes due to a bug or you want to specifically restart it so that a new code update takes effect in production then Nginx will automatically remove it from the pool while it is down and then add it back when it comes back online. When you are pushing out code updates you can cycle each process one at a time to do a zero downtime deploy.
The other cool thing that you can do with Nginx reverse proxies is use the proxy_cache as a robust cache layer to almost completely remove stress from your blog under high load.
Honestly for a basic personal blog this technique probably isn't really necessary. You could just run it through Forever on port 80 with no Nginx and forget it, but if you expect tons of traffic, or if you want high 99% uptime, or if you just want to have some fun configuring a server then the technique I explained above is how you do it. It takes some fiddling to get Nginx configured properly and that tutorial I linked actually leaves out some details of the upstream server configuration but its pretty easy to figure out from the Nginx documentation.
[1] http://0v.org/installing-ghost-on-ubuntu-nginx-and-mysql/
* [edit] Download link seems to have been fixed.
* Cloned the repo instead and set everything up. Cloning the submodule for the theme didn't work due to some rights issue. Cloned it by hand then.
* Setup was pretty easy otherwise, even though I'm using the development version.
* [edit] Nevermind. You can signup without the mail sender beeing setup, just not recover the password it seems. Notifications per mail are also disabled. Should have read more carefully.
* No direct link to the interface on the blog index (or am I blind?). Have to add /ghost by hand.
* Rest seems pretty nice, though barebone. No comment system, why? The only benefit to static blogs that is left is the online editor.
> Open Signup on Ghost.org The most important piece of news, of course, is that Ghost.org is now open for signups from everybody. Get over there, create your account, grab your username, download Ghost, and check out the forums.
The top comment only confirmed my suspicions.
Path A: Warts and Brew: * Mac OSX 10.9 * latest homebrew
1. brew install npm && brew install node.js
2. gem install bourbon && gem install sass
3. Then: Do the Installation / Setup instructions here:
https://github.com/TryGhost/Ghost/blob/master/CONTRIBUTING.m...... because: you have to install some ruby templates and such .. please note that you should also have done 'gem instal sass' step above, before you do step #3 ..
I found it works quite well if you get through that setup. I'm impressed enough to have been using it as an app for the last day or so .. its got a nice interface. I'd love to have time to hack up more templates.
Plan B: The easy route: vagrant Well, another great use for vagrant. Works very smoothly as well: https://github.com/TryGhost/Ghost-Vagrant
The download link seems to have been fixed so I'll take a look at the packaged version. I reckon it requires nothing more than unpacking and installing the dependencies.
Of course there are installers as well which probably require no user input at all.
For all of its flaws, documentation is an area that Microsoft does very well. IMO, many companies and projects would be better served by step-by-step guides.
The following are the commands I used to setup Ghost on Ubuntu Linux 13.04 x64. The only assumption below is that you have git setup already.
# switch to root so you don't have to sudo repeatedly
sudo -i
# Install node (user private install).
cd; mkdir packages; cd packages; wget http://nodejs.org/dist/v0.10.20/node-v0.10.20-linux-x64.tar....; gzip -dc node-v0.10.20-linux-x64.tar.gz | tar xf -
echo 'PATH=~/packages/node-v0.10.20-linux-x64/bin/:$PATH' >> ~/.profile; source ~/.profile
which node
# Install ruby and gems
apt-get install ruby
gem install sass; gem install bourbon
# Install Python
apt-get install python python-virtualenv
easy_install Pygments
# Clone Ghost (assumption: you already have git installed/setup)
git clone git@github.com:TryGhost/Ghost.git
cd Ghost
git submodule update --init
npm install -g grunt-cli
npm install
grunt init
npm start
# Open Ghost
Open a browser to http://localhost:2368/ to view the blog or open http://127.0.0.1:2368/ghost/ to view the admin UI.
1: https://github.com/keeb/Ghost/blob/add-dockerfile/Dockerfile
15923 error sqlite3@2.1.16 install: `node build.js` 15923 error `cmd "/c" "node build.js"` failed with 1 15924 error Failed at the sqlite3@2.1.16 install script. 15924 error This is most likely a problem with the sqlite3 package, 15924 error not with npm itself. 15924 error Tell the author that this fails on your system: 15924 error node build.js 15924 error You can get their info via: 15924 error npm owner ls sqlite3 15924 error There is likely additional logging output above. 15925 error System Windows_NT 6.2.9200 15926 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--production" 15927 error cwd C:\Users\Nick\Downloads\ghost-0.3.2 15928 error node -v v0.8.16 15929 error npm -v 1.1.69 15930 error code ELIFECYCLE 15931 verbose exit [ 1, true ]
"We have successfully created the world's first fully functioning blogging platform built entirely with JavaScript."
Really? The world's first entirely JavaScript blogging platform? Google turns up plenty, albeit not quite as polished.
Ghost has many (all?) of the above, and that's relatively rare in any ecosystem (PHP, Ruby, Python, whatever) for a young project. If this project can continue building momentum, then it would truly be unique in general and certainly in the JS ecosystem.
ETA: When I say tricky throwing around labels, I mean one thing can mean one thing to me and something else to you. I guess semantics would be the short word for that.
"you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by Ghost Foundation or otherwise"
There's also the combination of reserving the right to take down any content for any reason. That's fine for a free service, but unacceptable for a paid one, particularly one that claims that it needn't give refunds.
Where is the proof of this? Any hard data on customer account numbers or growth?
There are lots of solid VPS providers out there. I don't see why Digital Ocean gets so much hype.
Edit: http://www.ghost.org/features/
Looks like markdown+looks stylish. Not sure what else.
http://www.kickstarter.com/projects/johnonolan/ghost-just-a-...
http://brislink.github.io/specter/
I don't think it's out to replace Wordpress like Ghost is trying to do though.
- Wordpress has become a over-convoluted behemoth, with a needlessly complex structure that is not overly extensible. It is a pain to develop for/with/around.
I think everyone can appreciate the very tangible effect that Wordpress has had on the web. However, it is currently in the rather painful throws of a transition from blogging platform to CMS, and has been for quite some time.
There are number of other reasons:
- You want to avoid PHP.
- You don't need most of the feature bloat that comes along with Wordpress.
- You want to use Markdown.
- You want to try something different.
Then again, Markdown would be neat to work with, but in the end I'd just rather use html if I need to markup something. And I do like trying new things.
I have also built tooling, plugins & themes for wordpress. I personally found it to be a frustrating experience: like I had been lobbed back to the days of PHP 4 when I thought all the PHP haters might have had a point (I wish to be emphatic - I don't think this anymore).
From a development perspective:
- The "loop" is bad design - with no regard for separation of concerns and maintainability.
- The lack of namespacing means you have to go through a dance, working around Wordpress's idiosyncratic structure, in order to build around Wordpress effectively.
- I personally don't think much of their documentation.
You say "SO many reasons", but at best you have 4, of which only one seems to hold any weight. Avoiding PHP is not something the average blogger would care about, bloat = features and most normal people like features, trying something different is woolly at best, which leaves wanting to use markdown. Do that many people really want to use markdown?
Are you 100% sure this isn't just an anti thing like anti MS, anti facebook, and now anti wordpress?
Wordpress used to be that but it's turned into a huge CMS that's trying to do 2000 things at once. Jack of all trades and master of none if you will.
Wordpress isn't? Unless things have changed you install it and start adding blog posts.
That's what ghost is. It's a blogging system without all the added bloat and horrible API's to go with it.
???
1) Log into admin area (usually /wp-admin)
2) Click "Posts" on left sidebar (first icon on the top)
3) Write
4) Submit
Is the current iteration of wordpress different from this workflow? Is Ghost different?What do you mean by "setup and run"? The work setup is extremely elastic. WP is setup and run. So is a particle accelerator, as is a fridge.
You mean being anti things that you have very good reasons for being anti? I suppose it is like that.
And, really, is it not clear Im implying that there is a lack of good reason, and that this all sounds like a knee jerk hate thing?
Really, so far, there is no positive reason to use this except some people like the idea of something with less features.
Seriously, what is so good about this? Remember I started by asking what the "So many reasons" are, and so far people are simply saying that its not WP, which was one of the 4 given already.
Hardly a ringing endorsement. Right now, use WP. In the future you might want the extra features, right?
Wordpress is a fine product. I've used it in the past. It's complete overkill for what I want to do with it. They want to become a CMS - that's fine, but I wouldn't run a simple blog on Wordpress any more than I'd run it on Joomla or *Nuke or Drupal.
I want a space to write that supports markdown, looks decent, isn't PHP (an objectively terrible language that I have no desire to seriously learn), and is light enough to run on my microserver.
Yes, of course it was clear. Since my post wasn't, I'll state it more clearly: I found it highly amusing that when trying to think of companies that no-one would have a reason to dislike, you chose Microsoft and Facebook.
Simply using their products would provide a few pages to start with :-)
You couldn't possible be claiming that the Wordpress interface is the pinnacle of UX research and advancements. Its fine. Just fine.
You mention that bloggers won't care about platform choice, feature bloat or trying something new. Fair enough. Something bloggers would care about is blogging.
Ghost is a simple, focused, blogging platform which is entirely focused on this purpose. As a victim of it's own success, this is not something Wordpress can reasonably claim to be any longer.
Wordpress is a full blown CMS, a title which comes with it's own set of advantages and disadvantages.
I would argue that there is room in the market for both the "Jack-of-all-trades" approach, and the focused, "bare-bones", approach.
Furthermore - my comment was initially in response to an assertion that there were no reasons to be excited about Ghost. I would suggest that, even if they are not reasons you care about, this is untrue.
At the end of the day it comes down to a personal choice of tools. I need a screwdriver; sure, I could use my pen-knife (which also has a torch, bread knife & tweezers), but it might be slower / more fiddly; or I could use a screwdriver.
Wordpress isn't the right tool for me anymore.
You claimed "SO many reasons", which implies lots and lots of reasons, especially with "SO" in capitals, but you you only listed 4, most of which IMHO were weak, and really only there to puff up the main reason which is that you don't like WP. In fact, in this new tact of yours, you just go on to criticism WP.
But, all you can say to sell this product is that is has less features than WP, and, well, its not WP. But WP works, and works well. So, unless one has a huge problem with WP, which millions of users seem not to have, I'm still don't see much of an answer to the OP's original question, "why should I use this and not WP?"
And of course its personal choice. There are already many alternatives already out there to WP. Most of them as light as this product is, there for already filling the gap for something bare bones. Yet, people make that personal choice to use WP, in their millions.
One big reason people would go for feature rich WP is future proofing. Would be a bit of a mare to use this, then discover you needed more features in the future and have to ditch it for WP, or similar. On top of that the massive user base gives rise to a massive amount of support knowledge. Always a comfort.
Finally, I have to say, if a hacker type in the web business wants something bare bones, what one earth is one doing with blogging software at all? Surely bare bones would be straight HTML with a sniff of CSS? Don't even need a database, and let evil google do the searching. In is most basic form, blogs are just blocks of text linked up. Im pretty sure most people here could rattle up a serviceable blog site in less than a day. I know I could, and I'm crap.
You know, well done to the people who did the work and what not, but Im not seeing any massive positive reason to use it over WP. In fact, in some ways I see it as a risk. What if I want to expand in the future, and this simply cant have the same level of support information. Which is a shame.
Good marketing showing how to solve problems most perceive they have...
I use PHP extensively and think it has come a hell of a long way over the last couple of years. My meaning with the orignal point of "avoiding PHP" was more in the spirit of platform considerations.
You may, for whatever reason, not want to include PHP as part of your system architecture. By being written in JS, Ghost offers an alternative in terms of platform (where something like Drupal, or Dropplets would not).
The problem I have is why on earth is this an important feature set?
> You may, for whatever reason, not want to include PHP as part of your system architecture.
But why? why? why? Why it does it matter if it's called PHP or JavaScript or GabeSpeek (made up). As long it works and it's maintainable, why on earth does this make any rational person's (not saying you specifically) list of features?
So it is down to network effects. Everyone knows Wordpress and the famous five minute install.
If Ghost is easy to theme and the templates easier to read / build / maintain then that's a big plus for me. I may not want to touch any code on the thing, but I would certainly want to do work on the templates.
Are the posts stored in a db or are they generated HTML?
Plain, old, generated HTML works perfectly. Plus it is very easy to host.
If this is something you guys can implement, I would suggest looking at it.
Your hosting will be MUCH simpler, cheaper, more profitable (even though you say you are running a non-profit), general footprint will be smaller, and pages will load quicker.
That's just my $0.02.
I love what I see here, but I can't bring myself to going back to a db-powered blog from Octopress.
The day you guys implement something similar, you will have 1 more user though!
Either way....awesome execution and congrats on everything you guys have done. Love it so far.
That works for you and me (we're using jekyll here) but not for people that want timed releases and an online editor. Comments will need some sort of database as well, so you'll have to rely on disqus or similar if you're running a static blog.
Comments (outside of Disqus), timed-releases and online editor. Interesting. I can see that.
The blog itself I don't need to be served by the Node app, Apache or Nginx can do that fine.
Well, scheduling and static generation require a cron job that writes the static asset at the predefined time. It all gets complicated from here. You can write the static asset when it's first accessed for example and from there on serve the static file, but that requires a database/storage as well, so you're basically back to square one.
I'd not restrict myself to sqlite here either, but that's a minor nitpick.
I do suspect that Xylakant may be right elsewhere in this thread when she points out that it's not possible on Heroku, but I'm not sure.
Anyway, I would love to see Ghost use a pile of static Markdown files rather than a database for posts. Then, in a couple of years, when I want to use something else, I can take my pile of Markdown files and move along.
However I feel metadata and other structured data belongs in the database for the usual reason: to support unforeseen future queries. That is, to make plugins and widgets easier to develop and better performing (vs, for example, iterating over every post or every comment to perform some calculation).
If you've got thousands of pages, publishing a HTML change could require re-building of all static pages, which means it can be painful maintain once you get to a certain scale.
* "Oh, a New Zealand accent. One of us! I hope this is really awesome and I want to try this out already."
* "Oh, he says he was in charge of WordPress interface design for two years. Using WordPress causes me pain. I expect this product to be painful."
Sadly, this is too common of a fallacy in judgment, and one that seems most non-fallacious on its face. But whether we want to admit it or not, sometimes output and achievements are highly impacted -- even dependent -- on the organization and institution than the individual. So someone highly successful at Apple retail, for example, may flounder at JCPenney's (http://dealbook.nytimes.com/2012/11/12/a-dose-of-realism-for...).
So it goes both ways. It's wrong to argue that someone who was great at once place will necessarily be great at another. And conversely, someone who's work turned out awful at one place (either by poor management or design-by-committee), may flourish in different circumstances
Wait, what?
WordPress' backend may be a mess, but it's CMS interface is the only one I've ever trained a non-technical person on that they liked or seemed to be able to use right away. I worked at a marketing/dev shop for years and have probably trained 40-ish non-techy clients (usually small marketing teams of 3-4) on customized CMS installs. WordPress' dashboard was by far the best when it came to power/usability ratio.
People should be wary of custom built CMS UIs, not only because most people have learned a UI like WordPress or Tumblr.
If you think the UI is painful that I don't have a lot of faith in your ability to objectively judge interfaces especially in the context of history.
I would expect the editor of Logdown much better to use. It reads Github Flavored Markdown, has code highlighting, drag & drop image upload. And it's an online service, so you don't need to deal with the server stuffs. Much easier to use.
> ghost@0.3.2 start /var/www/servers/www..dyndns.org/pages/ghost
> node index
Ghost is running...
Listening on 127.0.0.1:2368
Url configured as: http://my-ghost-blog.com
Ctrl+C to shut down
127.0.0.1:2368 gives me an unable to establish a connection error (btw, I'm ssh-ing into my pi on the lan).
and also 127.0.0.1:2368/ghost where I am meant to access my admin account setup.
Any idea what went wrong?
Because I was ssh-ing into the pi, in the config file, I had to change the localhost address to my pi's address on the lan. Then access it via that lan address with the suggested port.
Sadly, nowadays thats pretty much everyone. If you want me to care about you (apparently/marketwise you don't), then get your design right. Tip: Design is not looking pretty. Design is this question: Does it work?
Turn off foreign fonts (?) maybe 0.001% of web users do that.
Fonts to display icons reduce HTTP overhead and scale, looking great on retina screens.
There are some very good reasons why you'd want icons in a font. For example, font rendering is well supported by all browsers and very configurable through CSS, and if the default font size is increased for accessibility reasons the icons can also scale.
> Why would you turn off foreign fonts?
Because I don't want foreign fonts. They are usually either just bad (e.g. worse than my OS font) or render badly.
> It's an edge case, 0.0000001%, ....
You are not downwards compatible. It's an edge case because you make it one by deciding on web "standards" by thoughtlessly applying these short-sighted idioms.
Using sprites instead of fonts to support users with foreign fonts disabled means degrading the product for some other users. Building a polyfill means not spending the time improving something else.
Why do you consider "support everyone" to be obviously better than "build a better product for a subset of users"?
I feel like the undending debates around this issue (most often regarding JS) exist because some people on HN look at it through a business angle where #2 can make complete sense, while some others look at it through a Web ideals angle where anything but #1 is heresy.
Edit: To be fair, the Web ideals remark doesn't seem to apply to you. You rather seem to consider than being pretty is way less important than supporting more people. But why? Being pretty has been increasingly important this past decade, and especially so regarding blogs where being pretty is one of the few differentiators.
Blogs are my newspapers, thats why. For me accessibility and downwards compatability outweigh the "product" a lot. I have a low-end smart phone for which most "products" are ununsable. Why do people throw away expensive hardware that woks perfectly fine? Because the modern software doesn't run on it.
Take for example the opposite: http://blog.fefe.de
That is a product that meets my demands: I can read on any device, using multiple clients. I could read this page with a dual-core as well as with a gameboy. Serve TTF font's, maybe I rather use bitmap fonts? Doesn't matter.
I could read that blog using Mosaic, lynx, w3m... kindle displays... It also works fine for braille terminals.
I guess I am more interested in powerful systems than the pityful products of the App-bubble. After all I am a programmer.
That's truly sad.
http://en.wikipedia.org/wiki/Mac_OS_X_Tiger
However, Tiger is actually 8 years old. I don't think obsolesence in eight years is too horrible.
By my understanding node.js is rather low-level to be a good platform for content-driven sites. Is this inaccurate?
One of the nicest things about it (aside from the use of node and express, which is very nice IMHO) is that it's open source so you can start looking through the code to find out.
Build failed [sqlite3]: 1 npm ERR! weird error 1 npm ERR! not ok code 0
things i've noticed so far (.3.0):
- no dash yet
- no view posts by category feature
- no list top 10 most recent posts
- kind of confusing or redundant mvc abstraction
i hacked up a view posts by category and a template swap by hostURL in a few hours but the code is really abstracted. it will probably make sense later when all the features are implemented though.
good:
- easy to install
- love the editor
- love the admin
- templates are handlebars and easy
i've been following this for ~6 months now and am stoked to use it. congrats on your release. can we please have a CMS style feature were we can edit some static pages to go into our blogs! PLZ!
i recommend just copything the casper folder and renaming it. (content/themes/casper)
make your own stylesheet and comment theirs out (it, styles, everything). theirs is screen.css.
you can comment out the ghost included {{body_class}} and {{ghost_foot}} by changing them to {{!body_class}} and {{!ghost_foot}}
after that its just 3 files, default.hbs which is a global template (so its like the html head body tags), and then they insert the body at {{body}}
the body comes from index.hbs or post.hbs, which will be index.hbs: 6 article summaries in a list with a page at the bottom. and post.hbs which will just show 1 post.
the data in the post and index hbs files (handlebars templates) has stuff like {{eachpost}} {{post}} which is all you really have to keep out of those files
There is no justification of using any VM for an (cache-able) I/O bound apps. Why do they need nginx as a front-end if NodeJs so great?)
Could the whole engine be implemented as a few nginx's modules using another ready modules?)
Oh, sorry, I forgot to close the tag.
So either you're confused about the relative performance of Node against the other most popular frameworks, or you dislike all of the most popular frameworks and have your own preference for a webapp that you're failing to mention, and that most people disagree with you on the merits of. Which is it?
When one asks yourself what other people in industry are doing, one would notice that, say, Facebook resorted to translate PHP into C++ and compile it into a static binary, that Google is making huge static binaries (who said Lisp images?!) from the very beginning, and other people are trying, for some not obvious reasons, make a huge blob inside a JVM.
There are a lot of reason and logic behind products like Varnish Cache, which is, basically, a thin layer on top of an OS, the way how such apps, perhaps, should be implemented.
Finally, very clever people at Google have noticed that there are much better ways to create huge static binaries than C++ and now we have Golang, which is, probably, the direction a sane person should look at for making yet another blog engine.)
My bet is that if I search github for a blog app written in go, each one of it will beat in terms of resource utilization and performance any Node-based app, for reasons that authors of nginx or Varnish Cache or Google/Facebook engineers took into account.
So, i