PushType: the path to version 1.0

PushType: the path to version 1.0

  • Date
  • Author

2016 - a universally terrible year by most measures, but a pretty good year for our little Ruby content management system, PushType.

What started as an internal side project was "soft launched" as an open source project at Bath Ruby in March. The project was then shortlisted for the Rails Girls Summer of Code, and we went on to officially announce and launch the project to the wider Ruby community in July. Since then, developers around the World have been using PushType in their own projects and a small and friendly community is beginning to form. We’ve had some great feedback that lets us know we’re on the right track:

I wanted to add my appreciation and thanks to @aaron and the PushType team/community for their hard work on this project. I work for a small agency and we've been looking for a viable CMS to run alongside our Rails projects for years. Nothing we've used ever felt right and we constantly ended up rolling our own in some way or another.

Really digging PushType! I think it could be one of the best Rails CMS! VERY easy to get a basic site up and running and coding "around" it 🙂

I wanted to tell you that pushType is all I was looking for! Your software is great!

The vision for PushType has always been to create a project that plays its part within the Ruby ecosystem based on two central pillars:

  • A CMS that is developer friendly, easy to learn, yet is also flexible and powerful enough to be used in lots of different ways.

  • A project and a community that is inclusive and beginner-friendly, and that positively helps and encourages people to learn Ruby.

These two pillars rely on each other. Without a great product we won't be able to build a community. Without a strong community the tool's ambition will always be limited.

PushType the product

I’ve had a chance to sit back, take stock and I'm delighted with where the product is right now. I can also start to think about what needs to happen before we call it version 1.0. My main focus in the coming months will be redesigning and developing the admin UI.

The current admin UI was always a minimal effort attempt to get something out there and to validate the product and its core concepts. A few non-complementary ingredients have been mixed together (Turbolinks, Foundation, jQuery and Vue.js) and the resulting code is, admittedly, a bit of a kludge.

Looking forward, I favour a move towards a more pure JavaScript SPA, built on Vue.js and using Rails only as an API. This is something I've been torn over for some time. As PushType is a Rails CMS I've always tried to approach things the Rails way. Using Turbolinks is a perfectly sensible default for Rails, but for all the benefits Turbolinks offers it does come with some compromises that I feel get in the way of what PushType aspires to be.

I hope that JavaScript can be promoted to a much more important part of the project without detracting from PushType's raison d'etre - a Rails CMS and a tool that helps people learn Ruby. Lets face it, JavaScript is a crucial part of the Web, whatever your preferred flavour of development. From Ruby to Java to Elixir or whatever, if you want to build successful things on the Web, JavaScript is going to play a big part in that.

PushType the community

The PushType community site was once a pretty lonely place. It was just one guy (me), sharing their plans and developments with... himself. That's changed now. A small community of people are using PushType to build websites and are using the community site to ask questions and to share feedback and ideas. It’s great that there’s a community developing, if for no other reason than it means I’m not just talking to myself!

However, I'm aware these are just baby steps. Right now I'd consider everyone in the community as users of the software. Whilst I have accepted a few minor pull requests, for all intents and purposes I am still the sole contributor and decision maker behind PushType.

Mikael Rogers of the Node.js Foundation defines an open source community as the following:

People using the software: users👍
People contributing to the project: contributors
People making decisions: leaders

For PushType to grow as a community, it needs to attract more users of the software through better education, documentation and resources. Those users need to be encouraged to contribute through clear and liberal contribution guidelines and a transparent roadmap and decision making. Finally, contributors need to be encouraged to become leaders and decision makers, through open and participatory governance.

At this early stage in PushType's life, a period of benevolent dictatorship probably isn't a bad thing. Necessarily, users must come before contributors and contributors come before leaders and decision makers. Having one mind establishing a clear vision for the project isn't a bad place to start, but for PushType to grow as a community the project must gradually be opened up.

As the product nears version 1.0 and that vision becomes a reality, my focus has to switch from design and development to nurturing a community, encouraging contributions and opening up decision making. For me, this is a far greater challenge than building nice software.

The path ahead

PushType is a young project and we're figuring a lot of this stuff out as we go along. But there is a vision now backed by a pretty solid product. PushType knows what it wants to be and we understand the path needed to take it there.

If you'd like to get involved and help out with PushType in any way, please join the community and let us know how you can help.

I have created a discussion topic for this post. Alternatively, tweet me: @aaronrussell

Work with us

Interested in what we've got to say? Lets have a chat.

Project planner