A tiny self-contained tool that uses a free Groq LLM to draft AI tutorials and publish them straight to Dev.to. No backend, no deploy, no caching nightmare — one HTML file you bookmark, plus one Node script for fully-automated publishing.
Phone-friendly single-file HTML. Hosted via the CDN of your choice (raw.githack.com, cdn.jsdelivr.net, GitHub Pages, etc.) or opened locally. Settings stored in browser localStorage.
https://raw.githack.com/<your-username>/<this-repo>/main/index.html
Setup (one-time):
- Open the URL on your phone.
- Settings panel auto-opens. Paste your Groq + Dev.to API keys.
- Tap Save. Add to Home Screen for app-like feel.
Use:
- Tap Generate post → wait ~7 s → draft appears (1000–1400 words).
- Edit if you want, then tap Send to Dev.to.
- App copies the markdown (with frontmatter) to your clipboard and opens
dev.to/new— paste in the body field, Dev.to auto-fills title/tags.
Dev.to's API doesn't allow browser POST (CORS), so the app uses the copy-and-paste flow rather than a direct API call. Works reliably on iOS Safari, Chrome Android, desktop, etc.
Self-contained CLI that does the whole pipeline end-to-end with no manual steps. Generates the topic, writes the draft, POSTs to Dev.to as a real published article, prints the resulting URL plus a Medium cross-post link.
GROQ_API_KEY="gsk_..." DEVTO_API_KEY="..." node scripts/publish.mjsFlags:
--topic "RAG with SQLite"— supply a topic instead of letting the LLM pick.--draft— save to Dev.to as draft (default is live publish).
Cross-posting to Medium (manual, 3 taps): The script prints your published Dev.to URL plus the Medium import URL. On Medium, paste the Dev.to URL into the import form → tap Import → tap Publish. Medium has no usable API for new accounts, so this is the cleanest path.
Medium closed Integration Token issuance years ago — new accounts cannot post via API. Their mobile web also blocks the import-a-story page (forces app install). Dev.to has an open API, generous rate limits, the same dev-focused audience, and you can cross-post to Medium afterwards via Medium's import form.
| Service | Where to get it |
|---|---|
| Groq (the LLM) | https://console.groq.com/keys · free, no card required |
| Dev.to (publishing) | https://dev.to/settings/extensions · scroll to DEV Community API Keys |
Both keys live only in your phone's browser (for index.html) or your shell env (for publish.mjs). They are never stored in this repo.
The app and script try these Groq models in order, falling back on rate-limit or unparseable output:
openai/gpt-oss-120b— best general qualitymeta-llama/llama-4-scout-17b-16e-instructopenai/gpt-oss-20bllama-3.3-70b-versatilellama-3.1-8b-instant— last-resort, fastest
All verified working as of project creation. Browse the current Groq free model list at https://console.groq.com/docs/models.
.
├── index.html ← the single-file web app
├── scripts/
│ └── publish.mjs ← CLI publisher
├── .gitignore
└── README.md
That's the whole project.