This has been an interesting week: It hasn’t been a great experience for you nor for us and we apologize. Let’s review, as sort of a retrospective.

We released the new version of the site on Monday which started off poorly, being overshadowed by two issues not picked up during the closed beta: 1) DNS issues when deploying to the main domain, 2) We deployed to woefully insufficient hardware which caused slowness and generally making the site unusable. This isn’t to ignore the other issues we have been seeing, but they took the main stage. The good news is, we’ve fixed both large issues.

One of the main changes, apart from our temporary UI, is that we did a data migration to PostgreSQL from SimpleDB which will afford us a lot better control over the integrity of the data going forward. We expected to see some outliers on the data and we’re prepared to continue fixing the data as time goes on. In this migration, we’ve got quite a few issues but most glaringly, we discovered about 114 users who have duplicate email address accounts. We’re in the process of fixing this and if you were affected (e.g. not seeing your cellar data), you may see it resolved. There are some users who we still need to sort through and we’ll be in contact as we didn’t know which data to keep.

Also, for those of you who signed in with both email and Twitter accounts on the last site, you were given multiple cellars. We’ve changed the data schema behind the scenes so we can link these two authentication types together to a single cellar. Let us know via email (team@cellarhq.com), and we’ll merge your accounts together into one cellar.

Data cleanup will be an on-going effort, so if you see an issue let us know and we’ll work to fix it. We have all the old data, so we can recover anything you see as wrong.

Going forward, we’re going to continue working on quality and improving the experience and here’s what we’ve done this week:

On-listed a couple of our friends to help fix bugs, as well as help fix our user experience. No one is making money on this site, including Kyle and I, so we are greatly appreciative of them offering to help.

We’ll continue make improvements, changes and fixes based on your feedback, as well as continue to add to our test suite so that reliability continues to strengthen. We have fantastic monitoring on the site, so we’re able to see exactly what’s going wrong with reported and unreported issues, which we turn around and build tests for.

As for feature requests, we’re going to continue focusing on improving reliability and fixing the user experience, but at the same time we will be working on Import & Export functionality.

Thanks everyone for being a part of this community and showing such passion for the website; we relish the opportunity to evolve this into an excellent product to match and exceed your expectations.

For anyone who hasn’t been following along, CellarHQ was purchased a few months ago. You can go back and read the previous blog posts if you’re curious. Rob and I have been working on a complete rewrite of the site for the last 3 months and today we are launching CellarHQ 2.0.

The site is 100% new. We changed the web framework and database. Going forward we will be able to add features quickly. We have a robust set of tests to prevent major defects when we make changes. The site is much more reliable and will not crash every few days.

What is new

Totally new layout. We will be making changes to this over time but the site looks better and works better on mobile devices.

Addition of some trading features. You can designate a beer as available to trade, and include various ways for someone to contact you about it (reddit, beer advocate, twitter)

Bin numbers for cellared beers

Drink By dates and warnings when a beer gets close to that date

Can edit brewery data (if the data did not come from brewery db)

Can edit beer data (if the data did not come from brewery db)

Lots of updated data from brewery db as well as removed spam

What is gone

Import isn’t done and will be relaunched in the next few weeks.

Activity feed is gone and may or may not come back.

Important note about passwords

We take security very seriously and we decided not to export passwords from the 1.0 database and import them into the 2.0 database. Because of this, if you don’t login with twitter, you will want to use the forgot password functionaltiy. Please visit http://www.cellarhq.com/forgot-password to send yourself an email.

We’ve done a limited beta test with about 15 volunteers and have squashed as many bugs as possible but we know there will be issues in the first few days. We will be aggressively fixing problems and responding to issues so please don’t hesitate to reach out.

For some reason the ven diagam of beer world and the programming community overlap significantly. Rob and I are programmers and beer lovers and we wanted to share some information about the new CellarHQ tech stack for other nerds.

One of the reasons we felt confident in taking over CellarHQ is that it was built on a familiar technology that we use daily at work. Our main objectives as we move forward are:

Be fun and easy to work with. This is a side project for Rob and I, and one that (at best) breaks even. We want to be able to work with new, interesting languages and frameworks that we might not be able to use at work.

Be fast. Performance is a feature and we want CellarHQ to run as fast as possible.

Be low overhead. As mentioned this site breaks even at best and we want to reduce the monthly costs as much as possible.

Moving Forward

We’re going to be getting all of this done on a different technology stack than what CellarHQ running right now, which is currently Tomcat, Grails and SimpleDB.

We’re replacing Tomcat and Grails with Ratpack, backed by Netty. The appeal here is that it’s much more performant than Grails and uses resources much more efficiently, so we’ll be able run the site on cheaper hardware. Furthermore, Ratpack is extremely fast and fun to develop with.

Replacing SimpleDB is PostgreSQL for the database layer. SimpleDB, despite being extremely cheap and simple to use, is profoundly neglected by Amazon and further didn’t offer a way to run locally, which meant we would be paying for our automated functional tests. PostgreSQL, on the other hand, is a fantastically powerful and stable relational database that we’re comfortable with. To interface with PostgreSQL, we’ll be using the Netty-backed ng-pgsql driver and Netflix’s RxJava, which is a natural fit for using PostgreSQL with Ratpack.

Testing will be rolled out with three different tools: Spock for our test harness, Geb for functional browser testing and Gatling for load tests.

Data migrations and background jobs, depending on the task, will be done with either Groovy or Go. For jobs that require interaction with another website, such as Untappd, we’ll be writing Retrofit clients and open-sourcing them to the public.

We’re going to continue using Elastic Beanstalk for deployments for the time being. In order to do so, we’ve built Docker containers to deploy with. In the future, we’ll be choosing a provisioning tool and deploy onto CoreOS.

Lastly, we’re going to be giving the site a facelift, adding Bootstrap 3 and using Polymer to build reusable web components.

All of our code will continue to live on GitHub and we’ll be using CodeShip for continuous delivery.