Skip to main content

Navigation

  • Client impact
  • Writing

AI Solutions

  • AI Systems
  • AI Development

Software teams

  • Design Systems
  • Product Design & Engineering
  • API Platforms
  • View all services for software teams
Get in touch
  • AI Systems

    Model-agnostic AI systems and agents that do real work

    AI Development

    Custom apps and tools built with AI-enabled engineering

  • Design Systems

    Depth of experience that few can match

    Product Design & Engineering

    Experts in cross-functional collaboration

    API Platforms

    Node.js, React, & GraphQL at scale


    View all services for software teams
  • Client impact
  • Writing
  • Contact

Writing · Sep 1st, 2014 · 5 min read

Jed Watson avatarJed Watson avatar
Jed Watson

My first year of Open Source Commitment and KeystoneJS

If you want to do something, do it every day. This is the story of my first year writing open-source software.

Services discussed

  • Content Management Systems

Technology discussed

  • Keystone,
  • JavaScript

Tagged in

  • Labs

Today marks one year of my GitHub streak, and coincidentally the first birthday of my company Thinkmill.

It’s also, roughly, a year since I released the first prototype of KeystoneJS, the open source Node.js CMS / web application framework I created.

When I started KeystoneJS it was to enable myself and others to develop node.js projects more efficiently, and I had no idea how it would be received by the Javascript community or other developers.

I was totally new to Open Source, and with no profile, followers or momentum I decided that committing to working on it every day (regardless of what I was doing commercially or personally) would be a great way to establish trust with other developers interested in using it. It was my way of saying “this isn’t just a throwaway project from someone you haven’t heard of that could be abandoned next month”.

It turned out to be so much more, and has been an amazing experience — definitely one of the best things I’ve ever done.

In the last year, Keystone has gained over 1,700 stars on GitHub, 260 forks, over 50 contributors, nearly a thousand followers on Twitter (@KeystoneJS), and is downloaded over 4,000 times a month.

We have used it to power websites and apps with hundreds of thousands of users in production, and other companies large and small are adopting it as a base for their own projects.

But the real surprise has been the impact that maintaining my streak has had on my life.

Most days its easy; I’ve got lots to do on Keystone, and love working on it.

Some days its hard; I’ve worked all-nighters, gone on a family holiday to China, or had nothing I can think of doing in the time I’ve got to do it.

But I’ve made a commitment so I do it anyway. And looking back, the hard days are the ones that have made the experience great.

When I’m not inspired, I’ll go through issues and find something minor that I can fix. Or I’ll write some tests. Or I’ll add something simple that’s been requested that I haven’t gotten around to while working on larger issues. This happens every day. And the great thing is the sum of all these little things.

This story wouldn’t be complete without explaining my wife’s support. About a week in, I told her what I was doing, and she was on board.

She’s seen the excitement when I think I’ve done something cool. And the joy when someone I don’t know submits a great PR. And the pain when I’m flat out and stressed and tired and need to do something in the next 30 minutes because otherwise I’ll break my streak.

Earlier this year, when we landed in China on holiday (and I thought I’d take a break) my wife challenged me about why I’m doing this, and encouraged me not to break my streak. She made me realise:

I’m no longer doing this to prove something and I’m not doing it for anyone else. I’m doing it for myself.

I’ve learned the power of sharing your work with others and becoming part of a community. I’ve had the opportunity to solve interesting and challenging problems. I’ve had the opportunity to give talks and workshops at meetups and conferences. And I’ve had the opportunity to meet (and collaborate with) amazing people from all over the world.

And now, almost every day, something happens with Keystone that just makes me happy. All because of something I created, and my commitment to it.

About a hundred days in, I found out I wasn’t alone. John Resig (@jeresig, author of jQuery) wrote an excellent post on his commitment to code every day and the impacts it has had (he is currently at 280 consecutive days).

These ideas aren’t actually specific to open source or even programming. If you have anything you’re passionate about — whether it’s writing, music, learning, or anything — committing to doing something every day is a powerful way to achieve it.

And it’s surprisingly easy. You get used to it. It becomes part of your rhythm. You get over the hard parts, and enjoy the result.

My streak won’t continue forever; I’ll have a proper day off again when I’m ready. But the experience has changed my life for the better, and KeystoneJS has taken on a life of its own with new core contributors, and major improvements in the works.

To celebrate, and to acknowledge that KeystoneJS is now the sum of many developers, community members and users, I’ve graduated it out of my personal profile and into its own organisation on GitHub.

We’ve got big plans for what to do with it from here. We’re rebuilding the Admin UI in React to enable developers to rapidly build web apps more effectively, and creating a whole plugin / customisation system. We’re abstracting common (or what should be common) functionality into separate packages. We’re going to enable model-based API creation with much less work, and a whole lot more.

I’m so excited about what we can do to make node.js so much more streamlined to develop apps with, as well as the teaching aspect of what we’re doing, that my wish for KeystoneJS on its first birthday is just that I can spend more time working on it.

In the meantime, it’s been a great first year!

Services discussed

  • Content Management Systems

Technology discussed

  • Keystone,
  • JavaScript

Tagged in

  • Labs
Jed Watson avatarJed Watson avatar
Jed Watson

Co-founder of Thinkmill and OSS developer. Creator of Keystatic, Keystone, react-select, and classnames.

Related content

  • Keystone 6 – v8.0.0

    article

    July 2026·
    (opens in new tab)
  • Progressive Web Apps (PWAs): A stepping stone towards a native mobile application

    article

    August 2024·11 min read
  • A year of Keystone releases in review

    article

    August 2024·
    (opens in new tab)
  • Keystatic now featured in Astro docs

    article

    August 2023·
    (opens in new tab)
  • 7 Things I Love About Keystatic — A Thread...

    article

    June 2023·17 min read
  • Using Keystatic as a CMS

    article

    June 2023·
    (opens in new tab)

Have an idea to explore?

Get in touch

Footer

Thinkmill is a member of the Tech Council of Australia(opens in new tab).

AI Solutions

  • AI Systems
  • AI Development

Software teams

  • Design Systems
  • Product Design & Engineering
  • API Platforms
  • View all software teams

Client impact

  • ELMO
  • Tiimely
  • Atlassian
  • Reckon
  • AnywhereWorks
  • View all client impact

Open Source

  • Keystone (opens in new tab)
  • Keystatic (opens in new tab)
  • React Select (opens in new tab)
  • Classnames (opens in new tab)
  • Manypkg (opens in new tab)
  • Changesets (opens in new tab)