Built for language tutors

Your language lessons deserve your domain,
not Italki's commission.

VeloCMS is a publishing platform for independent language tutors that handles lesson schedule publishing, pronunciation audio hosting, downloadable PDF worksheets, and Stripe-powered paid lesson packages in one place — no platform commission, no algorithm deciding who finds you, no archive locked inside someone else's portal. The Memo Garamond theme — academic serif typography, generous leading, footnote-friendly layout — ships free on every plan and fits the “scholarly but accessible” positioning independent tutors need.

Why independent language tutors keep hitting the same walls

Three different problems, one root cause — none of the platforms they currently use were built for tutors who want to own their students, their curriculum, and their income.

Italki + Preply take 15–30% of every lesson — forever

Run the math for a moment. A $30/hour tutor giving 20 lessons a week is handing $90–$180 directly to the platform every single week. That's $4,680–$9,360 a year. Not a one-time onboarding fee. Not a capped cut. A perpetual tax on every lesson you ever teach, for as long as you stay. That money doesn't buy you better discoverability, stronger students, or additional features you don't already pay for elsewhere. It buys the platform the right to keep you hosted. And the moment you leave, you leave with nothing — no student emails, no lesson history, no curriculum archive, no SEO from three years of profile content you wrote. The platform keeps all of it.

Platform algorithms decide who finds you

Your ranking on Italki today has almost nothing to do with how good a tutor you are. It has everything to do with review recency, lesson count acceleration, response time windows, and promotional boosts the platform decides to run for certain teachers at certain times. When Italki ran a "featured teacher" campaign for Spanish tutors last year, non-featured Spanish tutors saw their booking rates drop for six weeks — not because their teaching got worse, but because the platform rerouted demand toward teachers it chose to promote. You can't analyse why your visibility changed. You can't recover ranking by improving something real. You're farming attention on someone else's land with no lease terms.

Your lesson archive is locked inside the platform

Three years of lesson notes. Custom exercises you built for each student's weak points. Pronunciation audio clips you recorded explaining the difference between Turkish voiced and unvoiced stops. Grammar deep-dives that took an afternoon to write. All of it lives inside Italki's or Preply's lesson portal in a format that belongs to them. You can't export it. You can't reuse it as a free lead magnet for your own website. You can't sell it separately as a self-paced mini-course. When your account closes — or when the platform decides to change its terms — that archive disappears. Independent tutors who own their curriculum can turn three years of lesson notes into ten products. Platform-locked tutors turn those same three years into nothing at exit.

What a language-tutor-first platform gives you

Pronunciation audio, lesson schedules, per-language tagging, PDF worksheets, hreflang SEO, and Memo Garamond — bundled into one platform with no plugin stack and no platform taking a cut of every lesson you teach.

Audio-rich content with native pronunciation player

Upload MP3 pronunciation drills, dialogue clips, and listening exercises directly to Cloudflare R2. They render in-post with a native audio player — no SoundCloud link, no external hosting, no playback controls that don't match your theme. Gate pronunciation packs behind your paid membership tier or keep them free to demonstrate teaching quality to prospective students browsing your lesson blog.

Lesson schedule + recurring booking funnel

Publish your recurring weekly class schedule — Tuesday conversation club, Thursday grammar workshop, Saturday pronunciation intensive — as structured posts. Tag each with the language and level so students filter by what they need. Connect your Stripe account to sell per-lesson slots or monthly subscription access. The booking flow lives on your domain, not a platform profile that rents you shelf space.

Per-language tag system — one site, every language you teach

A tutor who teaches Turkish, Spanish, and Japanese doesn't need three separate websites. Apply per-language tags to every post and lesson — `lang:turkish`, `lang:spanish`, `lang:japanese` — and your tag archive pages become clean language-specific indexes students can bookmark. A new student landing on your site for Spanish lessons never has to wade through your Turkish content.

PDF worksheet downloads — member-gated, native upload

Upload PDF worksheets directly to Cloudflare R2 and mark each one members-only. Students who've paid for access can download them immediately from your site — no Dropbox URL you have to regenerate when the link expires, no Google Drive share settings you have to manage. The gate is handled by VeloCMS membership: sign up via Stripe, get a session cookie, download works. No workaround stack required.

hreflang SEO — one page, right audience in every country

When you write the same lesson in English and in your target language, Google sees two pages and has to guess whether they're duplicates or correct localizations. hreflang tags tell Google they're the same content for different audiences — the English version for students learning from English, the Turkish version for students learning from Turkish. VeloCMS generates these tags from your post's language and region metadata. No plugin, no manual tag editing per post.

Memo Garamond theme — scholarly but accessible

The Memo Garamond preset uses an academic serif type stack — long-form friendly, footnote-ready, with generous leading that makes grammar explanations readable rather than skimmable. It communicates "this tutor knows the theory" without feeling sterile. The same theme handles pronunciation audio, lesson PDFs, and a booking CTA without visual clutter. Ships free on every plan.

Features language tutors actually need

Per-language tag indexes, native audio player, Stripe lesson packages, member-gated worksheets, PDF download blocks, and hreflang SEO — all in one place without a plugin in sight.

Multi-language tag index — one blog, every language you teach

Tag posts with `lang:`, `level:`, and `topic:` labels. The tag archive pages generate automatically — `/tag/lang-turkish`, `/tag/lang-spanish`, `/tag/level-beginner` — so students can bookmark exactly the content that's relevant to them. Language-specific tag pages carry their own meta descriptions and canonical URLs, which means each language stream can rank independently in Google.

Native audio player — pronunciation drills and dialogue clips

The editor's Audio block accepts MP3 uploads direct to Cloudflare R2. Files render with a native player that respects your Memo Garamond theme aesthetic — no external player branding, no cookie consent popup from a third-party host. A single post can embed multiple audio clips: model pronunciation, student error correction, dialogue A and dialogue B. Gate the full drill set behind membership or keep clips free to attract new students.

Lesson schedule — recurring class posts with Stripe checkout

Create a post for each recurring class slot, tag it with language, level, and day, and connect a Stripe product for per-lesson purchase or monthly subscription. Students see a rolling class calendar, click a slot, and land on a checkout flow on your domain. No platform fee beyond Stripe's standard processing. You receive a booking email, they receive access confirmation — the entire flow runs on infrastructure you own.

Member-gated worksheets — Stripe-powered, instant access

Mark any PDF, audio pack, or lesson page as members-only. Students who land on gated content see a membership prompt that routes them to your Stripe checkout. On successful payment, they're returned to your site and access is unlocked immediately — no manual approval, no email thread confirming payment. The paywall works at the post level, the page level, or across an entire tag (e.g., all posts tagged `premium`).

PDF worksheets — native upload, no Dropbox dependency

Upload PDF files in the TipTap editor's File block. Files are stored on Cloudflare R2 with a unique opaque URL — not guessable by pattern, not expirable by a share link timeout. Members download with one click. You never have to regenerate a Dropbox link because a student reported it expired, and you never worry about Google Drive sharing settings leaking paid content to non-paying browsers.

hreflang tags — tell Google your lesson pairs are related

Publish your lesson in English, add the Turkish equivalent post and link them as language alternates in the post settings. VeloCMS emits the correct `hreflang` link elements in `<head>`. Google stops treating them as duplicate content and starts serving the correct version to the right audience — your English lesson to English-speakers learning Turkish, your Turkish lesson to native Turkish students learning English. Two pages, two audiences, one canonical trust signal.

From Italki or Preply to your own teaching platform in five steps

No developer, no multi-tool stack, no monthly platform commission. Get your lesson schedule, audio drills, and gated worksheets live in an afternoon.

0120 min

Export your Italki or Preply lesson history

From Italki, navigate to My Profile → Teaching Materials and download any uploaded resources. Lesson notes typed inside the Italki classroom interface aren't exportable — copy them from your browser manually or use a browser automation tool if the volume is high. From Preply, go to Dashboard → My Lessons → Export to download lesson session summaries as CSV. Neither platform gives you audio recordings they created, but any audio files you uploaded separately should be accessible from your account settings.

0210 min

Upload your lesson archive to VeloCMS

Create posts in VeloCMS's TipTap editor for each major lesson type or curriculum section. Paste in your lesson notes, upload PDF worksheets via the File block, and re-upload audio clips via the Audio block. Tag each post with the language, level, and topic. Your three years of Italki lesson content — which previously generated zero Google traffic and zero subscriber value — now lives on your domain as SEO-indexed content you can promote, gate, and build from.

0315 min

Set up your per-language tag system

Create tags in Admin → Tags for each language you teach (`lang:english`, `lang:turkish`, `lang:spanish`), each level (`level:beginner`, `level:intermediate`, `level:advanced`), and each topic focus (`topic:pronunciation`, `topic:grammar`, `topic:conversation`). Go back through your uploaded posts and apply the relevant tags. Your tag archive pages generate automatically — students can now bookmark `/tag/lang-turkish/level-beginner` and see only the content relevant to where they are.

0410 min

Upload your first pronunciation audio + worksheet PDF

Open a new post in the editor. Add an Audio block, upload your MP3 pronunciation drill from your computer. Add a File block, upload the companion PDF worksheet. Set visibility to members-only or free — your choice. Hit publish. The post is now live with native audio playback and a downloadable PDF, all on your domain, with no external service dependency. The whole process takes under ten minutes.

055 min

Activate Memo Garamond + open paid lesson packages via BYOK Stripe

In Admin → Themes, click Memo Garamond → Apply. Your site immediately shifts to the academic serif layout — generous leading, footnote-friendly typography, clean heading hierarchy. In Admin → Settings → Membership, connect your Stripe account via the OAuth flow. Set your monthly lesson subscription price or create one-time lesson package products. Your platform is live on your velocms.org subdomain. Point a custom domain CNAME when you're ready to fully leave Italki.

VeloCMS vs Italki vs Preply vs Udemy

FeatureVeloCMSItalkiPreplyUdemy
Custom domainYesNoNoNo
Platform commission0%15–30%Up to 33%37–63%
Audio content native playerYesIn-class onlyIn-class onlyVideo only
PDF worksheet downloadsYesUpload only — no gatingUpload only — no gatingFile attachments only
Multi-language SEO (hreflang)YesNoNoNo
Time to first lesson live5 min2–3 days (approval)1–2 days (approval)1–2 weeks (review)
Cost per year + commission lost0–$348 + 0%Free host — 15–30% foreverFree host — up to 33% foreverFree host — 37–63% forever
Start today — no credit card

Free for lessons, audio, and Memo Garamond. Pro when you need a custom domain and paid packages.

Free

$0

Forever

  • Up to 100 lessons + audio embedding
  • Pronunciation audio player
  • Per-language tag system
  • Memo Garamond theme
  • Newsletter to subscribers
  • velocms.org subdomain
Get started free
Most popular

Pro

$9

per month

  • 1,000 lessons + audio files
  • Custom domain + SSL
  • BYOK Stripe lesson packages (0% fee)
  • hreflang multi-language SEO
  • Member-gated PDF worksheets
  • AI writing assistant
Start Pro free

Business

$29

per month

  • Unlimited lessons + audio
  • Multi-tutor language school team
  • White-label branding
  • Priority support
  • Team collaboration
  • Advanced member analytics
Start Business free

Questions language tutors ask before switching

Honest answers — no Italki upsell.

Does VeloCMS support hreflang tags for multilingual content?

Yes. When you publish the same lesson in two languages, you can link the posts as language alternates in the post settings panel. VeloCMS emits the correct `hreflang` link elements in the page `<head>`. Google reads these and stops treating the two versions as duplicate content — instead serving the English lesson to English-speaking students and the Turkish lesson to Turkish-speaking students. This is particularly valuable for tutors who teach English to speakers of a specific language, where the same conceptual lesson needs two linguistic entry points in Google.

Can I host pronunciation audio drills with a native player?

Yes. The TipTap editor includes an Audio block. Upload your MP3 file directly — it's stored on Cloudflare R2 with a unique opaque URL. The post renders a native audio player that uses your theme's styling, not a third-party player's branding. A single post can contain multiple audio clips — you can embed a model pronunciation, a contrast pair, and a student error correction example in one lesson post. You can gate audio content behind membership or keep it free — the gate is set per-post.

How do paid lesson packages work with BYOK Stripe?

In Admin → Settings → Membership, connect your Stripe account via a one-click OAuth flow. Once connected, mark any post, audio pack, or PDF worksheet download as members-only. When a prospective student lands on gated content, they see a prompt that routes them to your Stripe checkout — your Stripe account, your branding, your revenue. On payment success, VeloCMS grants access automatically. You can set up a monthly subscription (ongoing membership), a one-time purchase (single lesson package), or a per-tier access model (beginner pack vs advanced pack). VeloCMS takes 0% platform fee. Stripe charges its standard 2.9% + 30¢ per transaction.

Why is Memo Garamond the recommended theme for language tutors?

Language tutors write two kinds of content: short lesson exercises (dialogue, vocabulary, fill-in-the-blank) and longer explanatory prose (grammar theory, etymology, pronunciation methodology, cultural context). Memo Garamond was designed for academic long-form writing — generous line spacing, humanist serif type stack, footnote-ready layout, structured heading hierarchy. It communicates scholarly credibility without feeling cold. A student landing on a lesson page styled with Memo Garamond reads 'this tutor understands the language at a structural level,' which is exactly the positioning independent tutors leaving Italki need to justify independent pricing.

Can I migrate my Italki or Preply lesson archive?

Partially. Neither platform exports lesson notes as structured Markdown or HTML — any text you typed inside their classroom interface has to be copied manually. PDF and audio files you uploaded to your profile are usually downloadable from your account settings. Student emails are not accessible — Italki and Preply treat student contact data as platform property. The practical migration path is: manually copy your most valuable lesson content, re-upload audio and PDF files, rebuild your schedule structure as posts in VeloCMS, and use a free lead magnet (one free lesson or one free downloadable) to move existing students to your new platform's email list before you reduce your Italki presence.

How are downloadable worksheets gated for paid members only?

In the TipTap editor, add a File block to your post and upload the PDF. In the post's visibility settings, set access to members-only (or a specific membership tier if you have multiple tiers). When a non-member lands on the post, they see the post preview and a membership sign-up prompt. On successful payment via your connected Stripe account, VeloCMS grants them a session and they return to the post to download. Files are stored on Cloudflare R2 with opaque URLs — not guessable by pattern, not shareable by URL since the download route checks session auth before serving the file.

Will Google index my English and Turkish versions as duplicates or as proper localizations?

With hreflang tags configured correctly, Google treats them as proper localizations — serving the right version to the right audience rather than flagging either as duplicate content. Without hreflang, two pages covering the same grammar topic in two languages compete for the same search queries and neither ranks as well as a single authoritative page would. VeloCMS generates the `hreflang` link elements from your post's language settings — there's no manual HTML editing, and no separate SEO plugin needed. You pair posts as language alternates in the post settings panel and the markup handles itself.

Is VeloCMS faster to launch than building a Squarespace + Calendly + Memberstack stack?

Significantly. The Squarespace + Calendly + Memberstack stack requires three separate accounts, three sets of monthly billing, three sets of embed code integrations, and three support channels when something breaks. Setup realistically takes 8–12 hours and costs $60–$120 per month at professional tiers. VeloCMS is a single platform — lesson scheduling is posts with recurring tags, booking is BYOK Stripe checkout, member gating is built into post visibility, audio and PDF hosting is built into the editor. You can go from signup to a live lesson page with pronunciation audio and a gated worksheet in under an hour. Monthly cost starts at $0 (velocms.org subdomain, 100 lessons) and tops out at $9/month for a custom domain with unlimited audio, BYOK Stripe, and hreflang SEO.

Stop renting your students from Italki. Start free with Memo Garamond.

Lesson schedules, pronunciation audio, PDF worksheets, hreflang SEO, and the scholarly aesthetic your teaching deserves — all on a platform where you own the student list, not Italki or Preply.

Start free with Memo Garamond