Sprint 3 – Cooking with matches!

Sprint 3 – Cooking with matches!

February 3rd, 2020

This sprint has been a little… fucky. 

The winter has hit my mood hard and I struggled for the first week to focus. Stepping away, sleeping, working out – none of it worked. So it’s been a bit of a struggle.

I almost booked a trip to the canaries just to get some of that sun juice but the hassle of organising the trip was also apparently too much 😂

I started the sprint by spending 3 days writing the articles… as fun as they are to write, that obviously isn’t going to be sustainable for long so i’m going to monitor that for a while and do one of the following

  1. Do them less often, that would mean bigger updates. Considering how much is happening that might not be better.
  2. Cut them down
  3. Write them as I do stuff
  4. Write them up and then pay someone to put them on medium, the blog etc.

This post will be a bit more techy than the last ones, but I’ve included videos which should help non-tech people understand the work i’ve done.

Previously on James builds a social network by himself and slowly goes insane:

  1. Precursor
  2. Sprint 1 – The Foundations
  3. Sprint 2 – The ummm Foundations?
  4. Sprint 2 – Nerd Ramble
  5. Sprint 3 – Cooking with matches!
  6. Sprint 4 – Now We’re Cooking With Gas!
  7. Sprint 5 – Robot Uprising
  8. This Is Not the Sprint You’re Looking For
  9. Sprint 6 – That’s a Weird Looking Patronus
  10. Sprint 7 – Corona Stole My Title
  11. Sprint 8 – Adventure Time!
  12. Sprint 9 – Now In Technicolor
  13. Sprint 10 – Refinement
  14. Sprint 11 – Motion In The Ocean
  15. Alpha Release 1.0.3
  16. Sprint 12 – No Rest For The Wicked
  17. Alpha Release 1.0.4
  18. Sprint 13 – I Need a Break
  19. Alpha Release 1.0.5
  20. Sprint 14 – Just James Things
  21. Sprint 15 – Wearing My Heart On My Sleeve
  22. Alpha Release 1.0.6
  23. Sprint 16 – Warm Up
  24. Alpha Release 1.0.7
  25. Sprint 17 – Coffee’s back on the menu!
  26. Alpha Release 1.0.8
  27. Sprint 18 – We’re on fire!
  28. Sprint 19 – Slowly fast
  29. Sprint 20 – Let’s get Nerdy
  30. Alpha Release 1.0.9
  31. Sprint 21 – We’re back!
  32. Alpha Release 1.1.0
  33. Sprint 22 – You Look Cute Today
  34. Alpha Release 1.1.1
  35. Sprint 23 – Sausage Smuggler
  36. A SoSa Retrospective
  37. Sprint 25 – I am SoSa and don’t call me Shirley
  38. Sprint 26 – The best laid schemes of mice and men
  39. Sprint 27 – Vogue, Strike a Pose
  40. Sprint 28 – a New Hope
  41. I Couldn’t Think Of a Title
  42. Guess who’s back, Back again!
  43. Demolition Man
  44. Squid James
  46. We Didn’t Choose This Life, We’re Just Living In It
  47. Let’s go!

Game Night!

This sprint we had our first game night and it was a lot of fun with a great turn out.

Next Sunday we’re playing Jackbox Party, all you need is a phone / web browser and don’t have to buy a game!


Jackbox party

Auto Deployment

After I got the articles out of the way, I spent the rest of my first week trying to get the chat server to auto deploy with minimal downtime.

The idea here is that no matter where I am, no matter what I’m doing – I should be able write code, test it locally, commit it to github and then have the server automatically make it live and if shit hits the fan, i should be able to roll back to a previous good version.

I defined my criteria:

  1. It has to be simple to use
  2. I have to be able to use common technologies to trigger it (git / jenkins / curl / ssh)
  3. It has to be scalable, something I can use in a cluster setting
  4. It can’t be tied to a specific architecture / platform
  5. It had to be secure / securable
  6. Had to automatically restart the code following a deploy.

After a lot of researching and trying to get the associated functionality in Jenkins either through a plugin or through a JenkinsFile script, nothing seemed to work.

So instead of over complicating this – I went back to basics!. I’m using PM2 to manage the NodeJS service and I’ve built a simple end point in the code that will trigger a deploy script. 


I can then trigger the rebuild via the web, curl or a range of other tools, the mechanism is very flexible and should allow me to integrate into a hypervisor instead of a single server later down the line (decoupling the servers from a system that can heal them). 

The express endpoint

Before launch, I’ll secure this with a key pair and restrict which IP’s can trigger it.


We already had a very basic chat server running with a client and them both sending and receiving messages – then last sprint, I got a basic “hello world” app running.

This sprint, I wanted to get the app connecting to the server as well as join a room, send a message and receive a message. So that’s what I did!


Although I’m not building a dating app, I am investing in time to look at other apps and communities and as dating apps are designed to connect people I thought it’d be a great place to start.

My main candidates were Hinge, Tinder, OKCupid, Bumble and Happn.

The sign up journey on all the apps was fantastic and very easy to use, they’ve spent a lot of time on their UX.

OKCupid / Hinge / Happn

I especially liked how simple it was to change your profile on all of them and how sleek the interfaces were.

One of the features that I love on these apps and we were going to have in some form on SoSa are “Ice Breakers”.

Hinge / Bumble / OKCupid

If you’ve never used a dating app before, they ask you a bunch of questions which you answer and then they go on your profile.

OKCupid goes a bit over the top with this and gives you 100s of questions

Unfortunately from a community perspective I didn’t really learn much from using these apps, the matches I got barely spoke and I didn’t come across any toxic profiles / obviously toxic behaviour (maybe that means what they do works?)

Speaking To Members

I want to get to know more about the people who used SoSa originally and those who still use the discord so I’ve been hand picking some members to spend time talking to.

Over the last 2 weeks  I have had the amazing privilege to speak to 5 SoSa members.

Learning about them, where they grew up, what they do, how they found SoSa originally and what made them stick around.

I’ve even booked flights to go meet a few in Prague in February! which i’m excited for!

Prague the city of love… or something

Some have agreed to let me do blog posts on them so there will definitely more to follow in this space 🙂

General Nonsense

Domain Rank: 15 (up from 13)
Page Rank: 21 (up from 20)

It’s been a few weeks since I migrated some of our links to point to sosa.net, so things have evened out in terms of external followed links.

Total Linking Domains is up 43 from 36 and Followed linking domains up 34 from 29.

Overall traffic is down, this was to be expected towards the end of january with people having less time to be on social media and me sharing the primary domain a little bit less. 

During this next sprint I will have more time to talk about SoSa and share things on Social media so I hope that will see an increase in traffic.

On the plus side! beta sign ups have increased by over 20 in the last sprint!