If you've ever wanted to build an AI-powered chatbot but got scared off by the thought of managing servers, databases, and deployment pipelines, this tutorial is for you. In this post, I'll walk through how I built StudyPal, a lightweight AI study assistant chatbot, using Tencent EdgeOne Makers — a serverless, full-stack platform that lets you ship both web apps and AI agents without touching a single server.
The idea behind StudyPal is simple: a chat interface where students can ask questions about a specific subject (in my case, I focused it on programming concepts) and get quick, clear answers powered by an LLM, with the whole app running on the edge for fast global access.
Why EdgeOne Makers?
Before diving into the build, here's what stood out to me while exploring the platform:
-
Zero server management — you write code in a
cloud-functions/oragents/folder, and the platform handles routing, scaling, and deployment automatically. - Built-in AI Gateway — you don't need to bring your own OpenAI or Anthropic key. Makers exposes an AI Gateway compatible with the OpenAI SDK, and gives new users a free trial token quota, which is more than enough to prototype an idea like this.
- Native storage (KV & Blob) — no need to spin up an external database just to remember a user's conversation history.
- Global edge network — once deployed, your app is served close to users worldwide, which matters a lot for latency-sensitive things like streaming chat responses.
Setting Up the Project
Getting started only takes a few commands:
npm install -g edgeone
edgeone login
After logging in (I used the Global region since I signed up on edgeone.ai), you can verify everything is connected with edgeone whoami.
Instead of using a template, I started from an empty folder to really understand how the platform maps files to routes:
study-pal/
├── cloud-functions/
│ └── index.ts → GET / (serves the chat UI)
└── agents/
└── studypal/
└── index.ts → POST /studypal (the AI logic)
This routing convention is one of the things I appreciated most — no manual route configuration, the folder structure is the API.
Connecting to the AI Gateway
The core of StudyPal lives in agents/studypal/index.ts. Makers' AI Gateway is OpenAI SDK-compatible, so calling the built-in model is straightforward:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.MAKERS_MODELS_KEY,
baseURL: 'https://ai-gateway.edgeone.link',
});
const completion = await client.chat.completions.create({
model: '@makers/deepseek-v4-flash',
messages: [
{ role: 'system', content: 'You are StudyPal, a friendly study assistant.' },
{ role: 'user', content: userQuestion },
],
});
Because the agent runs in Session Mode, requests sharing the same conversation ID get routed to the same instance, which makes it easy to maintain short-term context without wiring up your own session logic from scratch.
Remembering Conversations with KV Storage
To let StudyPal recall a user's recent questions, I used the platform's built-in KV store instead of setting up an external database. Each conversation is saved under a unique key, and retrieved on the next request — no extra infrastructure, no connection strings, no maintenance.
Deploying to Production
Once the local version worked (tested via edgeone makers dev, which comes with hot-reload out of the box), deployment was just:
npm init -y
edgeone makers deploy
Within minutes, StudyPal was live on a production URL with SSL and edge acceleration included — no manual CDN or certificate setup required.
Final Thoughts
What impressed me most about Tencent EdgeOne Makers is how much of the "boring" infrastructure work disappears. As a developer, especially one still learning, that means more time spent thinking about the actual product logic — how the assistant should behave, what data it should remember — instead of fighting deployment configs.
If you're a student or a young developer curious about building AI-powered apps without the usual DevOps overhead, I'd genuinely recommend giving EdgeOne Makers a try. The free tier alone is generous enough to take an idea from an empty folder to a live, working product.
Top comments (0)