Wejoinin at Ten: Our story thus far

Wejoinin has been a passion project of Hsiu-Fan and myself for over 10 years now, and this month we celebrate its 10th birthday! From back in the days when we launched it as a passion project as UC Berkeley students, we’ve always seen it as a tool to solve the problems that we were facing getting people coordinated and organized for events.

We’re 10 years old!

The fun thing about this story is that we’ve grown the product while working on it completely as a side project. Doing so allowed us to keep the development process so fun and interesting that we’re still at it 10 years later!

How we got started

Hsiu-Fan and I met through mutual friends as engineering students in college, when we joined a startup together as summer interns. That internship at FAQQLY — a Q&A-based social network — became a place where we cut our teeth in web development (and got started in a little framework called Rails). Some of you may remember those heady Web 2.0 days, when Facebook had just arrived on the scene, and everyone was building their own social network.

That summer in 2007 gave us the experience of building features, shipping them to a live user community, and iterating on customer feedback. Oh, and we also learned how to take the site down completely for hours at a time (sorry Dave). That whole experience was rewarding, and we liked working together as a team.

At the time, the two of us were involved in a faith-based campus group that was organizing round-the-clock prayer vigils. I had built a quick PHP web app the year prior to help facilitate signups for rotating 24-hour slots. Demand for the web application started coming in from other people who learned about it from word-of-mouth. So we figured — why not build a web app that was totally self-serviced, that allowed people to build their own signup sheets in whatever manner they chose?

Hsiu-Fan and I, in the off time between our studies, pieced together our first prototype, Hsiu-Fan working his magic on the backend and myself working on the frontend code and doing the design.

Launching quietly

So in the summer of 2007, we launched in just about the lowest-key way possible — we used it for a few of our own events. We’d churn out signup sheets for potlucks here and there, coordinating volunteers for our own events and for the groups we were involved in.

Feedback trickled in — folks were interested in using it for their own events. Week by week, we heard from other student groups and professors in our circles who discovered the app and started applying it to their events.

Slowly but surely, the users started coming. Word spread. Sheets were being created by folks in the outer fringes of our networks and beyond.

The beauty of low expectations

I confess we had no growth plans at all. We never had any intention of doing any sort of marketing or grandiose plans of monetary reward. Hsiu-Fan and I would have these conversations where we told each other in a bit of self-deprecating geek humor — “If this app gets more than 100 active users, we will have succeeded”.

But sure enough, we had grown past that within weeks. No, we weren’t seeing hockey stick growth by any means. But you have to remember — growth wasn’t our objective. In our minds, if we built a great product and solved our own problems, then we had done the world some good.

Then we put it down

This part may disappoint you, or it may be very interesting to you: we then stopped working on the site. No, I don’t mean that we stopped taking care of it altogether. What I mean is that we kept doing what was in front of us — being students, enjoying college life, studying. When it came time to graduate, we jumped into full-time jobs.

Of course, we would put in a little bit of work here and there on the weekends. Servers needed to be maintained, bugs needed to get fixed. But by and large, Wejoinin was a side project, a fun distraction. We put a product out there in the world, we didn’t charge any money for it, and some people found it useful. That was good enough for us.

For years, we resisted the idea of putting up ads on the site. We paid for the server hosting fees out of our own pockets. We were scrappy, and got by on the free tiers of almost anything we could get our hands on (more on that in a later post).

The quiet years

Wejoinin continued chugging along, and the funny thing was, that it just kept growing. We never really kept tabs on its growth — once in awhile we’d log into Google Analytics and say “oh, that’s really nice”.

In the meantime, we worked full-time jobs elsewhere, and were content to put work into Wejoinin when we needed to. I spent a lot of time refactoring the codebase and hardening our test suite. Hsiu-Fan built out a lot of backend administrative features that help us respond to customer requests quickly.

We prioritized infrastructure work, and took extra care to develop tools to help us deliver quality software. We worked hard on continuous integration and continuous delivery tools, and installed monitoring software and alarms to help us get ahead of sitewide problems before they became major fires. We embraced the idea of DevOps tools and immutable architectures, and developed system provisioning Ansible scripts. Over the years, we swapped infrastructure providers at least three times before arriving at our current provider, Linode.

We took on our first intern last spring, Eli, who helped us ship a few features and cut his teeth on Rails in the process. Thanks, Eli!

Over these years, we kept tuning the engine under the hood, but we hadn’t yet turned our eyes on giving the actual site a makeover, and delivering new features we had promised you over the years. We feel like that time is coming soon.

A new season

Full speed ahead for the 10th!

Early last year, we decided to put a little more intention behind Wejoinin, believing that it can become an even more powerful tool with some dedicated effort.

Many of you may have noticed that we began putting ads on the site — though we understand it’s annoying, these ads really pay the bills for us. Without the extra cash that ads help us with, we would not be able to purchase the computing power necessary to deliver a reliable experience.

  1. We’re launching a Wejoinin Plus tier, with open Beta signups now
    We also began the Wejoinin Plus Beta program, a group of beta users who are dedicated to testing out an iteration of our upcoming premium tier. We’ll be excited to share details soon — if you’re curious, you can log in and sign yourself up for the Wejoinin Plus Beta program, free of charge for the time being.
  2. We’re testing a mobile-optimized signup sheet experience
    We’re running some tests of our signup interface that are optimized for mobile and tablet users. We know it’s hard to browse and view sheets on your mobile phone, and with the radical shift in web traffic to mobile in the last ten years, it’s about time we’ve updated to reflect the times.
  3. We’ve got a new look!
    We’re excited to announce that we have launched a refresh of the Wejoinin home page, and welcome you to visit and let us know what you think!

In upcoming articles, we’ll share some of our insights developing our tech stack (we’ve been Rails users for years, but have recently throwing in a pinch of React and Elm), some product development tips using tools like Google Optimize and Heap, and more.

Thanks for sticking with us for 10 years, folks. We’re excited to show you what’s next.


Oh, and I gave a talk about this process recently at the Fog City Ruby meetup here in SF. Here’s the slides:

https://speakerdeck.com/andrewhao/the-slow-cooked-side-project


Interested in trying out (what we humbly propose) is the easiest way to create a signup sheet online? Register now — it’s free, and it only takes two minutes to create your signup sheet!