1
0 Comments

How I'm building the learn to code platform of the future with AI

Today I'm so happy! I've opened the doors of my new product and started collecting emails for a very soon release of my new learn to code platform, AI Code Mentor. But before we get into that, let's talk about how I got to the idea and how I'm building it.

I'm a software engineer, I'm a nerd, I love it, it's my passion and I have been doing it for almost 20 years now, but it's only about 3 years ago that I made a mental switch. During COVID, I learned that I also have a passion for teaching, and writing content. I discovered that when I started blogging, and my blog took off, which allowed me to interact with a lot of people who were asking for advice on their coding careers, but also on how to learn to code, as it was a common subject of my blog content.

In those iterations I learned a lot, and I started coaching some people, helping them learning to code, all in my spare time. Talking and helping all these people I learned some of the hurdles non tech people (but also some tech people) face when learning to code, learning new frameworks, etc. And so I went ahead and started thinking on a solution.

I'm now building AI Code Mentor, which is a hands on learning platform, meaning that it has an integrated coding environment, that includes previews and validation, and it also offers an AI assistant called Ada.

I know, when you read assistant you immediately think of ChatGPT, and you're partially right. So Ada is not a thing, we all know that. Ada is an API that runs multiple features through-out the platform. Let's examine some of them, and what kind of AI models I'm working on.

Ada as a chat assistant

When you're working on a course lesson, you can start a chat with Ada. This chat is powered by chat-bison (from Google) and it is kind of like chatGTP, with a minor difference. The model is trained with the lesson's contents, which makes it more accurate when needs to reply specific questions about the lesson. For example if the lesson is on tailwind, you can ask "how do I add a green button?" and it will reply with the code using tailwind (or at least try).

But that's not it, in the chat window you can also ask about the current code you are writing, it can help you spot errors, give code explanations, or even help you write code. For that you can ask a simple question, or even better, you can use a command !code <your query>, e.g. !code explain it, or !code add a button with an alert that says hello world. When you use the !code command, I no longer use chat-bison, but instead I use the code-bison which is better suited for the task.

There are other commands like !quiz, that uses a recommender model to first identify the level of "confidence" of the user, and then it uses text-bison model (from Google) to generate a quiz based on the lesson's content and the confidence level of the user, the higher the confidence, the mode advanced the question should be. I'm still working hard on this and the model is still not highly reliable, but will get it fixed!

Ada to generate tailored lessons

Within the platform there are programs, programs can be courses, bootcamps, and more. One particular program is called "Generate your own curriculum". This course, has no lessons, but instead it provides the user a small form that asks:

  • what do you want to build?
  • technology

After the user provides the answers, I'm using gpt-4 to generate a custom lesson that helps the student build X in the technology of their choice. For now I'm only supporting static web page or React as technologies, but have plans to expand to Python and other programming languages soon.

Ada as a proactive assistant

This feature will not be live for the first iteration, however, it is planned and I'm already thinking on how to design such a feature. The idea is simple, Ada will get to know you over time, so instead of waiting for you to input something into the chat, it will make it's own suggestions, like perhaps recommending to skip a lesson, or to reinforce previous concepts you don't seem to master yet. On another spectrum it will also learn your learning patterns, and send reminders, and things like that.

That will require to collect some information about the user behaviour, and process it with ML algorithms, I'll get there and I'll provide more details about the algorithms as soon as I know for certain.

Platform Tech Stack

That's pretty much for now with AI, but now we need to talk about the platform general stack.

  • Landing page: the landing page with built with Framer, so nothing too fancy there.
  • Learn app: the learn app is a NextJS (with app router) application, I'm currently hosting in vercel, but planning on moving to AWS if it gets to scale.
  • Creator app: this is just for myself, but it's also a NextJS app
  • Authentication: Since I don't want to build my own authentication, I implemented Auth0, I'm on the free tier, which is pretty good.
  • API: I'm using a micro-services architecture, for now I'm running 3 micro-services built in python using FastAPI. I'm hosting the whole thing using AWS with API Gateway and Fargate. The architecture is pretty complex on its own, but I already had experience from previous projects. I may write a whole post just on the micro-services because it's pretty fascinating (at least to a nerd like me).

I know the tech stack is not the most common one for a first iteration, and it can have some cost overheads at start in comparison with tools solutions like Amplify, but there are reasons for my selection, experience being an important one. But also, because the integrated code environment needs to run user code, and that code needs to run in isolation from the main code, and other user's code, which is something very hard to do. The best way to do it, is with docker, and other projects like isolate, and that is a no go for amplify.

Summary

For AI I'm mostly using LLMs, though I make selections of the LLM based on function, GPT-4 outclass chat-bison in some aspects, but it's slow and too verbose for many things. Bison is relatively fast and can adapt to my own content. Custom models to evaluate user's confidence level, and other factors will improve the overall user experience, though it has been very hard on me, as my background is on software engineering, even though I have some data science knowledge, it is restricted in comparison. I honestly couldn't have built some of the custom models without the help of friends that know so much more than more about it, so I'll be always grateful for their help and inputs.

If you are interested in know more about the stack, or the platform, leave me a message in the comments. I'd love to hear what you all have to say.

And remember, if you wan to learn to code, you can join the wait list, we'll soon go live! Join the wait list for exclusive early bird discounts

posted to Icon for group Growth
Growth
on June 29, 2023
Trending on Indie Hackers
I shipped a productivity SaaS in 30 days as a solo dev — here's what AI actually changed (and what it didn't) User Avatar 274 comments Never hire an SEO Agency for your Saas Startup User Avatar 110 comments 85% of visitors leave our pricing page without buying. sharing our raw funnel data User Avatar 47 comments Are indie makers actually bad customers? User Avatar 41 comments I Found Blue Ocean in the Most Crowded Market on the Internet User Avatar 29 comments Tech is done. Marketing is hard. Is a 6-month free period a valid growth hack? User Avatar 27 comments