Japonics / EDTECH
KOTORI
A multi-language learning platform connecting courses, spaced repetition, listening, speaking, language-school operations, and content workflows across any language, not just one.
Local-first language-learning architecture
Where the project started
Kotori connects spaced-repetition learning, active practice, and AI with language-school operations in one domain model, where learning works locally and AI/cloud extend the product instead of gatekeeping it.
Kotori connects learning and language-school domains without mixing responsibilities. Content is versioned, exercises have a lifecycle, SRS has a separate planning model, and schools get an operating panel for groups, teachers, and progress.
Business / Product
Problems and solutions
Each tile connects a real product tension with the decision that clarified the domain, UX, or operations.
Language learning is split across flashcard apps, courses, notes, online lessons, and separate school systems.
Design a platform that connects a learning engine, content, SRS, and school operations in one model.
The scope could easily become a feature list without one product, data, and ownership model.
Kotori connects learning and language-school domains without mixing responsibilities. Content is versioned, exercises have a lifecycle, SRS has a separate planning model, and schools get an operating panel for groups, teachers, and progress.
The project needed decisions that would stay readable after the first version: for users, the team, and further delivery.
SRS and content authoring as separate domains. Listening/speaking prepared for AI feedback.
Roles and competencies
The competencies this build required
Competencies are shown as ownership roles: CTO, Tech Lead, engineering, DevOps, cloud, security, and AI where they were part of the work.
Fractional CTO
Connecting the product thesis, domain risk, and priorities so technology supports business decisions instead of becoming a separate workstream.
Open competency- Product category and positioning
- Scope priorities and risk
- Decisions ready for founder or CTO review
- Product thesis translated into technical priorities.
- Risks framed in a language stakeholders can review.
Tech Lead
Shaping responsibility boundaries, domain modeling, and architecture decisions so the project can grow without drifting into an accidental monolith.
Open competency- Bounded contexts and ownership
- Readable technical decisions
- Roadmap without implementation chaos
- Domain boundaries and decisions that remain reviewable after MVP.
- Ownership model readable for later delivery stages.
Software Engineer
Turning the domain into screens, APIs, flows, and maintainable implementation with focus on clarity and post-MVP evolution.
Open competency- Backend and application contracts
- UX surfaces ready for iteration
- Code and maintenance model
- Implementation tied to the real product workflow.
- Contracts and code prepared for post-launch iteration.
DevOps Engineer
Designing delivery, observability, and operations so release, diagnostics, and recovery are part of the product.
Open competency- CI/CD and release readiness
- Observability and production signals
- Operations without manual rituals
- Release, diagnostics, and recovery designed as product capabilities.
- Production signals ready for maintenance without guessing.
Cloud Engineer
Choosing cloud, data, and integration foundations so scale, cost, and reliability are not added after the fact.
Open competency- Google Cloud and managed services
- Data, events, and storage
- Cost and operational control
- Cloud choices tied to cost, scale, and data responsibility.
- Integrations and storage treated as foundations, not add-ons.
Security Engineer
Access to content and learner data is controlled at the library and profile level, and the local-first learning model limits what ever needs to reach the cloud in the first place.
Open competency- Controlled content access via library API keys
- Per-profile isolation of learner progress and preferences
- Local-first design as a deliberate cloud-exposure reduction
- Privacy, roles, and auditability built into the product model.
- Security visible in domain decisions, not only around the UI.
AI/ML Engineer
Treating AI as a product capability: with context, constraints, versioned signals, and a clear boundary between facts and interpretation.
Open competency- LLM as a controlled capability
- Signal and projection quality
- Responsible product constraints
- AI constrained by context, signals, and product responsibility.
- Boundary between facts and interpretation preserved in architecture.
Stack by competency
Tech stack
The stack is grouped by competency so it shows both technology and responsibility: software, leadership, DevOps, cloud, security, and AI.
- .NET / ASP.NET Core
- TypeScript
- .NET MAUI mobile client
- Angular web client
- Domain logic engines
- PostgreSQL
- Domain modeling
- Offline-first domain model
- OpenTelemetry
- Cloud Logging
- Object storage
- Privacy architecture
- Local-first data minimization
- Scoped content access control
- LLM orchestration
- AI feedback loops
Product preview
Gallery
Selected screens and materials showing the product surface, UX decisions, and work outcome.