Open-sourcing ShipReq – a requirements platform written in FP Scala/Scala.js

japgolly1 pts1 comments

ShipReq OSS announcement · GitHub

/" data-turbo-transient="true" />

Skip to content

-->

Search Gists

Search Gists

Sign in

Sign up

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Instantly share code, notes, and snippets.

japgolly/shipreq_oss_ann.md

Created<br>May 19, 2026 02:57

Show Gist options

Download ZIP

Star

(0)

You must be signed in to star a gist

Fork

(0)

You must be signed in to fork a gist

Embed

Select an option

Embed<br>Embed this gist in your website.

Share<br>Copy sharable link for this gist.

Clone via HTTPS<br>Clone using the web URL.

No results found

Learn more about clone URLs

Clone this repository at &lt;script src=&quot;https://gist.github.com/japgolly/538875580ec648ca7517ce04d63dc009.js&quot;&gt;&lt;/script&gt;

" readonly="readonly" data-autoselect="true" data-target="primer-text-field.inputElement " aria-describedby="validation-4ad1af1a-e981-445a-a9ed-533e4ff33150" class="form-control FormControl-monospace FormControl-input FormControl-small rounded-left-0 rounded-right-0 border-right-0" type="text" name="gist-share-url-sized-down" />

Save japgolly/538875580ec648ca7517ce04d63dc009 to your computer and use it in GitHub Desktop.

Embed

Select an option

Embed<br>Embed this gist in your website.

Share<br>Copy sharable link for this gist.

Clone via HTTPS<br>Clone using the web URL.

No results found

Learn more about clone URLs

Clone this repository at &lt;script src=&quot;https://gist.github.com/japgolly/538875580ec648ca7517ce04d63dc009.js&quot;&gt;&lt;/script&gt;

" readonly="readonly" data-autoselect="true" data-target="primer-text-field.inputElement " aria-describedby="validation-2f11beb6-738a-447f-b88c-d13d034d9638" class="form-control FormControl-monospace FormControl-input FormControl-small rounded-left-0 rounded-right-0 border-right-0" type="text" name="gist-share-url-original" />

Save japgolly/538875580ec648ca7517ce04d63dc009 to your computer and use it in GitHub Desktop.

Download ZIP

ShipReq OSS announcement

Raw

shipreq_oss_ann.md

Today, I'm open-sourcing my life's work and magnum opus: ShipReq.

What is ShipReq

ShipReq is a SaaS/webapp for storing and managing project requirements, tasks, and issues.<br>It's like a highly configurable combination of JIRA, Excel, and Word, plus new and innovative features not found anywhere else.

It was born out of frustration working in an environment where Excel and Word were used for requirements, and everything fell out of date, and was hard to keep correct.<br>ShipReq makes certain classes of errors impossible, and other types of errors trackable.<br>For example, you can write Use Cases such that all the links between steps always stay correct as intended;<br>you even get a graph of steps to make it easier to comprehend.

It's written in full-stack Scala using Scala.js, and is nearly all pure functional programming.<br>It is extremely well tested, both the backend and the UI.<br>The main frontend is a massive SPA which only talks to the server to receive real-time updates or save changes, meaning that all navigation happens locally and is always very fast.<br>Rather than apps like JIRA loading an issue at a time, ShipReq is more like git in that the entire repo is loaded client-side.

Journey and Crisis

I started work on this back in 2013. I wanted to both take a chance at self-employment, and solve problems I'd experienced working with large teams.<br>Young and naive, my plan was to live off my savings, create the perfect product, and then seek paid users.<br>It was important to me to get the foundations right, rather than churn out a quick MVP.

I open-sourced a lot of my work along the way, resulting in libraries like scalajs-react, scalacss, test-state, etc.

And so I worked on ShipReq and OSS for a few years, did a few years of paid work to pay the bills, then covid hit and I spent years working on this again.

After the covid years, a number of areas of my life collapsed. There were multiple family tragedies (including deaths), I went through a bad divorce, my health suffered and I went to hospital more times than I can count, and I was diagnosed as having multiple disabilities.<br>I ended up taking two years off from programming and blew through all of my life's savings.<br>I've been looking for a job for over eight months since, with no luck, partly because my interview skills are impacted by my disabilities, and partly because my recent years have been dedicated to open-source and independent R&D rather than traditional corporate employment.<br>I fear I may never get a job again.

Now I find myself on the disability pension with an abundance of free time on my hands, and no life purpose.<br>I've therefore decided to continue work on ShipReq, and to open-source it.<br>Open-sourcing wasn't an easy decision but it's the only one that makes sense,...

gist shipreq clone open embed formcontrol

Related Articles