Painlessly manage a story website programmatically?
June 29, 2012 7:23 PM   Subscribe

I'm a programmer, and I want to create a static website to host my stories.

This thing can be quite ugly. People will still find me and read because of my niche topic. I do want to self-host so I can stick in a good contact form and collect emails to send out story updates and stuff.

I'm got a simple one column template, but I'm already going crazy pasting headers and fixing Chapter 1, 2, 3 links. And the layout isn't well tagged for simply changing the CSS to get different looks.

I've gotten a simple rails app running on Heroku before, but that's got to be overkill. But there's GOT to be an easier way to do this--I should be able to generate pages using fields and templates! And easily change the look and feel by fiddling and regenerating!

I see a lot of programmatic static website generators when I google... Can anyone recommend anything?

Should I use a CMS instead? I feel like a generator would ultimately be simpler--I don't really want to deal with a database or the security issues of a dynamic site. But I was also thinking of using Django because I think I can have auto-generated database pages with copy and paste fields? But again, this site is really going to be very simple

What would you do, if you'd rather spend your time writing than managing a website, but you still want total control and your own domain? I shouldn't be hunting down broken links in the year 2012!
posted by zeek321 to Computers & Internet (16 answers total) 16 users marked this as a favorite
I really like Django, though I am not at all good at using it yet. It's very very strict, but it always does what you want as long as you tell it nicely.

But Wordpress really is fine for just posting text -- I mean, it's kind of ideally suited to what you want to do -- and it's easy to put a field in for email updates. And you can use your own domain name with Wordpress, very easy.
posted by Made of Star Stuff at 7:38 PM on June 29, 2012 [3 favorites]

Wordpress would be easiest as far as i can tell from your description. You can do a custom post type as well if you need it more customized.
posted by pyro979 at 7:45 PM on June 29, 2012 [1 favorite]

Jekyll might be exactly what you're looking for. Make templates, run a simple command, and it outputs HTML. It's what powers GitHub Pages.
posted by deansfurniture5 at 8:11 PM on June 29, 2012 [4 favorites]

Wordpress naturally lends itself to a reverse chronological blog format, but if you use static pages for chapters, and set up a left or right column layout for said pages, this could get real easy...
posted by randomkeystrike at 8:18 PM on June 29, 2012

Django is quite nice, but I'm not sure it would really help you do what you want. I 100% recommend it for more dynamic tasks, though.

Similar to Jekyll are Blogofile, git-blog, and Cytoplasm. I haven't used any of them enough to make a recommendation though.
posted by hattifattener at 8:21 PM on June 29, 2012

Perl for your own stuff, embedded widgets for everything else.
posted by motty at 8:55 PM on June 29, 2012 [1 favorite]

Octopress is a more streamlined version of Jekyll. I like it.
posted by duckus at 9:26 PM on June 29, 2012

I had to build a website under similar constraints a couple of years ago, and went with the Perl Template Toolkit. It's not the most modern approach to web development but it has good features, is mature and does what it says on the tin. Add a couple of scripts to automate the building and publishing process, and checking for stuff like dead links or unreachable pages and you are good to go.
posted by Dr Dracator at 9:50 PM on June 29, 2012 [1 favorite]

This post makes me want to write a HTML templating engine using nothing but a C preprocessor.

I actually rolled my own when confronted with this problem: I write markdown and some HTML template pages, and a perl script renders the markdown to HTML, concatenates it with the templates for the navigation and such, and outputs HTML files. The script will also build indexes by using each markdown file in a directory and creating a link in the template from that, etc.
posted by tylerkaraszewski at 10:12 PM on June 29, 2012 [2 favorites]

I like The Chronicle Blog Compiler. Very simple, easy to customize, and the guy has his own Debian repository for upgrades. Those above describe rolling their own: this is what I would have done if I was less lazy, except that I never would have gotten my shit together enough to set up a release process, publish the code via Mercurial, and have apt repositories.

The copyright notice says he started it in 2007, Mercurial says the last update to the source was made three days ago, and the current release is version 4.6.
posted by XMLicious at 10:53 PM on June 29, 2012

Check for broken links with Xenu's Linksleuth.

For myself, I use a nearly 10 year old copy of Macromedia Dreamweaver (yeah, it's Adobe now), and that does everything you want. Templates, CSS styles, uploads static webpages, and synchronises any pages that have changed if you do change the template.
Actually, I lie - checked the version history, and it's 12 years old.

So, while a new copy of Dreamweaver might be out of your budget, and old copy floating around is still very, very usable.
posted by Elysum at 11:37 PM on June 29, 2012

Don't self host! Just don't! In this day and age there are free online services to cover all your bases that self hosting is just a waste of time - unless you plan to learn something through the hosting.

I understand you're a techy and want to self host. But if your goal is to write then you ought to avoid self hosting. How many hours have you already spent on hosting queries and not writing?

I second Wordpress. It's the most straightforward and intuitive publishing platform around. Use to avoid any hosting hassle whatsoever. And have you thought about how your site looks on a myriad of mobile and tablet devices. The important thing is to get your content out there and into people's hands. Wordpress will take care of everything else for you. Of course there are other services, but I find Wordpress of particular quality.

As for email collection. Use a service such as Mailchimp or Campaign Monitor. You just paste a bit of code from them into your page content and you have newsletter registration which works for all people on all platforms.
posted by contentedweb at 11:43 PM on June 29, 2012

If you're a programmer, and you don't care if it's ugly or not, why not just whip up a quickie css template and then slap up a page in straight html, hosted on any of the basic popular resellers (dreamhost, small orange, etc.)? Why bother with all the drupal/wordpress/joomla/whatever? (I use wordpress personally, but only because I recognize that I suck at graphic design.)
posted by paultopia at 1:27 AM on June 30, 2012

Seconding Jekyll. I started a web site/blog of sorts and wanted to sidestep the endless configuration/tweak cycles you can get into with a CMS (it's easy to wind up doing more fiddling with settings and plugins than writing), and I also kind of wanted to go back to the 1996 aesthetic. This (self-link, obviously) is what I wound up with. It's ugly, barely organized, and unfinished, but working on it definitely harkens back to the days of hand-coding HTML... but with templates. And of course, if I decide to make it pretty later on all I have to do is find or design a nicer template and rebuild.

It hits the sweet spot between wanting to work on a site "by hand", but without all the "Change the design here, have to manually change it on all my other pages" headaches that led people to design CMSes. It also comes with some pretty slick import tools; I was able to migrate the older posts out of Drupal (I think it was Drupal) surprisingly easily.

I signed up for comments via Disqus, and I'm sure you can find a suitable service to collect addresses. I think MailChimp (mentioned above) will let you have a list of up to 500 addresses for free.
posted by usonian at 4:37 AM on June 30, 2012

If you like Rails but think it's overkill, check out Sinatra.
posted by callmejay at 7:35 PM on June 30, 2012

+1 Octopress. This is just what it's for, it's active, and it does have a community (however small).
posted by 23 at 6:33 PM on July 3, 2012

« Older Invasive, external banner ads that won't budge are...   |   What to do with Carob Molasses? Newer »
This thread is closed to new comments.