Startup - SportOffice

Hi all,

One month ago I joined a startup and we decided to create our product using RedwoodJS.

I will use this topic to talk about it: scope, progress so far, where & what to see, roadblocks mentions… whatever comes up.

About us

The startup is a side project from another company, a network of skiing schools in France. The original founders were all working in the digital industry before they decided to create this first business, eventually they saw an opportunity and decided to work on a product they knew they could use in their school network business.
I joined them early on march because their original CTO had an unexpected carreer change, we are enlisted into 2 business incubators in France and are planning for a second fund raising some time ahead.

SportOffice

Our product is a management & e-commerce tool designed for outdoor activities schools: Ski schools, sailing schools, whatever that happens in an old not-locked down fashion.
That’s for the first step of our product, in the coming months we will also ship a separate app, hopefully implemented as a RW side, which will be a checkout tunnel to let salesmen take orders and record them directly through our product.

So the application has two core features: team planning dispatching monitors to sport classes & sales management.

Status items ( consider accurate at time of reading only )

  • Recruitment - Closed
  • Contacts - Get in touch :rocket: , we’ll be looking for extra muscles in the following months!
  • Preprod - Private ( url will be given once we open it )
  • Go live precise date - unknown
  • Code - getting things done

About the market

That’s an 800 millions € market in France only, and we’re out for a decent bite of it - in and out country.

Business raw Roadmap

  • June 2021: we’ll open our product to our selected clients who will help test it out in real conditions.
  • September 2021: fixes on clients’ feedback + preparation for the next season’s opening
  • November 2021: v1 live

Tech details

  • Hosting - Netlify
  • DB - Heroku w/ PostGr
  • Auth - Firebase
  • Dependencies:
    • dayjs - We have a lot of operations to do with dates so that’s a must.
    • faker - We generate some sample data by the hundred to test performances and have a quick feeling of how the UX would feel, a couple of years later on a customer’s subscription.
    • material-ui - Our designs were built with figma from devias, so it’s an obvious choice, but in the meantime we want to avoid perf issues, so we’re keeping a severe eye on this one.
    • dexie - We wanted to keep some session data, dexie helps with that.
    • is_js - for some data checks, unfortunately we are missing checks for some local types ( phone numbers, postal codes, that sort of stuff )

Random backlog

  • [ ] - Deploy everything to AWS ( we’ve got advantages there thanks to past relationships with AWS, that’s mostly why )
  • [ ] - Polishing Stories for our UI lib ( not Material-ui’s, but SportOffice’s UI )
  • [ ] - Cover UI lib with tests ( Jest & Playwright )
  • [ ] - Implement RW’s logger in full + report

A month old

What worked & got achieved

  • Using RW we managed to ship a first draft for every core management items, such as Account, Teams and the various user roles: Manager, Monitor, Customer, Student. We used scaffolding but tweaked it a lot to integrate Material-UI and a couple of things a bit more exotic. We create Disciplines ( sport activities ) and tie them to their own dedicated Levels using tiny cells.
  • We set up Authentication through firebase
  • We set up full translation support.
  • We have 100% of api endpoints covered & tested successfully - custom tests supported by scenarios.
  • We have a populating feature that allows us to create fake data in a blink of an eye: thousands of entities are fed to our model, we are using it for flexibility and to further test what sort of charge RW can take, in a pretty standard stack.
  • We handled 2 upgrades:
    • v0.27.0 and further patch, the version in itself broke our tests, the issue has been resolved - but we couldn’t write tests for some days.
    • v0.28.0, which went without problems.
  • We began working on our own ui library.
  • We setup Dexie for some session support ( eg: app settings )

What worked less

  • Storybook support was rather scarce before v0.28.0 so we’ll have to resume a lot of work on it and investigate configuring addons to have real value there.
  • Upgrades have historically been difficult for me, but to be fair there’s a lot of work around them and we’re happy to help testing early on current releases.
  • Server hosting, which oddly enough is not always an out-of-the-box type of gift. We’ve had an obscure issue that is now solved, not sure what could have been done to prevent it: Deploy - Cannot use import statement outside a module - #13 by noire.munich

What’s next

  • We’ll do our best to resume work on Storybook and hopefully write a cookbook that would be helpful to the community - but take this as a bold promise as of time of writing, there’s a lot to do for us in a short time.
  • We need to be able to go live for a preprod environment, if that doesn’t happen in the following weeks it will mean trouble for our business and lead us to early failure, so that will be a strong focus.
  • We’ll develop our core features: Products & Sessions, the next update should come once these are done.
7 Likes

Non exhaustive gallery

Team Settings

Main Menu

Monitors listing

4 Likes

:clap:

1 Like

This is an exciting, outstanding update @noire.munich Looking forward to watching you and your team create this new product and take it to market! And as much as we, the community, can encourage and support your journey, count us in :rocket:

@dthyresson has had a lot of success with Netlify and Redwood. He’s a bit of a power-user, and perhaps we should get more examples of his published.

Also, there are several new hosting providers coordinating with us to create first-class, built-in Redwood Deployment. One of those is Render.com, which several products/startups I know are using. If you’d be interested in giving them a try, I can connect you all. Just let me know.

Thanks a lot @thedavid ! It’s also a long overdue update :p, I’ve been around for a while but never actually talked about what I was crafting. Happy to finally get there, this project has a lot of potential and I’d be happy if it could stand as one of many examples that RW :rocket: :rocket: :rocket:

I opened Deploy - Cannot use import statement outside a module, @dthyresson paid a visit along with @peterp and @danny , the issue is actually a pain to debug and I’m not sure it’s even possible to help without having a repo access.
Thanks for the offer, I will keep it in mind definitely. I’m rather bugged by that netlify issue and would rather sort it out before moving along: if it’s my code I need to learn and grow, if it’s RW I need to PR it out asap, or at the very least, report. If my current attempt at debugging yields no result I’d be happy to try out Render.com - we should know about it before next week.

Update
Solved it! We will begin preprod testing, perfs are not great yet, we’ll tune them a bit more before sharing to community :slight_smile:

2 Likes

I’m so stoked to see this post. @noire.munich thank you for sharing and being so open.

I’m sure in the process of building SportOffice, Redwood is going to grow along with it, and I’m very glad to be part of this community with smart, switched-on people like yourself :slight_smile:

I really like how you’ve laid out this post, this should be a template!

Je peux aider?

Thanks a bunch @danny !

To be fair it’s a virtuous circle :), Redwood’s community is great and it’s awesome to be able to work and share with a great core team and growing contributors community. You’ve been able to create an environment that conveys safety in sharing, contributing and ultimately growing as professionals, that’s not a small feat and I’m very grateful to be able to add my small contribution to all of this.

Ah yes, I’ve been wondering about the format! Might try new things as well to see how this could be improved over time, and also I’m pondering the idea of writing an article for V1: making the choice of RW to build a startup upon. Teaser maybe.

@jiftuq let’s get in touch in PM!