👋 Set up your arcade
Your database is empty, so the site is showing the built-in starter version. Install it into the database so you can manage everything from here: 12 games, all website texts, and a welcome update.
🛟 Safety: backups and uptime
Checking…
🔐 Admin sessions end after 12 hours without use. An email goes to your contact address every time someone signs in here. Keep this page's address private and bookmark it.
data. 2. Rename arcade.sqlite to arcade-old.sqlite (keep it until you're sure). Delete arcade.sqlite-wal and arcade.sqlite-shm if you see them. 3. Upload your backup file and rename it to arcade.sqlite. 4. Open the site: everything is back as it was on the backup date.The backup holds accounts, topics, settings, analytics and payments. Pictures you uploaded are in
data/img: copy that folder too (cPanel → Compress → Download) once a month. · Keyword: "ok":true · check every 5 minutes. 4. Add your email (and the phone app). You'll get a message if the site or its database stops answering.🎁 New games are ready
Quick actions
How your data is kept safe
Everything here edits content only: games, game files, updates and website settings. Your users' accounts, favourites and what they've read live separately, and this panel can only read them. Every game upload keeps the previous version, so you can roll back in one click.
Order on the website
Pick a game on the left, or press “+ New game”.
Send an update
Shows in the 🔔 bell for all users. “Pin” also puts it in the bar at the top of the site. “Pop-up” shows it big in the middle of the screen: great for promotions.
All updates
Members
Notifications
Sections
Colours
📖 Teacher guide
⭐ Premium
🏦 Bank transfer (VietQR)
Fill these and the Premium box shows your bank details and a VietQR code teachers scan with any banking app. Each teacher gets a personal QR code with the amount and a unique note (like MCG7K2P9Q). Connect SePay (Affiliates & Premium page) and Premium switches on by itself about a minute after they pay. When the money arrives, go to Affiliates & Premium → Record a payment.
💳 Pricing page
Prices are set in Affiliates & Premium → Plans (VND and USD).
🎁 Free account box (home page)
🧑🏫 About the founder (home page)
💬 What teachers say (home page)
Only real quotes, with the teacher's permission to show their words, name and photo.
Analytics
Categories (comma separated)
Grades (comma separated)
Preview of your draft. Users see nothing until you press Publish.
Loading…
Loading…
SEO health
Fix the red items to rank higher on Google.
Your website
Other pages on Google
Leave empty to use the automatic text.
Very short topics look "thin" to Google and can pull the whole site down. They still work for teachers.
Google result preview
Facebook / Zalo share preview
Get on Google and Bing (one time, 10 minutes)
Recommendations to rank well
Tools
1. Add your site in Google Search Console and paste the code above. 2. Submit your sitemap. 3. Check speed and rich results. Every game has its own page (/game/…) with a tutorial, so Google can rank each one.
Game pages
| Game | Description | Tutorial | Custom SEO |
|---|
What teachers search on your site
Loading…
Keyword ideas for the ESL niche
🏦 Automatic VietQR payments (SePay)
- Bank details: Website page → Bank transfer (VietQR): choose your bank, account number and holder name, then Save.
- SePay account: sign up free at my.sepay.vn and connect the same bank account (Ngân hàng → Kết nối tài khoản).
- Webhook: in SePay open Tích hợp WebHooks → Thêm webhooks:
Event: Có tiền vào (money in) · URL:
Authentication: API Key → make up a long key (or press ), paste it in SePay and below. Content type: application/json. Skip the "only if payment code" option. - Save the same key here:
- Test: sign in on the site with a test account, open Premium, choose 1 month and pay with your phone. This list shows the payment within a minute.
Orders
| Date | Teacher | Plan | Amount | Note | Status |
|---|
Money received (from SePay)
| Date | Amount | Bank note | Result |
|---|
"unmatched" = money arrived without a valid note (MCG…). Find the teacher and press Record a payment below.
💳 Card payments (Stripe)
Plans teachers can buy
Prices are charged in the plan's currency. Keep it the same as your invite program currency so commissions add up. VND has no decimals; USD uses cents (e.g. 4.99).
💰 Record a payment
Card payments are recorded automatically. When a teacher pays you another way (bank transfer, MoMo…), record it here. They get Premium, and whoever invited them gets their reward automatically.
⭐ Give or remove Premium
⚙️ Invite program rules
Payout requests
Top affiliates
| Teacher | Reward | Visits | Joined | Active | Paid | Earned |
|---|
Premium members
| Teacher | Premium until |
|---|
Payments
| Date | Teacher | Amount | Via | Invited by | Note |
|---|
How topics work
Topics are word lists (word, clue, example sentence) that teachers play in the topic games: Last One Standing, Sweaty Buttons, Word Race, Word Fish and Word Hunt. Every public topic gets its own page at /topic/… and goes into the sitemap, so each one is a new way for Google to find you. Approve the good ones, hide spam.
🚫 Blocked words list (English + Vietnamese)
Separate with commas or new lines. A * at the end also blocks longer words (fuck* blocks "fucking"). A topic with a blocked word is saved but waits in Waiting for review.
📥 Add many topics at once
Paste your topics below, or open a .txt, .csv or .json file. Each topic starts with a line beginning with #: # Title | Subject | Ages | Type. Under it, one row per line: word | clue | example sentence | picture link (only the first part is needed). Ages can be grade numbers (3,4 or 6-9) or Pre-K, Primary, Secondary, High school, Adults. Subject is one of the topic categories, e.g. Maths, Science, Geography, Animals. Type is words, questions, sentences or quiz (quiz rows: question | right answer | wrong / wrong / wrong). Leave an empty line between topics.
| Topic | Words | By | Status | Plays | Updated |
|---|
✨ AI topics
Teachers press ✨ Make it with AI in "Make a topic", type what they need (any subject, any age) and get a ready topic with pictures. Keys stay on the server; teachers never see them.
Writes every topic.
Only when the main one is busy or fails.
0 = Premium only
| AI | Key | Model | Used |
|---|
How to get a key
- Google Gemini (free with daily limits): aistudio.google.com/apikey → Create API key (starts with
AIza). - OpenAI: platform.openai.com/api-keys → Create new secret key (starts with
sk-). Add credit under Billing. - Claude: console.anthropic.com → API keys (starts with
sk-ant-). Add credit under Billing. Auto uses the newest Haiku (fast and cheap). - OpenRouter: openrouter.ai → Keys (starts with
sk-or-). One key for many AIs; some models are free (names end in:free). - Set a monthly spending limit on the AI's billing page, so a surprise bill is impossible.
📧 Email server (every email the site sends)
Confirm-email, welcome, trial, password-reset and campaign emails all go out from this mailbox. Use contact@myclass.games. Many hostings (Namecheap too) block or spam-folder emails sent the simple way, so it's best to send through a real mailbox (SMTP).
How to set this up on Namecheap (5 minutes)
- cPanel → Email Accounts → Create a mailbox, e.g.
contact@myclass.gameswith a strong password. - Next to it press Connect Devices. Copy the Outgoing Server (e.g.
mail.myclass.gamesorserver123.web-hosting.com) and the SMTP Port (465). - Fill in the boxes below: server, port 465, security SSL, username = the full email, password = the mailbox password, "From" = the same email.
- Press Save, then Send test email to your own address.
| When | To | Result |
|---|
Email not arriving for a teacher? Go to 👥 Users and press 🔑 next to their name to get a reset link you can send them on Zalo or Messenger.
🖼 Picture & GIF search (for teachers' topics)
Teachers click 🖼 on any word to search pictures, like Baamboozle. It works for free with Openverse and Wikimedia Commons (no key needed). For more and better cartoons, add a free Pixabay key. For real animated GIFs, add a free GIPHY key.
Pixabay: sign up → open pixabay.com/api/docs → your key is shown in the "Parameters" box. GIPHY: developers.giphy.com → Create an App → API → copy the key.
What teachers send with the 💬 Feedback and 💡 Suggest buttons (on the website and in every game).
| Teacher | Plan | Country | Joined | Last seen | Games | Topics |
|---|
On the home page
Popular topics
Shown on the home page (up to 10)
Funnel
From first visit to paying, for people who arrived in this period.
What happened right before teachers paid
Do teachers come back?
Teachers grouped by the week they signed up, and the share who used the site again 1, 2, 4 and 8 weeks later.
Topic picker
Do visitors choose a topic before playing? Which ones, and what did they search for that we don't have yet?
Free limits and Premium prompts
How often teachers hit a free limit or opened Premium, and from where.
Download reports
CSV files open in Excel and Google Sheets. Most use the period selected above.
Free trial
Founding teacher price
Teachers who pay while it's open keep the discount for as long as their plan stays active (card plans renew at the same price; bank transfers get it every time).
Free limits
0 = no limit
0 = Premium only
Premium-only games: open Games and tick “Premium only” on a game.
Game settings
Switched on = Premium only. Thinking time and calm mode always stay free.
Premium-only settings in each game
Tick a setting to make it Premium. Free teachers see it with a ⭐ and keep the normal value. “All games” applies everywhere.
Upgrade messages
Shown when a teacher reaches a free limit. {max} = most teams, {days} = trial days left.
Social proof on the pricing page
{teachers} and {countries} are filled in.
Make codes
0 = unlimited
How teachers use a code
They sign in, open My account → Have a gift or school code?, type it and press Use code. Premium days are added at once (on top of any Premium they already have).
Ideas: a free month for a workshop, a school buying 10 teachers (one code, 10 uses), a giveaway on Instagram or TikTok.
| Code | Days | Used | Expires | Note | Used by |
|---|
Write normally. Empty line = new paragraph. **bold**. A line with only [Button text](https://…) becomes a big button. {name} = the teacher's name. An unsubscribe link is added for you.
Who gets it
Only people who said yes to emails (and confirmed) are on the list.
Automatic emails so far
Which emails go out
Sending speed
Emails go out in small batches so your hosting doesn't block your mailbox. Namecheap shared hosting usually allows a few hundred an hour.
Make sending reliable (2 minutes)
Emails are sent while people visit the site. To send on time even at night: cPanel → Cron Jobs → Common settings: Every 5 minutes → Command:
Email texts
Add only people who agreed to get your emails. Teachers join when they tick the box at sign-up, in their account, or with the box at the bottom of the website (they confirm by email).
| Name | Status | From | Joined |
|---|