app.twinscience.com
Frontend of Twin Science's AI-powered K-12 STEM platform for teachers and students — integrated with EBA, in four languages.

app.twinscience.com is Twin Science's AI-powered K-12 science and STEM platform, used by four kinds of user — teachers, students, parents and school admins. I joined in July 2023 and have been its lead frontend developer since, working alongside a senior developer for ten months of it. About 5,800 commits (78% of the history) and 88% of today's ~230k-line codebase are mine, across 525 releases from v4 to v13.
Context
Teachers plan and run lessons on it — often on classroom smart boards — and students work through them on school computers, phones and the mobile app's webview. It is integrated with the Ministry of Education's EBA and ships in Turkish, English, Azerbaijani and Italian.
Problem
I inherited the project on Angular 16. When I measured it in August 2026, production mobile scored 50 on Lighthouse with a 12.7 s Largest Contentful Paint, and the test suite was not actually running at all. The product also needed AI tools whose output teachers could edit, assistants that could read the page without exposing student data, and features gated per licence and school segment.
Approach
Framework. Angular 16 to 22 — four majors in about 33 hours, then zoneless, then 22 with TypeScript 6. All 389 components are standalone and 388 use OnPush; signals, @angular/ssr with incremental hydration, and esbuild in place of webpack (production build 77 s to 32 s).
Performance. the main bundle shrank 45% and login JavaScript 71%, the icon font was subset by 87%, hashed assets are cached for a year, and analytics and chat scripts wait until the page is idle.
AI. a 33-tool content generator whose output opens in a Tiptap editor with 29 custom extensions, including in-browser background removal (ONNX). Teacher and student assistants stream over SSE with the page as context; the LLM only ever sees nicknames, and real names are swapped back in the browser.
Classroom. I built the quiz module in 2024 and later rebuilt its player to never scroll — it picks one type scale that fits every question on any screen. On top of it sit a smart-board teacher mode sharing the student components (−2,149 duplicated lines), a fullscreen Presentation Mode with an Excalidraw whiteboard, and smart-board detection for FATİH/Pardus classrooms checked against 90 days of Amplitude data.
Students and sign-in. a redesigned student portal, trivia with jokers and a DiceBear avatar market that runs on the web, in iframes and in the mobile webview; EBA SSO, QR-code login and one policy matrix for licence-based features.
Quality. from zero running tests to 2,191 (Vitest in a real browser, Playwright smoke tests), blocking both pull requests and deploys. Sentry and Amplitude watch production, with session tokens scrubbed from events and replays.
Outcome
Mobile Lighthouse went from 50 to 94 and LCP from 12.7 s to 1.8 s, with 91 on desktop and 100 for Best Practices and SEO (PageSpeed Insights lab run, Lighthouse 13.5, 16 Oct 2026). Lab scores move between runs and real-user mobile data still has room to improve — that is the next target.
Company recognition during my time
TIME World's Top EdTech Companies 2025 · London Tech Week Tech Impact Awards, Harnessing Tech in Education (2024) · BESA Highly Commended (2024) · HundrED Global Collection 2024. By the company's own 2024 review, the teacher portal reached more than 6,000 teachers in its first year, and teachers prepared lesson material five times faster with its AI tools.