I applied for an internship recently and the assignment they sent back was not a take-home task. It was a whole project.
Build a full-stack blog. The catch was the stack: MongoDB, Mongoose, and Next.js API Routes. Everything I was comfortable with at that point was the other thing. Prisma, PostgreSQL, Server Actions. I had just spent two months on exactly that combination in InvoicePedia, and now none of it applied.
I took it anyway.
What I Built
Truly IAS Blog, a content-heavy blog platform where:
- Rich-text editing runs on Tiptap
- Images upload to Cloudinary and get content-aware cropped for thumbnails
- Auth is Clerk
- Dark and light mode built with shadcn/ui and Tailwind
I did not get the internship.
What I got instead was two weeks of being forced out of a stack I had gotten comfortable in, and a real understanding of MongoDB and Mongoose rather than the vague awareness I had before. Documents are not rows. Modelling relationships in a document database means making decisions that Postgres would have made for me. That was worth more than the role would have been.
Where This Project Goes
It is not sitting in GitHub as a finished thing. V2 is planned:
- Move to Prisma and PostgreSQL
- Server Actions instead of API routes
- Expand the schema with categories, authors, trending posts
- Better UI
- AI assistance for writing content
- Admin analytics with charts
The AI Plan
I have wanted to put AI into my projects for a while and the blocker was embarrassingly simple. I did not have OpenAI credits. I bought some, and that excuse is gone.
The idea I am actually building: a tool where you paste a YouTube link or upload a video, and get back an SEO-optimised blog post based on what was said in it.
Where it is now:
- Whisper-1 handles transcription, and the accuracy is better than I expected
- Next step is feeding that transcript to an LLM and getting a usable post out
Once exams finish at the end of July, the same idea goes into Truly IAS Blog, Dropify, and InvoicePedia.
Background Jobs Are the Real Gap
Building this made one thing obvious. You cannot leave a user staring at a loading spinner while a video gets transcribed and then written up. That work has to happen somewhere else and report back.
So the next thing I need to learn properly is background jobs and queues, probably with Inngest. Specifically:
- Scheduling and running jobs outside the request cycle
- Queuing the transcription and generation steps as separate pieces
- Showing the user real progress instead of a spinner
I do not know how any of that works yet.
What I Am Doing With the Next Three Months
Exams end, and then I have three months with nothing else scheduled. The plan is backend depth, AI integrations, queues and job scheduling, and building things people can actually use.
If you are in the same build-to-learn phase, message me. I would rather compare notes than figure all of this out alone.