Frontend Developer
You’ll grow the EasyTalk Academy UI: landing, auth, personal dashboard, and Practice Lab on Nuxt 4, Vue 3, TypeScript, and Nitro on Cloudflare Pages.
About the company
EasyTalk Academy is an online platform for practical English: speaking, listening, comprehension, and writing in short EasyTalk Practice sessions. Topic vocabulary, quizzes, and interactive exercises (match-pairs, cloze, word-order, listen-pick). Progress and mastery in the dashboard: streaks, activity stats, and a subscription for self-paced practice.
What you’ll do
- Responsive, mobile-first interfaces with Vue 3 (Composition API, composables) — custom CSS with design tokens.
- SSR and SEO: semantic HTML, useSeoMeta, canonical URLs, i18n via @nuxtjs/i18n (uk, en, ru, es).
- Practice Lab: game exercises (drag-and-drop, audio, timers, first-try mastery), JSON-driven content.
- Nitro API integration: auth (email/password, Google OAuth), user data, and practice progress.
- Accessibility: keyboard navigation, :focus-visible, prefers-reduced-motion, WCAG AA, 44×44 touch targets.
- Edge performance: lightweight JS, transform/opacity animations, Cloudflare Pages optimisation.
- Code reviews, documentation, and frontend architecture improvements.
Requirements
Must have
- Frontend experience with Vue 3 and Nuxt 3/4 (Nuxt preferred).
- TypeScript, HTML5, CSS3 (flex/grid, custom properties); mobile-first responsive design.
- SSR and edge deployment (Nitro, Cloudflare Pages or similar).
- REST/API integration: forms, auth, error handling, user state.
- Git, code review, CI/CD awareness.
- Accessibility and SEO as part of day-to-day development.
- Remote communication; collaboration with product and design.
Nice to have
- @nuxtjs/i18n or similar i18n solutions.
- PostgreSQL + Prisma (Neon serverless).
- Edge constraints: HTTP email APIs on Workers (Resend).
- EdTech, language learning, gamification, progress tracking.
- Content-driven architecture: JSON, build-time content generation.
CS/Engineering degree or equivalent practical experience.
Stack
Frontend
- Nuxt 4
- Vue 3
- TypeScript
- Vue Router
Styles
- Custom CSS
- Mobile-first
i18n
- @nuxtjs/i18n
Backend (monorepo)
- Nitro
- H3
Deploy
- Cloudflare Pages
Data
- PostgreSQL (Neon)
- Prisma
Auth
- jose
- bcryptjs
- Google OAuth
Content
- JSON (content/)
- npm scripts