Skip to content

Instantly share code, notes, and snippets.

@thetutlage
Last active February 5, 2021 15:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thetutlage/120cc2d6fb053adda40ce3c253c56d83 to your computer and use it in GitHub Desktop.
Save thetutlage/120cc2d6fb053adda40ce3c253c56d83 to your computer and use it in GitHub Desktop.
Help me prioritize

I want to spend some time creating a great course on AdonisJS.

I personally DO NOT want to keep it super simple, like a todo app or a blog without any design. I understand that these tutorials does help understand the basics of the framework, but they do not do justice with what you can achieve by using AdonisJS.

Now, I have couple of ideas in mind. Lemme dump them here and use your feedback to make an informed decision.

An end to end application (Approach A)

Creating a little complex end to end application that deals with multiple things at a given point of time. For example: An application that has

  • Authentication

  • Authorisation

  • Use some of the advanced SQL stuff like sorting a collection based upon its popularity using an algorithm used by Hacker news. Formula 👇

  • Working with Lucid relationships

  • Sharing my workflow for user email management.

  • Adding support for teams in the app

  • Using Tailwind for design.

  • Using Hotwire for smoother page transitions & partial page refresh.

  • Deployment using Cleavr.

As good as it sounds, creating an end to end app has some downsides as well.

  • We may not get in-depth on every topic. The app features will dictate the course content. If the app doesn't need file uploads, then we may never talk about them in the course.
  • You have to watch the full course, as every screencast will be built on the previous one.

Split each topic to its own set of videos (Approach B)

Another option is to go deep on every topic and create specific videos.

For example: Creating 3-4 videos dealing with the different aspects of file uploads like direct uploads, serving files to only authenticated users and so on.

The downside of this approach is, you will learn every topic in isolation and may still suffer to apply the knowledge on grand scheme of things.

Closing notes

I know both are important and I may do both one after the other. But, which one to start with?

@ivan-prats
Copy link

Like you said at the end: I think both are different and really important, so this opinion assumes that you will end up doing both. This is going to be 100% my limited opinion but here I go.

If I was in your position: I think I would go for approach A first.

The main reasons are:

  1. you said you would be going deeper than your "average todo app". I think that avoids the possible biggest downside of going for this approach first: doing yet another "AdonisJS: deploying a todo app from zero" course. If you go deep enough to differenciate from other similar courses (which it seems from the list you shared) I think it would already be adding enough value, without having to go knees-deep in each topic.
  2. unless you already know which topics are more important to dive in Approach B: doing first the Approach A would allow you to gauge the feedback of every video and see where we, the audience, ges more lost, are more suprised about stuff we didn't know about, etc... I think it would inform and prepare you, the creator of both the framework and course, to deliver an even better Approach B afterwards.

Also, as a disclaimer, I may be too biased because you got me basically salivating over Approach A, seeing how it is almost literally my favourite stack to work with with Adonis (Tailwind through AdonisMix + Hotwire + Stimulus or AlpineJS).

Hope this helps you think about it and come to a better decision!

@devanandb
Copy link

Hey @thetutlage, first of all, a hugee thank you for all the work you do and we get to work on such a great and powerful framework, which you have built! Absolutely love the developer experience.

About my opinion, I would vote for Approach A for following reasons:

  • When we build the entire app, the way we handle the code structuring, the design patterns is very different than how we approach them building/demoing stand alone feature.
  • I understand the need for Approach B for covering some niche use-cases, but maybe they can be added as a small feature to the current app tutorial itself (for eg: Letting a user upload a profile picture, as part of editing their profile, would cover the file upload part)
  • If the scope of the app covers, let's say 80% of the use cases, currently Adonis is used to build, that would be great! Be it a eCommerce Platform, or a Knowledge Share Platform etc.
  • And as an extended course/advanced topics can be added around the same tutorial, for alternate approaches even.

Thanks again for taking the time for getting the feedback and actually thinking of building a course! Will be of great help and have more people try it out! And never go back again :p

Devanand

@thetutlage
Copy link
Author

thetutlage commented Feb 1, 2021

Thanks a ton @devanandb and @ivan-prats for sharing the reasoning behind your choices. This will surely help :)

@ivan-prats
Copy link

Thank you for your amazing work on the framework!

Did you have any specific topics already decided about Approach B?

@dherve19
Copy link

dherve19 commented Feb 2, 2021

Hi @thetutlage thanks for this framework. I and my team are using it on production.
I think option A is best and others part can be added to the documentation .

@thetutlage
Copy link
Author

@ivan-prats

Yup, here's a rough idea

  • File uploads. This includes
    • Standard file uploads
    • Serving uploaded files publicly and behind auth
    • Direct upload to services like S3
  • Validations
    • How validator works?
    • What is schema caching and possible ceveats of caching
    • Using refs with schema caching
    • A complex form validation example
  • Deployment
    • Covering the basic of building the app
    • What are standalone builds in Adonis?
    • Deploying to Cleavr
    • Deploying to Heroku
  • User email management
    • How to properly handle email updates without locking the user out forever?
    • How to cleanup un-verified emails?

@thetutlage
Copy link
Author

@dherve19 Thanks for the feedback. Eventually I will do both 🙂

@stctheproducer
Copy link

Firstly, thanks for the amazing work you are doing @thetutlage!

Secondly, I'm considering building a SaaS platform and I think Approach A would help me a great deal with using AdonisJS holistically, so Approach A for the win 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment