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.
10 Likes

Non exhaustive gallery

Team Settings

Main Menu

Monitors listing

5 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!

2 Likes

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!

Ok, couldn’t update the original post, so here will be the updates.

:partying_face: We got our first payment in production! :partying_face:
That’s the most important news really, and it happened yesterday so I was pretty eager to share :smiley:

Details!
Recruitment - back to Closed because they are fullfilled, we had 2 open positions for internship and we found the right people to join the team. It’s been a very long process for several reasons but the takeout on this is that RedwoodJS definitely raises interest.

Contacts - Not much was done so not much happened, but we’re still willing to hear from people who’d be interested in joining a RW project - depending on our next recruitment session.

Preprod - has been live for three months but it’s been a very not satisfying process so we kept it for ourselves. Reason lies mostly with the challenge we still do face to migrate from netlify+heroku to AWS. Little progress made here despite several days of work, so we shift focus on our real priorities: shipping something that let’s money in.

Go live precise date - well, technically, SportOffice is live and has been for the past 3 weeks. We are testing our state of the art prototype with a client who let’s us play with his season business in real condition. His website redirects to our tunnel side of the RW app and then the customer can go through a quote. Considering we got our first full quote working with a payment, it’s a shadow of what we want to be a great success. Not sure how we’ll communicate on it all but I suppose we’ll have more to show in the months to come.

Last but not least, a big apology and even bigger thank you to RW teams & community: I couldn’t keep up with some posts and PR lately nearly as much as I wanted to, and thanks for building the tool and community to get our product to work.

:rocket:

6 Likes

Congrats!

1 Like

Félicitation @noire.munich ! It’s amazing to see this progress. At Raccoon.trade we are also a startup that start from a side project and these updates gives me a lot of motivation. You are more than welcome to DM me if you want to chat en Français about shipping a product with Redwood. I’m sure we have a lot of challenges en commun :wink:

2 Likes

Definitely!

DM incoming :slight_smile: always happy to share with fellow enthusiasts.

1 Like

Congrats on the first payment @noire.munich! I always get fired up seeing Redwood apps with actually funds running through them, it’s a great validation of the value prop of the framework.

2 Likes

@noire.munich I just saw your project, are you using Material-UI 5 ( now MUI)? For some reason I can’t get it to work. Would love to know how you did it. I keep getting the following:
Module not found: Error: Can’t resolve ‘@mui/material/AppBar’
Even though I have added it to my WEB Workspace package.json file

Any help would be appreciated.
Thanks Much

**update: After some digging I figured out that I had to install @mui/material and @mui/icons-material using the -W flag in the root workspace. I think Webpack was having trouble finding it in the WEB workspace.

1 Like

A small slideshow to present the project - tech oriented, we’re working on a broader version of it.

5 Likes

@sonicloop did you get this figured out ok?

I’ve been happily using Mui5 for a few weeks w/RedwoodJS & Storybook – firkin` aewsome

Although I am having difficulty using the Mui5 Forms elements with RedwoodJS - they just aren’t seen by the forms engine. I’d love to figure that out and work towards making Mui5 an option in RedwoodJS.

Going to have to do some digging – 'cause once I’m in the Mui5 I don’t want to get out - it’s amazingly smooth for me.

Following up on this slide ( somehow! ) we shall present at the Redwood Startup Showcase event today: https://v1launchweek.redwoodjs.com/, alongside plenty of other great people & awesome projects.
Eager to meet a wider community there \o/

2 Likes

Thank you for presenting today. SportOffice looks :star_struck:

Well done to you and the team!!

2 Likes

Many thanks for having us @thedavid !

We are humbled by having this opportunity of presenting surrounded by those amazing projects and great panelists. Some projects were a surprise to me, so even better :+1: .

I’ll pass the message to the team, in the coming weeks we will see how we can strengthen our presentation - Jobs board ;), and Startup page on the website included.

1 Like