(Crossposted at Hahví.net)
Most writers start scribbling stories at a very young age. Not me. I waited until I had graduated from college before I started writing fiction – and what was my motivation? Having read something dreadful, I was struck by the certain knowledge that “Even I could write a better story than that.”
Fast-forward to December 2011. The writers of Book View Café, being well aware of the limitations of our online bookstore, were eagerly anticipating the launch of a brand new website that had been months in the making – only to discover at the eleventh hour that the new website had serious flaws. Correcting the issues would require extensive programming which we could ill afford, and no one felt confident that at the end of it all, we would get the website we wanted.
So we decided to start over.
I’m a fairly new member of BVC, having joined last summer, and hadn’t been involved in the website process, but at that point my occasionally cocky nature reasserted itself. I could build a better website than that, I thought, so I stepped up and volunteered my services.
This wasn’t quite the level of chutzpah I’d shown when I suddenly decided to be a writer. After all, I’d worked for nine years in website development, PHP programming, and database-driven websites. But the website committee was adamant that the new bookstore should run on a WordPress platform, and I knew very little about WordPress.
WordPress is a brand of software widely used to run blogs, including BVC’s blog. I use it myself for my personal blog at Hahvi.net, where I’ve modified WordPress to suit my needs. So I thought I knew some things about WordPress – but as it turns out, I’d barely dipped my toes in the ocean of WordPress knowledge and possibilities…
But I’m getting ahead of myself.
Four of us joined forces in the effort to come up with a new online bookstore: myself, Dave Trowbridge, Vonda N. McIntyre, and Pati Nagle. The first task was to find and test ecommerce software packages designed to work with WordPress. This went slowly, taking up scattered blocks of time through January. There are a lot of ecommerce packages out there, but not very many that can competently handle downloadable products like ebooks. We found a good one though: by early February we’d agreed to go ahead with a product called Cart66.
In most group situations, I’m the cautious one: hesitant, careful, expecting the worst. So it was amusing to be outdone in this regard by Dave, who insisted that we should develop the new site on a test server, so that there was no way we could blow up the live website.
I was concerned. My expecting-the-worst nature reasserted itself and I worried that when we moved the website back to the live server, all the file paths would break. Nevertheless, working on a test server was proper procedure, so by February 21 we had our test site set up and we were ready to go!
Except that the hosting company hadn’t got it quite right. The file permissions didn’t allow us to make necessary changes, so there was very little we could do.
By the next day though, that was fixed, and we were really ready to go!
Progress through February was slow. Book View Café operates on a consensus system. We don’t really have a “boss,” and there was no supreme project manager. This can be a bit frustrating: issues are discussed, people have really good ideas or they bring up valid concerns, but many times no decision gets made—and besides, all of us had our own lives going on and our own work to do. So it wasn’t until early March that I started seriously looking at out-of-the-box themes designed to work with Cart66. I tried out one or two—and I quickly reached the conclusion that none of them were going to work for us.
WordPress themes are designed to make life easy for people who don’t know PHP or HTML. But when you do know PHP and HTML, themes can feel very restricting. It’s hard to design a theme flexible enough to satisfy any user. As an example, many WordPress themes have a massive header image. The one on my blog is a good example. This works on my blog, but in my opinion, it doesn’t work for an online store because the real estate on the page should be showing off the products, not the pretty magazine-style design of the header image.
So I eventually junked the Cart66 themes. Instead, I took a very basic theme, modified it to what I thought it needed to be, and asked my cohorts, “What do you think about this?” I got a thumbs-up on it, and in the process I learned all about “child themes”—something I hadn’t known about before. Child themes are a means of modifying a theme without changing the parent theme. This is important, because it means you can continuously update the parent theme without overwriting your customizations.
This became the pattern for me. Some new feature would be needed so, being used to working on custom programs, I would charge in and start creating it. But because the code is complex and modular, I would have a very hard time with it until, after much Googling, I would stumble over a function or a plugin that would do very easily exactly what I needed. So for me, WordPress was consistently hard to work with until I found the right way of doing something, and then it became incredibly easy. It was like mastering magic spells, one after the other, and I slowly began to grasp the logic and to learn where to look for solutions.
So the basic theme was settled, and Vonda and Pati were working on the details of the CSS. Meanwhile, I was having a crisis of confidence. I had a new book out, but hardly anyone seemed to have noticed. I’d stopped exercising, and my mood was growing bleaker with each passing day. I stopped writing—but at least I had the BVC bookstore to work on. What a great excuse to avoid writing! I enjoy complex website work. It’s challenging, like writing a novel, but the outcome is far more certain, and I can do it no matter how bleak my mood, so I put in a lot of time on the new store—it’s fair to say I was obsessed with it—and knowing myself, I figured it was best to just finish it, so I wouldn’t have to think about it anymore, and then I could get back to writing.
So before long I was satisfied. The store wasn’t a technical marvel, but it was a lot better than what we’d had before.
We showed it to our members. I was a bit nonplussed that the majority of comments we received involved the categories we would use to sort out our books—categories are very flexible and easily adjusted and not very interesting. What about all the cool and challenging stuff we’d done? Like controlling what posts showed up on any particular page? And creating pages for each author, showing their bio and all their books? We had to figure all that stuff out, you know! It’s not like there was a manual; each step forward was a sweet little victory.
But the thing about programming is that when you do it right, the difficulty becomes invisible.
Well, whatever, I thought. I just want to get this project out of my brain-space. So let’s load up our books and get this store launched!
That’s when Dave started making trouble.
In projects other than writing, I tend to be a minimalist. If it works, it’s fine. Right?
Dave, on the other hand, has vision. He’d been looking into what WordPress could do, he was thinking in the long term, and he had ideas. Me? I didn’t want to hear them. The store did what it needed to do. Couldn’t we leave it at that? I’d put in my volunteer hours and I wanted to get back to writing. But while I’m occasionally cocky, I’m not so cocky as to think that my way is always the best way, and eventually I settled down and paid attention.
And it was good.
WordPress comes with a basic blogging package that will get you up and running very quickly. Depending on your purposes you can then start adding “plugins”—additional pieces of software used to achieve some goal. Cart66, our ecommerce software, is a plugin. We’d already used several other plugins for different purposes. Now Dave wanted to introduce plugins to create custom post types, custom taxonomies, and custom fields. (Did you just zone out on all that terminology?) I won’t bore you with an explanation of what all those things are. Let’s just say that in the end, Dave came up with some backend stuff that is incredibly useful for keeping the store organized and making it easier to update—definitely worth the extra hours of work, even if we did have to re-engineer some things.
There were some false paths along the way. We tried some things that didn’t work out, or that might have worked out if we had a lot more time to invest in them. At one point we had a backup of the test site made prior to installing a new and possibly risky plugin. After a day or so we decided the plugin wasn’t what we needed, so we had the hosting company restore the site from the backup—but the backup they used was a backup made after the new plugin had been installed—so after fighting over file permissions again, we had to rebuild the site by hand. But by April 9 we had agreed on a final structure to the store, and on April 12 we had the hosting company move it to the live site.
Of course that didn’t work out quite as hoped. My initial fears were partly realized and there were some broken file paths, but there was also a WordPress magic spell that fixed most of them, and in the end the result was better than my pessimistic self had expected.
Suddenly we were aiming for a May 1 launch date.
Vonda worked like mad to load chapter samples and book covers into the new store.
Dave, Pati, and Vonda spent a lot of time writing up the instructions that would be passed out to BVC members. We’re a cooperative, which means everyone helps, so members were expected to load their own books into the store. The instructions took a surprisingly long time and turned out to be a bit too complicated, so Dave very quickly re-wrote them, and suddenly we were on our way. BVC members started logging in and adding their books to the new store. It wasn’t perfect, but it was working . . . and then, without telling us, the hosting company decided to migrate our website to a new server, but the migration failed, and BookViewCafe.com vanished from the Internet.
This happened on Saturday evening the weekend before we were scheduled to launch the new store. BVC members who’d set aside a block of time to load their books were unable to do so … and time ticked past. Sunday afternoon rolled around, and at last the website reappeared, but it was much too late for a Monday launch, and besides, our email wasn’t working. With the new store, our customers receive an email receipt that includes instructions on downloading their purchased ebooks. There was no point in launching the store if we could not send our customers this email. So we waited for word from our hosting company on when things would be fixed.
And we waited.
And by Friday we decided we needed a new hosting company. This took a few days, but by May 11, the entire website had been moved. Debugging followed, while Vonda and Pati worked hard to get the rest of the ebooks into the store and clean everything up.
Then on the evening of Monday, May 14, the new store went quietly live. We haven’t made a hoopla over it yet. We wanted to go with a quiet opening, that would let us address any issues that might crop up. So far, things seem to be going very smoothly.
We hope you’ll visit our new store, look around, buy a book or two if you’re so inclined, and let us know what you think.
The celebrated “grand opening” is still to come.
Linda Nagata is the Locus and Nebula award winning author of The Bohr Maker, Vast, and Memory, all available at Book View Cafe. Her latest book Hepen the Watcher, is the second in a gritty, fast-paced mythic fantasy series featuring the antihero demon, Smoke.