6 ms·
Hey, I want to put together an open source project that gives an overview of how to set up a minimal viable web application from scratch via all the different f
by mg 5y ago
Hey, I want to put together an open source project that gives an overview of how to set up a minimal viable web application from scratch via all the different frameworks.
The idea is to format the tutorial for each framework as a shell script. So there is no ambiguity of how to reproduce the results. And it is even possible to just copy&paste the steps into a docker container and see the framework in action.
Here is a demo of how this could look like for Django:
https://www.gibney.org/from_debian_to_web_app https://www.gibney.org/from_debian_to_web_app
It would be cool to have one column for each framework and then align them visually by feature. So if you want to compare how do you use a template, you can look at the "Let's use templates" row and have a quick overview of how it is done in Django, Laravel, Flask, Symfony, NextJS...
Each framework section could link to the developer(s) who wrote it.
If you want to contribute to the section for your favorite framework, send me a message!
- collabtwy532 5y agoNeat idea. Interested in this as a user - will reach out :)
- alexharrisnyc 5y agoSeems like a great idea, what exactly is the MVP? I've thought about doing the same from time to time, doing as shell script seems like a nifty idea but possibly a little more work for the author. Curious if there are multiple steps adding to the same file how you would approach that.
- mg 5y agoMy idea is that the script contains the basic steps which building an MVP usually contains: setup, routes, templates and user accounts. From there on, it is up to the developer to add their own design and functionality. After you understand the code for setup, routes, templates and user accounts this should be easy. As for mutliple steps adding to the same file, I think overwriting the whole file every time is doable. For example when we introduce the concept of a template, the template can be created like this: cat << 'EOF' > templates/index.html <h1>Hello World</h1> EOF Now say later we want to use a base template which contains a content block. Now we modify the template to extend the base template: cat << 'EOF' > templates/index.html {% extends "base.html" %} {% block content %}<h1>Hello World</h1>{% endblock %} EOF
- slotrans 5y agoAre you familiar with https://github.com/TechEmpower/FrameworkBenchmarks https://github.com/TechEmpower/FrameworkBenchmarks ? It's not tutorial-style, but it does contain hundreds of sample web apps (that all do the same thing, but still)
- mg 5y agoLooking at those, it seems the sample apps are way more complex than what I envision. The Django one starts with these dependencies: Django==3.1.12 greenlet==0.4.17 gunicorn==20.0.4 meinheld==1.0.2 mysqlclient==1.4.6 psycopg2==2.8.6 pytz==2020.4 ujson==4.0.1 The approach I want to show is: What are the minimal steps to get a working web application with routes, templates and user accounts. I know that at least for Django, this is possible with no additional dependencies.
- gukov 5y agoHave you seen https://todomvc.com/ https://todomvc.com/?
- cercatrova 5y agoLooks like you're basically looking for TodoMVC and Real World. TodoMVC is a simple todo list implemented in various frameworks while Real World is a more complex real world app, a blog style social media site. https://todomvc.com/ https://todomvc.com/ https://github.com/gothinkster/realworld https://github.com/gothinkster/realworld
- mg 5y agoThat is a bit of a misunderstanding. I do not want to build a collection of repos or projects which the user can read through or try out. My whole project is just one page! The page displays multiple scripts side by side. One script per framwork. Each script can turn a fresh Linux installation into a working web application with routes, templates and user accounts.
- cercatrova 5y agoAh that makes more sense now. So you're basically writing docs for all these different tools such that someone can copy paste and get a working installation. What are your thoughts on docker which seems to do something similar? Also, how would you stay updated on every single framework if they ever change their installation scripts or other such parts?
- mg 5y agoI wouldn't say that Docker is doing something similar. What I want to do is give a one-page overview of the web framework landscape. Since I envision the scripts to be very small, I expect that updating them will not take long. The history of the updates will indeed be very interesting. In 10 years we can look at it and see how often each framework had breaking changes.
- cercatrova 5y agoMakes sense. I mean docker as in dockerfiles which are essentially scripts that create the docker image as a full environment.
- josefrichter 5y agoSimilar efforts maybe?: https://fullstackphoenix.com/ https://fullstackphoenix.com/ https://railsbytes.com/ https://railsbytes.com/