Posts tagged ‘roadmap’

Looking Back on 2012

Each year we like to summarize what we’ve accomplished together as a community. It’s also become a bit of an annual tradition to do this recap in January since we’re always too busy at the end of the calendar year to do it then.

There were many highlights during the year and we’ve selected a few of the major ones that we’re especially proud of. So let’s take a quick moment to recap some of the awesomeness!

The Highlights

Spree Analytics

At beginning of 2012 we announced a plan to work with our friends at Jirafe to provide a live e-commerce anlaytics dashboard integrated within Spree. We were able to make significant improvements based on all of the great feedback and we announced a new and improved version later on in the year.

New Base Theme

We also announced a new base theme for the standard Spree install. We drastically simplified the HTML used in the standard theme with the expressed intention of making it easier to customize. Since the theme was also fully “responsive”, it makes it easier to use the same Spree views for mobile devices.

First Ever SpreeConf

We had our first ever SpreeConf in February of this year. The conference was a complete sellout and we had an awesome lineup of speakers and spent a lot of time meeting with existing and perspective users.

Spree 1.0.0 Release

We also released the long awaited Spree 1.0.0. This release was performed in typical team fashion and represented over 1,500 commits by 35 different contributors. We also committed to faster release times and released Spree 1.1, 1.2 and 1.3 later in the year.

Improved Multi Currency

The Spree project continued to make improvements in the area of i18n. We received an excellent contribution from one of our community members that significantly improved multi currency support.

SpreeConf Europe (Dublin)

Our first conference was such a success that we decided to have another, this time in Europe! We decided to continue our theme of hosting in unique venues and chose the Guinness Storehouse in Dublin Ireland. Once again the conference was well-attended and we had an exellent blend of technical as well as business-oriented talks.

Admin Redesign

We hired a full time designer and then put him to work straight away. One of the first things we did was a complete redesign of the Spree Admin UI.

API Improvements

We also made major improvements to the Spree API and significantly improved the API documentation, launching a dedicated API site. This work will continue into 2013 as we make Spree completely “API driven.”

Spree Fancy Theme

We finished the year by releasing Spree 1.3 and announcing the brand new fancy theme. The theme serves as a simple demonstration of a responsive web design that is a little more interesting than the intentionally plain base theme. We made the theme completely open source so you could use it as a starting point for your own sites.

The Road Ahead

Each year we somehow top the accomplishments of last year. We expect continue this trend in 2013. We’re especially looking forward to the “split core” project that Ryan has been working on as well as the planned i18n improvements. We’ll post more about both of these efforts shortly.

API Improvements

Moving the API forward

We’ve been focusing on our API a lot recently, and several different projects have helped improve it significantly. We’ve also discovered a number of areas where we’d like to make some minor and major improvements. We’d like to share some of our plans with the community in an effort to get feedback, suggestions, ideas and help.

Recent Improvements

First I’d like to cover some of the recent changes and improvements we’ve completed:

Complete Refactoring

Our SpreeWorks product includes a brand new Backbone.js based administration interface and it required a major restructing of the old REST API. Ryan Bigg (our Community Manager) rebuilt the API from the ground up to meet the needs of the SpreeWorks project, and extended it to cover a much larger part of Spree’s overall application interface.

New Documentation Site

api.sprecommerce.com was created and launched (again by Ryan) as a brand new documentation project that covers almost every detail of the current API. This site is fully open source and available for your submissions here, with thanks to GitHub for open sourcing their API documentation project.

Upcoming Improvements

A lot of work has already gone into the new API and we’ve a whole range of new improvements planned:

Search Everywhere

Ransack has proven to be an awesome addition to Spree, and it’s proved amazingly powerful when coupled with the API. We plan to include Ransack searching capabilities on RESTful index actions, and we are going to remove the now redundant “search” actions.

Easier Template Overrides

We’ve been using RABL templates with the most recent version of the API and they’ve really helped simplify the rendering process. To enable easier output customization we’re going to allow every call to an action to supply a `template` param which will render the named template supplied.

Better Versioning

While the current API does provide some means for versioning we’ve not yet started incrementing the versions as we still consider it a work in progress. We’re reviewing several options to help make versioning simpler including VersionCake.

Better Checkout Support

Currently the API uses individual actions for each checkout state, which requires a lot of customization if you are using a custom checkout state_machine. We’re going to replace these methods with a more RESTful approach where the `update` method will accept any number of calls to migrate an order through it’s state machine.

Caching

A lot of Spree’s data is very well suited to aggressive caching, so we’re going to review some interesting caching options provided by RABL.

Long Term Goals

We’ve recognized over the passing months that the API is slowing becoming the center of many Spree implementations and we’re embracing this approach.

Work is already underway to remove all json responses from Admin controllers in favour of reusing the API directly. While this adds the API as a dependency of core it also prevents double-implementation of certain features to support javascript heavy features in the admin UI.

Longer term we plan to review the options around having all interactions from Spree’s own UI controllers routed through the API, thus providing a single location for all interactions within Spree.

Having the API become the central hub of Spree will enable the creation of applications using a wider range of technologies and languages, for things like native mobile applications, client-side store implementations, etc.

Feedback Required

As you can see we’ve got a lot of really interesting developments in the pipeline and we’re keen to get your feedback and involvement. If you’ve got something constructive to add to the conversation, now is the time to be heard:

Comment below, post to Spree User or stalk us on IRC!

Announcing Admin Redesign

New Admin Interface Available

Back in February we held out first ever SpreeConf and announced our plans to do a complete redesign of the admin interface for Spree. At our second SpreeConf six months later, our designer Alexey (aka devilcoders) resolved that he would not go to another SpreeConf and have people still asking him when the new design would be ready. We decided to turn him loose and let him finish the job he had started earlier in the year.

The initial results of this effort are now publicly available and have been merged into the master branch on Github. Special thanks to our community manager (Ryan Bigg aka radar) for working with Alexey on getting this merged into master and fixing numerous issues with failing specs.

Just the First Step

The code that’s available on the master branch represents just a first step in what we expect to be more changes to the admin interface. Our main focus was putting a “fresh coat of paint” on everything to make it a little easier to look at all day long. Changes to the functionality have been intentionally kept to a minimum. Eventually we will also look into possibly reorganizing how things are laid out, etc.

Feedback Required

Alexey has done his best to touch up every screen but he may have missed a few. We also haven’t tested every screen on every browser. If you spot any issues with functionality with the new design please report them on Github.

So what do you think?

Spree Road Map

This year is shaping up to be another year of tremendous growth in the Spree community with an ever growing number of awesome contributors helping out with the effort. We also held our first ever SpreeConf where I presented a talk on the Spree Road Map. It has been a month since that talk so I thought I would update everyone on how things are progressing and what we have planned for later this year.

Spree 1.1

The Spree 1.1 release is right around the corner. We’re scheduled to announce the first release candidate later this week. This release should be a relatively painless upgraade if you’re already running Spree 1.0.×. Spree 1.1 will include support for Rails 3.2.x as well as some minor improvements that were not urgent enough to include in the Spree 1.0.x patch releases. Expect the final release to occur during the first week of April.

Spree 1.2

The Spree 1.2 release will focus on the much anticipated admin redesign. We will be reorganizing some of the admin screens to improve usability as well as putting a fresh coat of paint on things and making the admin functionality easier to customize. We already have a ton of mockups for how the admin might look but the design is not final. Work on the admin will begin later this month and commits will start showing up in the master branch within a couple of weeks.

Website Improvements

The first improvement to our website will be the addition of a new forum system. Its based heavily on the forem project created by our very own community manager (Ryan Bigg.) It will have the ability to upvote answers and for people to mark their questions as answered. This will help us keep better track of the unanswered questions out there. Go ahead and create your Spree account now so you’re ready to participate!

SpreeConf Europe

During our first SpreeConf we also announced our plans for a SpreeConf Europe later this summer. The conference will be on August 22-23 in Dublin, Ireland. We’re going to announce the details shortly and there will be a large discount for early registration. Hope to see everyone there!

Looking Back on 2011

Last year I did a blog post about our 2011 New Year’s Resolutions for Spree. This year I thought it would be fun to see how we did. We have some new resolutions for 2012 but you’ll have to wait for my talk at SpreeConf to find out about those.

So let’s see how we did …

Improved Test Coverage

There’s never enough test coverage but our goal was to simply improve it and we certainly achieved that. We added a whole bunch of factories for Factory Girl and features for Cucumber. At the end of 2011 we made a decision to scrap Cucumber in favor of RSpec request specs.

In fact, not only did we improve the test coverage but we automated the tests to Run against three different versions of Ruby every time we made a commit. You can now see whether the tests are passing by monitoring the Spree Travis page. We even managed to improve test coverage for several key extensions (ex. spree_wishlist.)

Paid Support

You asked for it and you got it. Not too much to say here other than to read about our professional hosting which include free support.

Fancy Demo

Done. Its not nearly “fancy” enough to satisfy us but much better than before. As a special bonus we made the whole thing open source and available on Github.

One-Click Install

You can now set up your own personal Spree store to test things out. Just provide your email address and we’ll send you the credentials so you can log in. If you haven’t tried Spree yet, go ahead and do so now.

Stable 1.0 Release

Almost. We did push a 1.0.0rc1 release candiate just before the end of 2011. Rails 3.1 took a couple of months to deal with and we decided to punish ourselves further by
adopting namespacing for everything.

This is the only goal that we didn’t technically meet. We got 95% of the way there and the goal itself is actually pretty arbitrary. We can pretty much declare 1.0 at any time we feel like. The namespace changes in particular were kind of extensive, however, so we wanted to make sure that was solved since we’ll be trying to keep things as stable as possible after 1.0.

Improved View Customization

In 2011 Brian introduced a kick ass theming tool named Deface. We can now do pinpoint customizations of Spree without overriding a whole Rails view or partial. You also don’t need a pre-defined hook to insert or remove the code you’re targeting. Deface will be a major focus of discussion in the talks and training at SpreeConf. Its also powering some cool new stuff coming in 2012!

A Few Surprises

We also did some stuff that we hadn’t really planned on. Here are just a few of these milestones in no particular order

  • Raised $1.5M in investment funding
  • Organized our first SpreeConf
  • Created an extension versioning system
  • Hired a community manager
  • Performed a major redesign of our website
  • Set up our professional hosting solution

I think its safe to say that 2011 was the best year yet for the Spree team. We’ve made a lot of new friends and partnerships and we can’t wait to see what we’re going to do together in 2012!

Last Call - Spree User Survey

Last week we announced the first ever Spree User Survey. This is an effort to better understand the needs and interests of our ever growing community. We want to start by thanking everyone who has participated so far. In case you missed the earlier announcement on the mailing list you should know that the survey is ongoing and your participation is needed. The survey period ends this weekend so please act now.

Spree is provided to the community free of charge and we ask very little in return from our users. We also get lots of feedback and suggestions from people but its hard to make decisions based on such fragmented information. Please take five minutes (or less) to complete this really quick survey and help us to make Spree even better in the future. It’s completely anonymous and the findings will be shared with everyone later this month.

New Year's Resolutions for 2011

Today is our first day back to work after nearly a week long retreat for all Rails Dog employees. Everyone had a good time working together in person and a lot of great ideas came out of the meeting. We also had a chance to talk about our future plans for Spree. The following is a list of some of the goals that we hope to achieve in the next six months.

Improved Test Coverage

Nobody likes bugs in their code and the Spree developers are no exception. Even more frustrating than a bug is a bug that is introduced as a result of fixing another one. The only real way to solve this is through better test coverage. Until recently the test coverage for Spree has been fairly modest due to a lack of programming resources but we’ve recently taken steps to address that.

We recently made a big push for more comprehensive test coverage with new RSpec tests. We also hired two new full time programmers (John Brien Dilts and Neeraj Singh.) Neeraj is an active contributor to Rails itself and is already hard at work on identifying gaps in the test coverage which he will then address. We’ve also hired Piotr Sarnacki as a contractor to help with cucumber tests and to work on documentation (starting with the promotions stuff.) Piotr is a committer on the Rails project and will also be helping with the Engines improvements that are coming in Rails 3.1.

Paid Support

Many of our users are also fairly capable programmers and they can handle most of their programming needs. These users are asking for a paid support option to fallback on during those occasional instances where they need some additional assistance from a Spree expert. Other developers are comfortable handling the programming but would like a little bit of help setting up their development and/or production server environments. We are actively planning a paid support option to help address these needs. We’re still working on the details (including the cost) but there will soon be a paid support plan available and staffed by Spree core team members and other experts hired by Rails Dog.

Fancy Demo

Its been almost two years since I started thinking about the idea of a "fancy" demo for Spree. The idea is to build something that goes beyond the intentionally plain look and feel of a standard Spree install and show how a real world Spree site can look with a nice design and the proper extensions. This demo will also serve as a test bed for upgrading to newer versions of Spree (we can test out the migration process on a complex example store before we do a new release.)

We started work on the demo last week during our company retreat. We made good progress and we’re hoping to launch the demo by the end of this month. We’re also going to make the source code completely free and publicly available. This means that users can choose to fork our fancy demo as a starting point if they like most of the features and customizations it provides.

One-Click Install

We’re also very interested in making Spree more accessible to those outside of the Rails development scene. One way of helping people to evaluate Spree is to have a one click install that would allow you to "try before you buy." Keep in mind we use the term "buy" to refer to the cost in terms of set up or development costs to get a real world Spree instance up and running. Spree itself is completely free and licensed as open source under the New BSD License.

We’re planning on developing a way to have the one click install process set you up automatically on a free Heroku instance. This way you are literally up and running on a free server within minutes. Keep in mind that this free instance would not really be suitable for large scale production use and would be intended for evaluation purposes only. Still, it would be possible to run a very small store on the free instance and no other ecommerce solution out there offers this (to our knowledge.)

Stable 1.0 Release

In addition to improved test coverage, we’re working to finish our overhaul of the source code and address any lingering areas that require attention. We’re hoping to stabilize the API and provide an easy upgrade path for future releases. In addition to a stable 1.0 release, we’ll be working on a more comprehensive set of documentation.

Improved View Customization

Finally, Brian Quinn has been working hard on a solution to the current limitations we have for customizing the default Spree views. Brian is on the front lines doing a lot of real world Spree deployments for paying clients. The biggest pain point is with view customization (and maintaining those customizations) and last week we got a sneak peak at his proposed solution. We’ll let Brian present his ideas in a separate blog post but I wanted to mention it here as well. Look for some dramatic improvements to view customization in the not too distant future.

Spree Roadmap (May 2010)

We’ve been hard at work on some client projects lately but we’ve also been quietly improving the Spree code with minor patches. Lately we’ve had a lot of people asking about Rails 3 support and other topics regarding the future direction of Spree. I thought I would take a few minutes to outline where the project is headed over the next few months.

Rails 3 Support

The most important development coming to Spree is support for the new Rails 3 release. Spree has always been quick to support new versions of Rails and we plan to continue to keep pace with the fast moving pace of the Rails core team. The newest version of Rails will offer several improvements that will reduce the amount of hacks needed to get Spree working on top of Rails. The upgrade to Rails 3 will yield several benefits.

  • Easier integration with Rails apps
  • Elimination of the site extension - all custom code can reside in RAILS_ROOT
  • Extensions as engines
  • Extensions as gems
  • More modular design which will allow developers to use only select modules (similar to Rails)
  • Faster performance in development mode
  • Less code to maintain in the Spree project

The core team has already started to explore the implications of a Rails 3 upgrade. We’re conducting several experiments to test the new functionality which is still in beta and not well documented. Our initial results are encouraging and we’re going to be starting a massive development push on this in May. Our goal is to have Rails 3 support in time for Railsconf.

More Core Members

We’re hoping to add more core team members to the project - ideally from companies other than Rails Dog. The heavy Rails Dog representation on the core team is a byproduct of needing to hire the best Spree developers we could find. All of the core members now on Rails Dog started out as independent contractors.

We’re definitely interested in broadening the representation on the core team. We could certainly use more help with keeping on top of the patches and tests needed for our fast moving code base. Last year we posted something on how we choose core team members if you’re interested.

New and Improved Showcase

The current list of Spree sites is woefully out of date. We’re working on a much improved showcase that will allow members of the community to share their sites with the rest of us. New entries will be moderated and we’ll also have the option of a "private listing" which allows you to register the site but not to share it with the public. We prefer that you share your site with everyone, but if your client is uncomfortable, you can at least share it with the core team. You’ll also receive credit for listing a private site when it comes to your ranking in the new Developer Listing section of the website.

Developer Listing

The Spree website is currently undergoing a major overhaul. In addition to some visual and organizational improvements, there will new sections such as the "Developer Listing." This section of the website will list development shops who are currently building Spree sites. We’ll be giving priority to those companies/freelancers who have built the most verified Spree sites. It will also be possible to browse the public sites and extensions contributed by each of the companies/individuals in the developer listing.

Improved Documentation

The documentation is in need of some major refactoring. We’ve been pretty good about keeping the documentation up to date but it needs to be reorganized along some more useful guidelines. In general, we’d like to see documentation split out into information that is useful for setup/configuration and that which is useful for customization/development. We’re going to try and separate out some of the low level technical detail so its easier to focus on getting up and running. We’ll still have the technical details but in a section that is more geared towards developers.

Full Featured Demo

We’re very interested in building a more full-featured demo of Spree. The idea is to go beyond the basic store that comes "out of the box" and show potential users something a little more sophisticated. The Spree core is not going to contain support for Google Checkout, full text search, Paypal Express, etc. but we want to show that this is easily done with extensions. The idea is to make this open source version of the demo available to everyone so it can also be used as the starting point for a store or simply as a means to study the Spree extension mechanism more closely. We don’t have an estimated timeframe for completion of this demo. Most likely it will be in the Fall of 2010.

Spree 1.0

Finally, the Spree project will hit "1.0" status sometime this year. This is mostly a symbolic milestone but its an important one. Once we reach 1.0 status we will be much more hesitant to change anything that will break existing sites and extensions. We still try to minimize this type of change now but sometimes its justified in order to significantly improve the core based on valuable insight we have gained from our users and real world deployments. The 1.0 release will take place after the Rails 3 support is released and all of the important extensions have been upgraded.

This project is maintained by a core team of developers and is freely available for commercial use under the terms of the New BSD License.

Spree, Spree Commerce and the Spree logo are all trademarks of Spree Commerce, Inc.