Next.js Discord

Discord Forum

Perfect Auth solution for a todo app project

Unanswered
Siricid woodwasp posted this in #help-forum
Open in Discord
Siricid woodwaspOP
Hi, I am new to Next JS and development in general. I am building my first project, which is a todo app and I am trying to figure out the best auth solution for it.

I checked out Auth JS, Clerk and Kinde. I am thinking of using Convex as my BAAS and database. Convex also released their own auth (like Supabase) it doesn't support server components in Next JS as of yet.

Clerk and Kinde seems to be an expensive option if you have a lot of free users so I was trying to learn Auth JS. It looks really complicated but I think I will get through it.

So backstory aside, my main questions is:

How would the experienced developers go about this? For a todo app, build on Next JS, what would be you ideal auth solution and why?

Would really also appreciate if you can send me towards a good article or YT video that walks over the auth setup for both Next and Convex that seems future proof.

12 Replies

@Siricid woodwasp why don't you make it native
It's not like your todo app will ever have users, so why not go native.. quite fun
But if you don't want to go, try clerk. I used clerk in some of my projects
@Chum salmon I haven't tried any of those you mentioned. Next Auth is what I'm using. It's simple and straightforward. You can easily configure credentials (email + password) or other providers (Google login, Facebook login, Github login, etc.) or both.
Siricid woodwaspOP
NextAuth has been rebranded recently to Auth JS! I just find the doc a bit all over the place. OAuth is easy but every other way seems a bit confusing (to me, being a novice)
@Arinji It's not like your todo app will ever have users, so why not go native.. quite fun
Siricid woodwaspOP
what do you mean by native? Sorry I'm too new to web dev.

also, why wouldn't it have users? I mean, I know its the first app but I am not building a dummy project....I want to actually take it to production and have my friends try it out and stuff. I feel like all of those steps will help me learn it completely.
Chum salmon
I think it's a good idea to try it with auth system like what you're trying to do. Todo app is too easy and authentication is a very important aspect of building web application. So implementing it in a simple project like this will really help you understand it easily. So yeah go for it.
This is an example of using 2 providers (google and credential). I think it's pretty simple.
This is the function to login with credential
and this is the function to login with Google.
pretty cake
Sun bear
Auth.js is good for third party providers, but credentials auth is not fun to implement with it. In my experience it has one of the worst DXs I've ever come across. I dislike everything from their docs to their implementation in the app.

If you are storing your users and sessions in database I highly suggest you take a look at lucia auth. They've got a really great documentation, and I have never seen such an elegant and painless way to implement authentication before using it.