I made a ChatGPT for SPM students. This post is a mix of what I learned building it, and what went wrong (and right) when I launched it to real students.

Why SPM Chat?

Two problems I wanted to solve:

  1. ChatGPT is not as helpful to SPM students as it is to university students and coders. It just doesn’t have enough context about the Malaysian syllabus.
  2. There is no centralized platform for SPM academic resources – notes, essays, scholarship information. I want SPM Chat to be this platform, and from this perspective, there are countless opportunities lying ahead.

I had previously built an SPM essay sharing platform that was growing steadily through RedNote and Telegram. Everything was seemingly on the right track, until my ADHD brain decided to start a new project.

Some Learnings

1. Marketing from day one

Since the day I started writing the code, I shared some updates on RedNote and immediately gained lots of enquiries and support, even suggestions and feature requests. These signals helped me align my ideas with what students actually need. Plus, I got a group of early users to skip the “cold start” phase. Bad memories from my previous project – I don’t want to go through that again.

2. Small language model + curated context is the future

Contrary to our daily experience (I know your GPT-5 Pro Max is thinking in the background right now), small language models are much more scalable and powerful than you might think. And do expect a cheaper, smarter, longer context window model coming – many such cases. So, what really matters is your context. Know your users inside out, get experts in that domain, and curate the “secret recipe” for your model.

Good model + bad context < Ok model + good context

🎓
Student
SPM Chat
Context
📚 Syllabus
📝 Past papers
🎯 Subject notes
Small LM
⚡ Fast
💰 Cheap
🎯 Focused
Accurate
Answer

The secret is in the context, not the model size.

3. Claude Code + GLM 4.5 + Happy

Cost: $3 (GLM Coding plan). Claude Code has a steeper learning curve than Cline, but it can be really powerful with MCP configurations properly set up. It is faster and cheaper than my previous Cline + Deepseek V3 setup, and lets me work remotely with Happy app.

How I Fumbled the Launch

🚀 Prelaunch
Hundreds join the RedNote group
💥 Sep 16, 8pm — Launch
API quota burned, students yelling in group chat
🐛 Feedback flood
404s, broken profiles, markdown bugs — students found them all
📊 The 98% poll
Students want subject selection — not magic routing
☠️ RedNote group nuked
400+ member group shut down — Telegram backup saves the day

Prelaunch

I created a group chat on RedNote, inviting interested students for product updates in hope of receiving their feedback. Within a few days, hundreds of students joined. I figured, why not send a link to them and let them have a try?

So I said, SPM Chat will be launched on September 16th, 8pm!!

Ohh boi. Do not try this at home if your app has some sort of limit per minute or per day.

Rocky start

The app suffered massive outage at launch. The sudden spike in API usage fully consumed my daily free quotas. Even worse, my fallback mechanism that routes requests to other providers was flawed. So, the first hour of the launch was just students yelling at me in the group chat.

At least they care, right? … right?

Feedback coming in

After the app was working properly, I actually did not expect any more feedback. However, bug reports and feature requests started popping up – mysterious 404 errors when changing language, profile page not loading, markdown rendering issues, chat rename not working. I was surprised (and somewhat ashamed). Without this group of students, it would have taken me ages to spot all these bugs. They were even helping newcomers onboard the app.

I figured, I should expand this community. Instead of staying only on RedNote, maybe I should create a Telegram group too. Also, for backup. (Spoiler alert.)

Surprise request

Students started discussing about the user experience, and they asked me, “can I choose a specific subject before I start a conversation?”

I was shocked. I had wanted to create a magical experience – ask a question and it just works, all the routing and context selection handled under the hood. I thought maybe it was just taste difference among the students, so I created a poll.

Turns out 98% of the students want to have finer control over what context they are chatting with the bot. And by giving them that control, I got to reduce the latency and API calls. Win-win situation. I started clauding immediately.

Apocalypse, well not exactly

The group with 400+ members got shut down because of violation to RedNote community guidelines. Weird people slipped in and posted random unrelated stuff – I guess this triggered some students to report the group. It’s bad, but luckily there was the Telegram group as backup. I quickly created another group on RedNote and started directing the traffic there. TBH, I was tired at this point.

What’s Next

It is really fun to work on a project that actually benefits people. There are many more things for me to learn, to make this a truly valuable app for the students. Some questions for myself:

  1. Community – How do I maintain a community in a positive atmosphere, free from bots and ads?
  2. Testing – How do I set up a testing environment to capture severe bugs before pushing into production? It is forgivable at the start, but as the number of users grows, I definitely need some way to facilitate it.
  3. Sustainability – What should I do when the cost grows beyond my budget? This is a hobby / research project. But if you know anyone interested in sponsoring or helping students with free education, do let me know!