They say in startup circles that if you are not embarrassed by your first launch you launched too late. So last weekend I took down the launchrock page, redirected the domain name to my heroku server, and sent a beta invite to my wife. Yes it was embarrassing. You know, you can do automated testing, but you never really know what you are missing until you get a real person in front of your app. I didn’t realize that I was redirecting users to their profile page without any instructions as to what they would be doing. I had also failed to test for some of the url features of my e-mail templates.
I’m only going to find some of these issues if I get more fresh eyes on the page. So now, I’m going to be sending out beta invites to everyone who signed up. I’m also going to start using github’s issue system to keep track of all the little tweaks I find as I’m using the system. The first big issue I would like to tackle though is the game profiles. I still need a way to query steam so that I can maintain a large database of them. Using the steam community api, I can also allow users to claim the games they own on steam. As always, the real work has only just begun.
It looks like it’s going to take a little bit longer for me to get to launch because as I went through the event edit form, I found that the invites were being duplicated every time I tried to save the record. Since every Invite needed to be unique, the edits would just not save at all. This would prevent you from adding new invitees to your already awesome WoW Raid party. A deal breaker if I ever saw one. It should be easy enough to create a test that trips this error, and it looks like many other people have this problem with tables with multiple associations like this. Hopefully I can get it fixed today. From then on, I’ll just have to keep going through the app, and write tests for any bugs I miss.
Now that the Beta Invite and permission system is all done and deployed, I think it’s a good time to run through the app one more time and see what needs improvement before I can start showing it to people.
The obvious first candidate for a facelift would be my front landing page, which has suffered from my attempts to create marketing copy. The best thing to do here would be to just simplify the text. I’ll just give the one-sentence pitch: A Gaming Network for Parents, Professionals, and other busy people, and tell the user what they need to do: Either sign in or request a Beta invite. Easy Peasy.
The events list on the front page and the events index seem to be pretty good for now, although I should have a My events page that lists all of the events that you are associated with.
Lastly, I should come up with some kind of HTML template for the e-mails. Right now they’re plain text, or worse. I’m not sure how many people actually see HTML e-mail templates, but I think I should show just the least of polish in my presentation out of respect to the users.
I should also get to indexing my database associations. If I don’t, the site is going to look really slow.
I think once all that is complete, I should start the process of transferring the domain name from the launchrock page to the Heroku site. Then, gameplaydate will be ready for its first real use case: Setting up a game for me and my wife of Kirby’s Return to DreamLand for Nintendo Wii.
So I un-mothballed the beta invitations, and, surprise surprise, they still worked. Of course, this got my spidey sense all tingling. There is no way I could implement such a mission-critical feature without any hiccups. I went through my testing suite found that the user pages tests were failing when I had the beta invitations turned on in the user model. Worse yet, I didn’t have a way to easily turn beta mode off when I was done using it! There are about a thousand ways you can create settings in rails, but in this case I’m going to have a beta mode variable in a yaml config file. That way I don’t have to create any views for the beta mode setting, but I can set the beta mode to run depending on whether the site is in development, test, or production.