-
-
-
Learn Swedish the smart way — a dictionary and study companion
-
Home — search Swedish and English, and revisit your pinned words
-
Every entry with translations in several languages and real examples
-
A new Swedish word each day, explained in context
-
Learn — spaced-repetition sessions for the words you pinned
-
Swipeable study cards: tap to reveal, then mark what you know
-
Track your progress across every saved word
-
Graded stories — read, learn the vocabulary, take the quiz
-
Listen and read along with narrated audio
Inspiration
Learning Swedish means looking words up constantly — and most dictionary apps stop at the definition. We wanted a Swedish–English dictionary that also helps the words stick: something you'd actually reach for in your pocket every day.
What it does
Lyska is a Swedish–English dictionary and language-learning companion:
- Fast, accurate Swedish↔English lookups
- Pin any word to build personal study cards
- Spaced-repetition review sessions so vocabulary sticks
- Listen-and-read audio stories that teach words in context
- Camera scan to look up words from the world around you
How we built it
- App: Expo (SDK 55) + React Native — one codebase for iOS and Android, with a variant system that builds multiple apps from a single repo.
- Backend: NestJS API with Better Auth for sessions, deployed on Coolify.
- Monetization: RevenueCat powers the subscription paywall and entitlements across both stores.
- Supporting stack: Sentry for crash reporting, Firebase Analytics, OneSignal for push, and AdMob.
Challenges we ran into
Reliable audio playback across iOS and Android, surviving flaky networks (retrying dropped audio downloads and failed camera scans), and rock-solid auth — signing users out cleanly on expired sessions while extending sessions so people stay logged in.
Accomplishments that we're proud of
A polished, production app live on both the App Store and Google Play, with genuine spaced-repetition study built in — not just definitions.
What we learned
- Cross-platform parity lives in the details. Audio and gestures behave differently on iOS and Android; making them feel identical took more care than the features themselves.
- Fail closed on money, open on content. Ads read the RevenueCat entitlement and stay hidden until it resolves, so a paying subscriber never flashes an ad on a cold start.
- Networks are hostile. Retrying dropped audio downloads, failed camera scans, and transient API calls turned "flaky" into "invisible" for the user.
- Sessions are a UX decision, not only a security one. Signing out cleanly on a 401 while extending sessions to 30 days removed a whole class of "why am I logged out?" frustration.
- Spaced repetition only works if it's frictionless. A fast, one-tap review flow mattered more than the algorithm behind it.
What's next for Lyska
More languages, richer stories, and smarter review scheduling.
Try it out
Built With
- admob
- better-auth
- firebase
- nestjs
- node.js
- react-native
- revenuecat
- sentry
- typescript
Log in or sign up for Devpost to join the conversation.