Below is my own professional history to give some context to my current skill set. I have been a front-end dev for 18 years. My tools of choice are:
- HTML5
- CSS 3
- JavaScript
- WordPress
- PHP (but not my strongest skill as I don't write it too often)
I first of all would like to become a better and more 'full stack' developer, and I have a business idea that will hopefully allow me to move in this direction. The queries I have will result in which approach I take here. One of the most important aspects to me is the system being 'future proof'. If successful I know I will eventually bring additional developers on board, and they will likely be better developers than me! I want to avoid them having to rebuild the system and would like it to be something that they can just expand and improve on.
The business which I'd like to create is the following (in a nutshell), I have ideas for many more features, but this is how I'd like to begin:
Web-based system for gym management & marketing. Specifically a class-based gym
- One-stop shop for a class-based gym owner
- Sell memberships
- Manage class bookings
- Reporting
- Automatically generated website
- Choose a pre-designed template and amend the content through their dashboard
- Marketing
- Easily send a newsletter to members
- Book a free trial form on the website linked directly to the booking system
Important requirements
- One system, one dashboard. I would like the gym owner to have one place to control everything. Members, marketing, and website amendments.
- Future proof. These features are the bare minimum and I'd like to keep expanding on the features as time goes on. Things like uploading programming for members, messaging between members and admin, and selling merchandise via the website.
- Fast to load & secure. I live in the WordPress world right now, which isn't the fastest or most secure environment. I appreciate there are better ways to develop a system like this, but I'm a little clueless about where to start.
- Mobile. The data created should easily communicate with a mobile app that customers will download to manage their memberships and class bookings.
TIA to anybody that can provide some guidance on where to start here.
If you've already worked with JavaScript, I'd recommend sticking with it! You can do everything you described with JavaScript, and a framework like React might be useful for building an application like this, and keeping it easier to maintain and extend.
Before sharing my advice for learning these new skillsets, I want to call out that there are a number of existing startups in this space (try Googling for "gym CRM" and you'll see a variety of results like PerfectGym and GymMaster) - I previously worked at Twilio and heard of quite a few customers with very similar offerings to what you've described. That's not to say there isn't room for improvement, nor that you shouldn't build this application to learn/practice new skills (practice is a great reason to build a small software project), but know that from a sheer business-viability perspective, this is a crowded space.
Back to learning suggestions: I have a subscription to Frontend Masters and would highly recommend it. The courses are great, but keep in mind that it takes time to learn a new skill - so mentally committing to something like "I will spend 10 hours per week learning React" (or whichever framework/tool you need to), is always the first step.
Two courses you could consider on FEM are Scott Moss' "Build a Fullstack App from Scratch (feat Next.js)" or Kent C Dodds' workshops on Remix Fundamentals and Advanced Remix. Next.js and Remix are two modern JavaScript frameworks with active communities. Personally, I like Remix better (it just "clicked" more quickly for me), but Next.js has been around for a few more years and is more production-tested.
Thanks so much for taking the time to provide me with your advice, Stephen. I appreciate your input and understand that the market for gym CRM's is quite crowded. However, I believe my product will offer a unique solution to some of the issues that current platforms do not address and my gym market is very niche which will help me stand out. I will definitely check out Frontend Masters and consider the courses you recommended. I will also commit to spending a significant amount of time learning React or another framework to improve my skills. Thanks again for your help!
I agree with Stephen, JS allows you build a fast and highly scalable backend using Node that can easily be deployed in any serverless architecture PLUS it will also allow you to build a solid Front-end using React. Personally I'm not a big React fan, but I don't think there is anything you can't do with it. Community only keeps growing and growing.
Personally, most of my career I've been working on enterprise level applications, and the framework of choice has always been Angular. But again, frameworks, libraries, these things are only tools. Hope it helps! :)
How do you rate Dash for front end development compared to React?
Sticking with JavaScript and exploring frameworks like React is a solid strategy. To learn new skills, consider Frontend Masters and courses like Scott Moss’ on Next.js or Kent C. Dodds’ Remix workshops. Consistent practice will be key.
you've already worked with JavaScript, sticking with it is a great choice! React, in particular, could be very helpful for building and maintaining your application, especially in a crowded space like gym CRMs.
If you're concerned about future-proofing your project, I'd recommend using something like RedwoodJS. It makes it very easy to get a project started with the latest and greatest -- TypeScript, React, GraphQL, and Jest for testing. These are the kinds of tools that most front-end application developers like to see these days. It is easy to get started but from there, you'll have to work a bit to learn, fortunately there is a lot of support online for these technologies. There are several competitors to Redwood, each of which has slightly different popular tools include. My recommendation is more to find something like Redwood than to go with Redwood itself. I recommend you do your own research and pick the one that's best for you.
For future-proofing your project, consider using frameworks like RedwoodJS, which integrates popular tools like TypeScript, React, and GraphQL. While it’s user-friendly, you'll need to invest time in learning the framework. Explore similar options to find the best fit for your specific needs.
Future-proof your project, RedwoodJS is a fantastic choice. It offers a modern tech stack and simplifies starting new projects with cutting-edge tools, ensuring your app is ready for tomorrow's challenges.