ProductRelease notes

What's New: Set Your Own Daily Pace, and a Library That Handles Big Decks

The knojo team4 min read

TL;DR

Every goal now has a daily pace — Light, Steady or Intense — that caps how many new cards and reviews it can add to your day, replacing a single flat limit across everything. Cards you rate 'Forgot' come back once more before the session ends. If you finish and want more, there's an optional extra round. The card library is now paginated and searchable on the server, so large decks open instantly. And a CSV import bug that could silently drop cards is fixed.

The theme of this release is control over your daily load. A review queue that decides its own size isn't a habit — it's a source of dread, and the fastest way to lose a streak is to open the app and find a wall. Here's what changed.

Set a daily pace for each goal

Until now there was one flat cap across everything you were studying. That's the wrong shape: a language you practise daily and a certification you're chipping away at have completely different appetites, and one number can't serve both.

Each goal now carries its own pace — Light, Steady or Intense — which budgets how many new cards and how many reviews that goal may contribute on a given day. New cards are interleaved through your reviews rather than arriving in a block at the start.

PaceGood for
LightA subject you want to keep warm without it competing for attention.
SteadyThe default. A goal you're actively working through at a sustainable rate.
IntenseA deadline — an exam in three weeks, a trip you're learning the language for.
Picking a pace.

Set it lower than feels right

The pace you can keep on a bad day is the one that matters. A goal on Light that you never skip beats a goal on Intense that you abandon in a fortnight.

A second look at what you forgot

Rating a card Forgot used to end your encounter with it for the day. Now it comes back once more later in the same session, a few cards further on — close enough that the answer is still reachable, far enough that you have to actually retrieve it rather than echo it.

That second look is deliberately unrated. The lapse was already recorded and the card is already scheduled for tomorrow; letting a lucky second guess overwrite that would erase the very signal that you forgot it. It's a chance to close the loop, not a retake.

Forgotten cards now wait until tomorrow

Related, and quieter: a forgotten card used to be rescheduled about twelve hours out, which in practice meant it reappeared the same evening. Reviews are now scheduled against the start of your local day, so tomorrow means tomorrow. Ratings made near midnight are pinned to the moment you made them, so they can't slip into the wrong day's budget.

One more round, if you want it

Finishing your queue should feel finished. But if you've got momentum and there's still a backlog waiting, you can now opt into an extra round — reviews only, no new cards. It appears only when there's actually something to review.

You'll notice we don't show you the size of that backlog. A number that only ever grows is a guilt counter, not information. "Due today" now means what's left in today's queue, which is the only figure you can act on.

A library that handles big decks

If you'd imported a few hundred cards into a goal, opening the library was slow — it loaded every card, with its full review state, before anything appeared on screen, and it did this while the app was still starting up.

  • The library now loads in pages and renders only the rows on screen, so a large goal opens immediately.
  • Search is new, and it runs on the server across both questions and answers — so it finds cards from anywhere in the deck, not just the ones already loaded.
  • The library is no longer fetched at startup, so opening the app is faster whether or not you go there.

A CSV import bug worth knowing about

This one deserves plain language, because it may have affected you without saying so. If an imported file contained a double quote that was never closed — a stray `"` in a single cell, often left over from another export — the parser stayed in "inside a quoted field" mode for the rest of the file and swallowed everything after it.

The visible result was an import that simply finished with fewer cards than the file had, reported as one skipped row. A 400-row file with a stray quote in its 161st cell imported 160 cards and said nothing useful about the other 240.

If an import ever came out short

Re-import the same file. The parser now recovers at the offending quote and carries on, so only that one cell is affected. Cards already in the goal are recognised as duplicates rather than added twice.

The same flaw sat in the delimiter detection with a wider blast radius: a stray quote on the first line meant no delimiter was counted at all, and a tab-separated file — an Anki export, typically — could be read as comma-separated and fail entirely. Also fixed. Full details are in the import guide.

Smaller things

  • Lapsed cards are no longer miscounted as new. Rating a card "Forgot" resets its repetition count, and that was being read as "never seen" in the due summary and the goal carousel.
  • Opening a card's detail screen no longer strands on a spinner in certain states, and switching goals no longer briefly shows the previous goal's cards under the new goal's name.
  • The free-plan usage meter no longer appears for Pro subscribers, who have no cap for it to measure.

If you're new here, this is how knojo turns notes into a daily review queue, and this is why the timing matters.

Frequently asked questions

What is a daily pace in knojo?+

A pace is a per-goal setting — Light, Steady or Intense — that caps how many new cards and how many reviews that goal can add to your day. It replaces the previous single flat limit applied across everything, so a goal you're pushing hard and one you're keeping warm no longer compete for the same budget.

Why doesn't the second look at a forgotten card let me rate it?+

Because the lapse has already been recorded and the card is already scheduled to return tomorrow. Rating it again would either double-count the review or let a lucky second guess erase the signal that you forgot it. The drill exists to close the loop, not to change your score.

Why doesn't knojo show me how many cards are in my backlog?+

A number that only grows is a guilt counter rather than something you can act on. The due count now reports what's left in today's queue — a figure you can actually finish. If a backlog exists, you're offered an optional extra round instead of a running total.

I imported a CSV and got fewer cards than expected. What happened?+

You likely hit a bug where an unmatched double quote in the file caused every following row to be swallowed into a single field, reported only as one skipped row. It is fixed in this release. Re-import the same file — the missing cards will come in, and existing ones are skipped as duplicates.

Do I need to change any settings after updating?+

No. Every goal starts on a sensible default pace and you can adjust it per goal whenever you like. The library, scheduling and import improvements apply automatically.

Put this into practice with knojo.

Turn your notes into a five-minute daily review queue and keep what you learn. Launching soon on iOS and Android.

Coming soon on iOS & Android
Download on the App StoreGet it on Google Play