What's the quickest way to go from zero knowledge to build a web app?
I have an undergrad in computer science and a PhD in an interdisciplinary discipline. I have a decade of programming experience. I would like to build a web app which I think has lots of use cases. I would like to build it myself as I think at this point I am the best person to execute my vision.
I don't really have much experience in web dev. So when I tried to research which technology to use I am completely out of my wits as to what to use. There are so many frameworks based on so many use cases of which I don't even have a clear idea. How can I learn to build my web app in the quickest amount of time possible?
Edit: Some of the requirements: users should have their own account and be able to login, the interface connects with an ML model that is with AWS and gets feedback (I have checked streamlit and gradio but they are too restricted on the UI design side).
Since you will be working with machine learning models then using Django web framework or any other python Web framework will be very good for your project. The merit of this is that python thrives well in machine learning and data science and there are many libraries available that you can use to do what you want.
Ruby on Rails or Laravel
I would lean more toward Laravel just because it's community and tools are better at this point.
You can learn here:
Laracasts.com
Docs are great:
https://laravel.com/docs/8.x
I would recommend using the TALL stack.
Tailwind CSS (Check out Tailwind UI too)
Alpine.js
Livewire
Laravel
Check out Laravel Jetstream, it's a great way to get auth setup out of the box.
When you're ready you can use forge.laravel.com to spin up servers on AWS or Digital Ocean.
There are lots of great packages out there.
The community is great and it's easy to get connected in to it.
Good luck with your app.
Let me throw in another monkey wrench! Why not React with firebase. You can get auth out of the box and the Firestore coupled with Cloud functions is a nice enough backend to work with if you don’t want to spin up your own backend server. As a EE trying to work on my Pom Timer with no Web app dev experience,I personally like the ability to write the UI logic and outsource everything else to a pre-baked backend. Also Firebase also has modules that support serving ML models. Check it
Out and Robin Weiruch even wrote a good book on that topic. Good luck. Email in profile so feel free to reach out
You could spend a lot of time learning to build, and then building, the basic functionality a web app - user registration, sign in, sending transactional emails, etc. - before you even get to to the core functionality of your idea. If you want to launch a web app as quickly as possible, specifically to test the functionality that will make your app different, that's a different path. Either is fine. I just know that I've fallen into the trap before of not deciding on my own motivations before jumping in head first.
(1) You won't deploy your first app to production.
Knowing this :
Back : firebase services (authentication / cloud firestore / cloud storage / cloud functions / hosting)
=> All is well documented - Easy to understand - Easy to use
Front : Angular + Angular Material, known as not being the easiest framework to learn but once you understand how components work you'll be able to develop very very fast. Which will be perfect once you realize that (1)
If you have the time, learn a few tools and learn them well enough. Like django, bootstrap, git, and postgres. Maybe celery, redid or gunicorn.
As for the front end, no matter how it seems, the fastest and easiest path forward for a newcomer is plain old HTML, CSS, and JS. Maybe jQuery.
Keep it simple, keep it maintenable. (most of the hot new shiny tools are not really suited for one person shows, unless they are also your day job, IMO)
Really depends on your definition of a web app.
I'd highly recommend bubble.io for a reasonable set of functionalities. It's pretty easy to pick up and very effective in getting usable products out.
We personally think it doesn't scale particularly well, but scaling is a good problem to have and can be addressed when the situation arises.
Feel free to DM me
What are you specifically trying to do? WordPress works for most use cases. bubble.io might work for the rest.
If you want to learn web dev, freecodecamp.com is fine. You don't need a framework unless you're doing complex things like an API, login security, working with a team. Host it on Netlify.
If you haven't already, you might want to build a prototype of the UI on a desktop machine first... iterations can happen far, far quicker that way. Once you've settled on a design, then you can work on adding the other layers that make it a web app.
Flutter/Dart is more or less designed for rapid development and prototyping.
To learn how to use something new in the fastest time possible, follow a course on udemy or YouTube to build a sample project to get your feet wet and then dive in from there.
You want the best intersection of: language you know, features you need (core or extensions), documentation and quick start examples, lots of answers on stack overflow. Choose one and get to work.
Here is a relevant question:
What should be my first (real/useful) web app be?
Ruby on Rails is one of, if not the most efficient framework, coined as the “one-dev framework” by its creator.
It is mature, battle tested, and has a great ecosystem.
Ruby is a pleasure to use.
Laravel. Nothing as easy, robust and productive, even if you're just learning PHP (which is a pretty easy to learn language).
Ruby on Rails is meant for your use case.