Follow what changed in Saksı Kampüs, release by release.
Tutors get a Library and a reworked assignment form: resources are picked from the library, each item takes a note to the student and an AI help setting, and tutors can count assignments and items as completed or not completed; a personal study plan follows topic quizzes, mock exams and homework sets; the student's Resources menu and course pages move to the new design; coordinators can run the organization's daily operations; group lessons now ask for a post-lesson review too, and students running low on credit get WhatsApp reminders.
Tutors get a Library. The Library page in the menu lists the tutor's expertise courses as cards, including those hidden from the curriculum page. Opening a course shows its units, topics and resource-type tabs; a resource opens in a preview, and the Assign button opens the new-assignment window with that resource already added. Going back from a preview returns to the same topic and tab.
The six add buttons of the assignment form became three: Add from library, Create homework set and Add PDF task. Add from library opens the library in a window; several resources can be picked across topics, lists can be searched by title, and resources already in the assignment cannot be picked.
Every assignment item has a Settings panel: an AI help switch and a note to the student. The note shows at the top of the page the student opens the item on: the solving screen, a content, a learning room, a PDF task or a revision note. The closed item row shows the settings as badges.
In assignment analytics tutors can mark a student's assignment, or a single item, as Count as completed, Count as not completed or Automatic. Student and guardian views show which items the tutor counted; an item the tutor counted as not completed no longer shows as completed to the student.
In assignment analytics, revision note rows show the recap set's correct, wrong and empty counts and open its answers. Learning room rows show correct, wrong and empty counts taken from the answers instead of skipped steps and accuracy.
The Cancel, Save as draft and Publish buttons of the assignment form sit right-aligned in a bar stuck to the bottom of the page; the Save as draft button replaces the draft switch. A published assignment keeps Save as its main button.
Guardians see "Student Assignments" in their menu and on the assignments page; the page names the student whose assignments are shown, and a guardian with several students can pick one.
A resource given in an assignment but outside the student's package no longer shows as "Untitled" in the sidebar.
A content or interactive content counts as completed once it is opened; time spent no longer completes anything. The required-time field of the assignment form was removed. Contents opened earlier, and the assignments they finish, were marked completed as well.
Finishing a topic quiz, mock exam or homework set opens a result page with a personal study plan, topics to review and topics going well. For weak topics it suggests a learning room, a revision note and an unstarted topic quiz the student can open. Finishing asks for confirmation, and a test opened from an assignment returns to it. The review opens at the first missed question.
The assessment's topics come preselected in the Pick from question bank, New question and Fill with AI windows; changing them there leaves the assessment as it is. A hint under the topics field says so, and tells expertise-limited instructors that only their expertise topics are listed.
On the course page the Contents tab is split into Videos and PDFs; the PDFs tab only shows on courses that have PDFs. Every tab is a collapsible row list, and students see the resources they finished marked "Completed", or "Read" for notes. A quiz with a retake in progress shows "Continue".
The student and tutor menus follow the new design: the open page is highlighted, My assignments shows the number of pending assignments, and the tutor menu gets design icons and shorter names.
Recent practice session cards are clickable: a finished session opens its results, the others continue where they were left.
The student's Resources menu is organized by resource kind: each kind opens a page listing the courses that have it, with counts matching the course tab. The old topic quiz and mock exam lists redirect to the new pages.
Group lessons now ask the tutor for a post-lesson review as well; the reminder, list badge and student-row icon of one-to-one lessons work for group lessons too, with the questions worded for the class.
A refused lesson join no longer downloads a file named after the session, as Safari did; an error page opens instead. A logged-out user returns to the join link after logging in.
A tutor's session report is visible to staff only: its notification goes to admins and coordinators instead of the student and guardians, and tutors see only their own reports.
Students running low on credit, and their approved guardians, get WhatsApp reminders at 3, 2 and 1 hours left, when the credit runs out and when the balance goes negative. A negative balance is reminded every 3 days, at most 3 times, after which the operations team is notified; a partial payment restarts the cycle. Messages are sent during daytime only.
Coordinators can run their organization's daily operations: classes (the empty list is fixed), study plans, student-guardian links and guardian profiles. They can see students' assignment progress, subscriptions and feedback, receive every notification except invoices, and have their own home page. Deleting a class stays with admins.
Only its owner can create or change a test attempt; attempts and answers can be read by those who may see the student's progress. A completed attempt cannot be reopened, and results are computed on the server.
Saksı tutors' menu is a single list: home, lessons, availability, students, classes, library, assignments, reports and earnings. Content, question, note and room management pages send them home; library previews stay open.
The metrics page lists which student completed which assessment in the selected range, with correct and wrong answers, net, score and time. The list can be searched, filtered by type and paged; a row opens the detailed attempt report in a new tab.
The package feature picker has a search and a feature type filter; results load 50 at a time and selections survive filter changes.
The guardian's checkout keeps working without a page refresh when a student is picked or a link is approved, and billing details are no longer lost on a pick. Pending student links are listed with a check-again button.
Pricing, payment and gift checkout pages show the Saksı Kampüs logo (the organization's logo elsewhere) instead of the old Saksı logo.
A student profile is created when staff give a student credit, a match, a lesson or a class with lessons, so the admin student window shows the curriculum and the negative-balance switch for students who never opened the onboarding wizard. A student finishing the wizard later keeps their guardian information.
Staff can create gift links that let someone else pay for a student's packages, and checkout links with the packages already picked; incremental packages are sold in a quantity picked with -/+; tutors write monthly templated progress reports on the new Reports page; selected students can book lessons down to a -180 minute balance; expired lessons held outside the system can be completed; Twin Question Generation now covers free-response and shared-stimulus questions; onboarding requires a name and surname; and tutors can set availability until midnight.
Gift links arrived. Staff who manage payments pick packages and an optional promo code for a student on the Gift Links page and create a single-use link with an expiry date. Whoever opens it can pay with a card and typed billing details without an account, or log in to use their saved card and coupons. The packages are added to the student's account and the receipt and invoice go to the payer's e-mail address. The link is locked while a payment is in progress, so it cannot be paid twice. Links can be edited and revoked later, and only one-time (non-renewing) packages can be picked.
Checkout links can be created from the same page. The link opens the payment page with the picked packages and promo code and stores nothing; whoever opens it logs in and pays for themselves, returning to the payment page after login.
Incremental packages can be sold in a quantity. A package is marked incremental with a maximum quantity; on the pricing page the quantity is picked with -/+ left of the buy button, and price and credit are multiplied by it. The cart, payment page, admin payments list and the invoice line (quantity × unit price) show the quantity. Only one-time packages that grant one-to-one lesson credit can be incremental.
When a sold package's name or group program changes, its Paraşüt product is renamed too, so later invoices carry the new name. Nothing is renamed while the organization's invoicing is off.
The installment options on the payment page and the gift link checkout carry a note that Miles&Smiles, Shop&Fly and American Express cards cannot pay in installments.
Tutor fees for 90-minute lessons are rounded to the nearest 10 TRY (2,550 TRY instead of 2,553 TRY). Earning entries, the payout forecast, match cards, the session detail and the earning forms all show the same amount; other durations keep kuruş precision.
A user who signs up as a guardian and buys a package in the same session now gets the student picker at checkout and the package goes to the student; before, they were treated as a student and the package landed on the guardian's own account. A guardian payment without a student is now refused.
The saved-card pay button is locked and shows a spinner while the charge is in progress, so a double click no longer charges the same cart twice.
Buying back the package of a cancelled or past-due subscription now reactivates it with a new period and price and grants its credits; before, the card was charged but the purchase could not be recorded.
A Reports page arrived for monthly progress reports. Tutors write one templated report per match, student and month: overall progress, 1–5 ratings for understanding, participation, homework and motivation, topics covered, strengths, areas to improve, next month's goals, recommendations for the guardian and a note only coordinators and admins see. Once a student attends a completed non-intro lesson in a month, that month's report is due from the 1st of the next month and overdue after the 15th. Missing-report icons show on the Reports page and in My Students, and the post-lesson reminder modal has a monthly reports section. Staff see every match in the organization, toggle a report's visibility to the student and guardian and can delete it; a report's first submission notifies staff. Old free-text reports stay read-only.
A Reports button on the student profile modal opens the reports list filtered to that student in a new tab. The filter is kept in the URL, so Back and returning from a report keep it.
Students can book lessons down to a -180 minute balance when their credit runs short. The feature is switched on per organization, and staff who manage credits choose which students may go negative from the student modal. The booking dialog warns that the balance will go negative, or that the credit is exceeded, and shows the balance after booking. A negative balance survives the subscription ending and is paid back from the next top-up or positive adjustment. The students list has a "Negative balance" filter, and debt shows in red wherever a balance is shown.
Staff can complete an expired lesson that was held outside the system with Complete Session. The lesson is recorded at its scheduled end, attendance is marked "Held Externally" and a note is added to the admin notes. The student is charged again: the credit booked for the lesson first, otherwise another fitting credit; when none fits, the action says why it cannot complete. The lesson joins the tutor's lessons awaiting a report.
The join button on the session detail, its countdown and the late-change warning run on the server's clock instead of the device's, so a device with a wrong clock no longer opens the button early or late.
Students who join a class later can watch the class's earlier group lesson recordings. A recording's one-week window starts on the day they joined when the lesson ended before that; before, those lessons showed no recording at all once they were more than a week older than the join. Guardians follow their students' joins, and nothing changes for students who were in the class for the lesson.
Tutors can set availability until midnight; 24:00 and 00:00 are accepted as an end time. "+" starts a new row at the previous row's end, and after a row ending at midnight it adds an empty row at the bottom instead of wrapping to 00:00. Empty time fields are flagged on save, also when a save in the day dialog is blocked by unfilled weekly rows.
Twin Question Generation now works with free-response and shared-stimulus questions. Besides single multiple-choice questions, shared-stimulus multiple-choice sets, single free-response and multi-part free-response questions are read from the PDF with their figures. The question types to produce are picked at the start, and a separate answer key or scoring PDF can be added. Every twin is planned and written, then checked by a model that solves it without seeing the key; when the source has no scoring guide, the rubric is written from scratch. Each step's model can be picked separately. The preview shows groups as editable cards, and a question can be regenerated by redrawing only its figures, rewriting it from the same plan or planning it anew. Items dropped while reading are listed with their reason in a separate panel.
Content videos play from the streamable copy prepared after the upload, so a video starts before it has fully downloaded. Deleting a video content removes both copies.
The program (AP, SAT…) crumb in the revision note reader now opens the curriculum page instead of a "not found" error, and the program crumb is back on the hub pages.
The result modal's subject breakdown follows the curriculum: broader levels such as program, course and unit come first, then the lower levels and topics. Items under the same parent stay together, in their parent's order.
Picking a sub-topic as an expertise in tutor onboarding and the tutor profile no longer selects its parents as well; only the picked topics are saved.
Every onboarding flow requires a name and surname. The student's name step can no longer be skipped, and the student, guardian, guardian-created student and tutor forms ask for both.
Coordinators are listed under the admins tab of the users list; before, they showed under no tab at all. Coordinators no longer get the onboarding wizard that made them pick student or guardian and granted them the guardian role.
Admins outside the root organization see the root organization's published revision notes and learning rooms in the lists, as they already did for assessments and contents. These shared rows open in preview; editing stays limited to their own organization's rows.
The saksiTutor role opens shared learning rooms and revision notes in preview only. Lists open the editor only for rows they can edit and a read-only preview (the room player or a new note preview page) for the rest, and the create and delete buttons follow the permissions. saksiTutors can preview their organization's draft rooms and notes, and drafts no longer show to students or other organizations.
Coordinators can read a lesson's tutor reports and student feedback.
Subscription-end notification details show which package ended.
Quizzes, exams and practice moved onto one shared solve screen; tutors can give PDF homework, revision notes and learning rooms as assignments; the Agents panel gained Publishing Note, which turns a publisher's book into a note as it is; list filters, search and page are kept in the URL; students and tutors can edit their session feedback and reports; staff can keep several admin notes per user and see a 12-month tutor payout forecast; notifications were trimmed; and the enterprise page for publishers is live.
Students can add a drawing to an open-ended answer. The drawing is attached to the answer as an image and can be opened and edited again later.
Quizzes, exams and practice share one solve screen. It opens as a centred card; the question grid, chat and assignment items sit in a side panel that closes into floating buttons without the card changing height. The exit button is labelled and the answer toolbar is new. On the last question Next turns into the finish button, and the results dialog offers the next module, or else the assignment's next item. Leaving an exam opened from an assignment goes back to the assignment page, and moving to another exam or module no longer leaves a history step behind, so exit stops landing on a PDF or the previous module.
PDF homework can be assigned. The tutor attaches PDFs, the student submits PDFs or images as one answer and the item completes. The tutor can mark the answer with a private "reviewed" flag, comment on it or return it to the student, and the student can withdraw it, both only until the deadline. The assignment list has a pending-review badge and an "Awaiting Review" filter, analytics has a review dialog and guardians see the status. Answer files open only for the student and the organization's staff and tutors.
Revision notes and learning rooms can be assigned as homework. A note counts as done once read and a room once finished. The assignment opens only that published note or room, even outside the student's curriculum reach. Analytics and guardians see the progress, room answers open in the analytics dialog and note reading time is recorded. Notes and rooms link back to the assignment, and the tutor can switch off AI help for a room.
Publishing Note arrived in the Agents panel. A run is started from a book in the library or an uploaded PDF for a curriculum topic; the agent turns the book's own text, images, tables and formulas into a note without rewriting them, extracts the questions and verifies that the result matches the book. The note and questions are picked in a preview and imported; importing activities is not available yet, so the preview hides the activities tab.
The student dashboard suggests the student's own courses. Exam recommendations and in-progress exam cards are replaced by up to four course posters: recently studied first, then the other subjects. With fewer than four courses a packages tile follows the last one, hidden when the organization has payments switched off. The welcome banner is hidden on phones.
Practice opened from the curriculum hub lists only that topic and its sub-topics in the topic picker, with the topic already selected at every difficulty and expanded.
Learning outcomes on the question form now render their math instead of showing the raw tags.
Students can edit their session feedback and tutors their session reports afterwards. An Edit button on the session detail opens the same form, and an edit sends no notification.
A student removed from a class is also taken out of the class's upcoming group lessons; finished lessons and ones they joined stay. A past lesson they took part in no longer breaks the student's session list.
The attendance line on the session detail shows on sessions of any status, so staff can see how long a student waited in an expired session the tutor never joined.
The My Students page has a group matches tab listing the students of group matches with their class, subject and status; search and filters work and rows open the class detail.
The new-match form has a 1-1 / group switch next to its title. After saving, the list opens on the new match's tab with filters cleared, so the new match shows at the top.
An oversized hourly tutor rate on the match forms shows a clear validation error instead of an unknown error.
The tutor earnings page has a payout forecast for the next 12 months. Confirmed totals come from the month's booked and completed sessions; estimated totals assume the remaining student credits are used at 90 minutes a week per match, and credits without a match count at the organization's average hourly rate. Admins and organization admins see it while tutor earnings are visible to the organization.
Expired packages no longer show as active in the profile; they carry an expired badge in the student profile and the admin student dialog.
Assigning a package to a user no longer accepts a past end date, and the date picker starts from tomorrow. An expired subscription stays editable as long as its end date is not changed.
Staff can keep several admin notes per user. The notes are listed newest first in the student, tutor and guardian dialogs, and admins, organization admins and coordinators of the user's organization can add, edit and delete them.
The delete button on the class list works. A class is deleted after a confirmation dialog, and removing the last row of a page steps back to the previous page.
Organization admins can edit the profiles of users in their organization; they could only edit their own before. Admin and organization admin profiles stay out of reach.
Completed and expired assignment notifications take staff to the analytics page, where the student progress is, instead of the edit page.
Unneeded notifications were removed: a match ending, a tutor removed from a class, a student joining or leaving a class and a completed assessment no longer notify. Coordinators are notified when a live session is completed or not held, and they see contact details in notification details.
List filters, search and page are kept in the URL. On twenty list pages Back and refresh bring back the filters, tab and page, and so does returning from an editor with the back arrow or save/cancel. Assignments filter by title, my contents and interactive contents by the user's own progress, and live sessions have a search.
The enterprise page for publishers is live. It walks through turning a book into interactive content with a before/after comparison, steps, products, an editor demo and a school walkthrough, with swipeable rows on phones. It is linked from the Enterprise menu and the sitemap, with the demo form above the FAQ.
Saksı AI gained a revision note generator, revision notes, learning rooms and a curriculum hub; matching, categorize, ordering, drawing and flashcard deck activity questions arrived and answer keys are only shown to authorized viewers; quizzes and exams let an activity answer be edited until the attempt ends; lesson recording can be switched per match and group lesson recordings stay available to students for one week; the payment screens, the lesson request module and tutor earnings visibility can be switched per organization; and curriculum topics carry cover images and organization-specific names.
The revision note generator is here. A run is started for a topic from the Agents panel; the generator reads the source documents, scopes the topic, lays out a blueprint, composes the note, reviews and repairs it and exports the result. The screen follows the run step by step, a stalled run recovers on its own, and a finished note is imported as a revision note in one click. The Agents panel is now open to the admins of every organization.
Revision notes can be published. A note is written and published in the editor, read by the student in the reader with per-user progress, and finished with recap sets. Reading completion is only marked once the save succeeds, and a failed save shows an inline error with a Retry button. Tutors can save notes on the topic paths they are competent in, and save and recap errors now appear in the user's language.
Learning rooms are here. A room is built from a revision note; it narrates the note, asks practice sets along the way, offers a chat area and tracks the student's progress. The step inspector derives the answer key from the question itself. The editor says out in the open when the source note changed after the copy; Publish is disabled for roles without the permission with the reason in a tooltip, and publish errors are in the user's language. Draft rooms are only open to their author; a student entering an unpublished room is sent out with a notice. A practice question can be answered again on a later run, room drawings are graded, answers survive a reload, and drawing feedback stays visible after grading.
Five activity question types arrived: matching, categorize, ordering, drawing and flashcard deck. Activities can earn partial credit, and fractional scores carry through answers, assessments and reports. The question list filters by question family, and the filter and pagination stay in step with sidebar and browser history navigation. Ordering validation errors show under the affected item, and the drawing background picker matches the upload area of the content and solution forms. Difficulty picks in the topic selector no longer reset when the form re-renders.
The curriculum hub and topic covers are here. The curriculum page lists the courses a student can reach as cards with cover art and recently studied topics as wide cards; sub-topics are listed as rows without banners or level labels. Topics take a landscape and a portrait cover image, and an organization can override a topic's name, order and covers for itself. Sibling topics now have unique short names.
Inline images in interactive PDFs open for students; only the uploader could see them before. Only SaksiAI and the root organization see publication management, interactive PDFs and blog management; elsewhere the links are hidden and the routes redirect to the organization home.
Answer keys are only shown to authorized viewers. Question answers and whether a choice is correct now only reach roles allowed to read the key; they never travel to the student side. Difficulty can be left empty for activity questions and imported questions without a rating.
Quizzes and exams let an activity answer be edited until the attempt ends. One shot is now a consequence of feedback: practice, learning rooms and content reveal the key at once, so there the answer stays final; a quiz or exam reveals nothing until the attempt is completed, so until then the arrangement is re-saved and re-graded like a chosen option. Ordering answers can be left half done and returned to, an untouched or cleared activity counts as empty rather than scoring zero, and saved ordering answers reappear after navigation and reload. Drawing and flashcard deck stay one shot everywhere.
Assessment rows were simplified. The difficulty badge, question count and the started/completed/time/score line are gone; the mock exam duration stays. Start, continue, view results and retake now sit in a column beside the title.
Lesson recording can be switched per match. The student and class match forms carry a recording switch; the setting is copied onto each session at booking and Zoom auto-recording follows it. Staff set a per-tutor default on the tutor profile, which seeds new matches and match-less intro sessions.
Group lesson recordings close for students and guardians one week after the lesson ended; the session tutor and oversight staff keep access.
The payment screens can be switched off per organization. While off, the organization's own staff do not see packages, installment rates, payments, subscriptions or the student credit ledger; the sidebar links are hidden and the routes redirect to the organization home. Platform admins are never affected.
The lesson request module can be switched off per organization. While off, the organization's students, guardians and staff no longer see lesson requests, the lists come back empty and no new request is accepted, the landing-page form included. The sidebar entries, the in-app request button and the related routes are hidden.
Tutor earnings can be hidden from organization staff. While off, organization admins and coordinators lose the tutor earnings screen, the earning card on the live session detail and the hourly tutor rate on matches and sessions. Platform admins and the tutors themselves are unaffected.
A denied media request no longer takes the server down. A single unauthorized image request could previously stop the whole server; it is now answered with a status code only.
Other organizations' sites no longer carry the Saksı AI tab title, meta description and favicon; the organization name is the default tab title. The True/False labels and the revision note editor strings are translated, and tables inside notes render the same way in previews, the reader and rooms.
Combined questions can nest the way AP free-response questions do (1 → a → i); promo codes gained a management page and their rules are now enforced on the server; a tutor’s date-specific hours are added on top of the weekly ones instead of replacing them; restarted Zoom meetings no longer lose lesson time; the PDF question import works again; the student step of guardian onboarding can be skipped and a refused link request says why; and two enterprise pages for schools, International Exams and MEB K12, are live.
Combined questions can nest. A combined question now reads 1 → a → i the way AP free-response questions do: between the passage and the questions there can be further shared text that only the questions under it refer to. Shared text is a branch and a question is always a leaf; an intermediate level never gets an answer of its own. The editor offers "Single question / Combined question" wherever one still fits, edits shared text inline and drags siblings of either kind; the student view renders the shared text rows. AI help and the video-solution context send the group in reading order, each question saying which shared text it sits under. The AI generation review reports "N units ≈ M questions".
Importing questions from a PDF works again. A new release of the PDF library started printing a warning line ahead of the page count, and the step that reads the count took the warning for the number, so every import failed with "could not read page count". The library version is now pinned and the count is read from the last line of the output only.
Promo codes gained a management page. Admins, organization admins and coordinators can search their own organization’s codes, filter by status, and create, edit and delete them; when a save is refused, the reason shows inside the dialog. Codes are now scoped to an organization, so a coordinator can no longer discount another organization’s packages. The rules are enforced on the server: an expired, not-yet-started or exhausted code is refused whichever way it arrives, and the checkout form says why a code was rejected instead of showing a generic message. The end date is stored at the close of the chosen day, so a campaign lasts through the date picked and single-day campaigns can be saved. A use is only consumed once the purchase actually exists, and the payment record now carries the code used and the discount amount.
A tutor’s date-specific hours are added on top of the weekly ones. A single time range entered for a date used to wipe every weekly rule for that day: a tutor with weekly 20:00-22:30 plus a date-specific 17:40-19:30 was only bookable in the second window. The two sources are now combined and only explicit unavailable entries are subtracted; touching and overlapping ranges merge, so a lesson straddling the seam between the two windows is still offered. The month calendar on the availability page applies the same rule, the date dialog no longer prefills the weekly hours, and the copy says the hours are added on top of the weekly ones.
Restarted Zoom meetings no longer lose lesson time. Zoom opens a new record each time a meeting is (re)started and keeps the participant report per record; the session only read the first one, so a tutor who left and rejoined had the real lesson time of the second run dropped. Attendance is now reconciled across every record of the meeting, and finalization waits until Zoom has reported all of them.
The student step of guardian onboarding can be skipped. The step had no visible way out; it now opens with an explicit choice between connecting now and skipping, and the link options only appear once the guardian chooses to connect. When a student link request is refused, the guardian is told which case it is, a request already pending, a student already linked or a request previously rejected, instead of an untranslated internal string. The onboarding cards stack on phones and the My Students page no longer clips its content below the fold.
The plans link in the top bar is hidden from instructors.
The AP programme page for schools is live at /tr/kurumsal/testprep and /en/enterprise/testprep. It opens with a stage that plays a revision note, a question or activity and a drawing task for each of four AP subjects (chemistry, biology, macroeconomics and calculus), all taken from real learning rooms, and goes on to the four programme parts, the 2025-26 AP results, the student, teacher, coordinator and parent screens, the AP courses, consultancy coverage, a request form, the latest Eğitim Rehberi posts and an FAQ. The request form creates a lesson request with the "Enterprise" service type; the lesson request list and edit form recognise it and keep the curriculum fields.
The MEB K12 page for schools and tutoring centres is live at /tr/kurumsal/okullar and /en/enterprise/okullar. It opens with a stage that scans an 11th grade maths, a 9th grade chemistry and an 8th grade book in turn, drawing two revision notes and a topic test from each, and goes on to four programme bands, the automation flow, a teacher’s week, stakeholder screens, setup steps, a request form and an FAQ. "Kurumsal" in the top bar is now a dropdown to International Exams and MEB K12 on desktop and mobile. The enterprise request forms were slimmed down: the schools form asks for name, institution, e-mail, phone and message only, and role, city, estimated student count and course group were dropped from the AP form.
Live sessions open for joining five minutes before their scheduled start and instructors can now open group sessions for their own classes; tutor earnings can be read per tutor, the package and feature management lists search and filter on the server, the users page can be narrowed by course management package and tutor match and sorted by remaining credit, the blog management search no longer reloads the page on every keystroke, blog images are centred in both the article and the editor, and the "All" tab was dropped from the group lesson category tabs on the pricing page.
A session can be joined five minutes before its scheduled start. The preparation window is there to sort out connection, microphone and camera before the lesson begins: the session detail counts down to the moment the join button opens, and once the window is on it says the meeting is open and when the lesson itself starts. Only the door moves early — the lesson keeps its calendar time, its billed duration, its credit reservation and its tutor earning.
Instructors can create group sessions for their own class matches. The class-session gate turned instructors away before the create permission ever ran, so a tutor could not book a session even for their own class. Instructor roles now pass that gate and the ownership check is left to the create permission, which still denies another tutor’s match; the session selector shows instructors the class tab, scoped to their own matches.
The tutor earnings list can also be read per tutor. A switch next to the filters flips between a "By Tutor" view, which folds every match of a tutor into a single row over the same filters, and the existing match view. Opening a tutor row lists every lesson that tutor earned with a student/class column, and offers a shortcut into that tutor’s matches.
The package and feature management lists gained search and filters. Packages can be searched by name, title or ID and narrowed by exam type, package type and category; features can be searched by name, description or ID and narrowed by type. Search and filtering run on the server, so the result count and the paging follow them. The package list is also ordered by the display order set on the package form, so the admin panel and the pricing page agree on the order.
Credit granted by an admin is labelled as a manual grant instead of a purchase in the credit ledger. An admin-assigned package adds credit through the same movement type a sale does, so the ledger reported a purchase for minutes nobody paid for.
The "All" tab is gone from the group lesson category tabs on the pricing page. The tabs now open on the first subject category and each tab lists only the packages of its own subject; when the exam type or the sub-tab changes, the selection moves to the first category present in the new list. The tabs only appear when there is more than one category, so a group package carrying no category still shows where the tabs are hidden, but not while they are on.
The students tab on the users page gained two more filters and sorting by remaining credit. Next to the existing credit filter, toggles narrow the list to students with an active course management package and to students with a tutor match, and the "Remaining Credit" header became a three-state sort control. Both the filters and the sort run on the server, so the total count and the paging follow them.
Typing in the blog management search no longer looks like the page is reloading. Every keystroke opened its own request, and the request armed the full-screen loading overlay. The search now sends one request once typing settles, a slow broad search no longer overwrites a faster narrow one, changing the search returns to the first page, and existing results stay on screen between requests, only dimmed.
A new category name in the blog tag selector can contain spaces. The field sits inside a popover whose trigger read every typed space as "toggle me" and swallowed it, so a multi-word category could not be typed at all.
Images inside a blog post are centred in both the published article and the editor. An image with no alignment of its own used to sit flush left; an alignment the author picks on purpose still wins.
The website gained a mentorship page and per-course AP, IB and SAT detail pages; the pricing page moved to a list and detail layout with hand-ordered packages, invoice and payment e-mails now also reach the student’s guardians, the booking confirmation lists every lesson with its date and length, the users page can be filtered to students holding lesson credit, and the guardian onboarding forms now explain their errors.
The website gained a Mentorship page and per-course AP, IB and SAT detail pages. The mentorship page walks through the programme’s modules, profile building and the mentors; the request form has a mentorship mode with grade options and files the request as a mentorship lead. The consultancy and mentorship links are grouped under one dropdown in the top bar. The AP, IB and SAT course cards now link to a detail page per course; IB History was added, and Mathematics AA, Mathematics AI and ESS were dropped from the IB grid. The course pages show parent testimonials, and the achievements page gained stats, admissions and exam result blocks with a photo per university.
Editing a blog post now stamps its updated date.
The booking confirmation lists exactly what is about to be booked. Alongside the lesson count and the total duration, the dialog shows every selected lesson grouped by day with its date, weekday, time range and length, so a lesson landing on the wrong day is caught before booking. For staff and guardians booking on a student’s behalf, the credit warning now says whose credit is spent.
The students tab on the users page can be narrowed to students holding lesson credit. A toggle next to the curriculum filter keeps only students with an active credit that still has minutes left; the filter runs on the server, so the total count and the paging follow it.
The order packages appear in on the pricing page can be set from the admin panel. The package form gained an order field; a lower number comes first, and the order is only compared with packages sharing the same exam type and tab, so SAT packages never compete with IB ones, nor one-to-one lessons with group lessons. The form previews where the number places the package within its group as it is typed.
Invoice and payment e-mails reach the student’s approved guardians as well as the student. Students registered by a guardian have no mailbox of their own and carry an undeliverable placeholder address, on which the invoice mail failed and marked the invoice as failed. Placeholder addresses are now dropped from the recipient list and the document reaches the guardian. On the Paraşüt side individual buyers are no longer matched by identity number, so a record sharing that number can no longer pull the invoice onto the wrong contact; the buyer’s name, address and phone are refreshed on every sale, so someone who has moved is not invoiced at their old address. A rejected access token is renewed instead of failing every call.
The pricing page moved from a fixed-height card grid to a package list on the left with the selected package’s detail on the right. The cards shared a single height, so packages with long content overflowed while short ones left large gaps. The list now stays compact and the selected package is shown in full.
The summary and table totals on the tutor earnings page are labelled as gross earnings.
A deleted account no longer empties the notification list. Deleting a user is a soft delete, so their recipient row outlived the account, and a row that resolves to no user brought the organization’s whole notification list down with it. Deleted accounts are now dropped from the recipient list.
The detailed report of an assessment that tracks no points leaves the score card out. A completed attempt on an assessment whose questions carry no points stored a score of 0, and the report showed a meaningless "Total Score 0" next to a healthy accuracy. When the points configured on the questions total zero the card is omitted and the summary spreads into the freed space.
The link-student and new-student steps of guardian onboarding show the error instead of disabling the submit button. A short username or password used to grey the button out silently; the field now explains itself on submit. The link step also gained the e-mail format check it never had.
Live sessions can be booked into a slot that has already started, called off while under way and held for review when the student never showed; website requests are pushed to Zoho CRM, blog posts can carry links, the billing form explains its errors, and the app pages lay out properly on phones and tablets.
A slot that has already started can be booked for another 15 minutes. A last-minute lesson agreed at 09:03 could not be opened for the 09:00 slot, since the picker dropped every hour whose start had passed. The slot now stays bookable for 15 minutes after it starts, keeping its nominal range (09:00-10:30) and its full credit reservation, and the same rule applies to reschedules. The Zoom meeting for an imminent lesson is created on the spot, so the first join link no longer comes up empty. A started slot is badged in the picker, and a range whose end has already passed cannot be booked at all.
A lesson that is already under way can be called off. A lesson entered as 60 minutes instead of 90 is usually noticed only after it starts, and from that moment there was no way out: an ongoing session accepted no change request, and the only remaining action was completing it at the wrong duration and billing the student. Privileged staff and the session’s own tutor can now cancel an ongoing lesson with a reason; the student’s reserved credit is released, no tutor earning is written, the live Zoom meeting is ended and the attendance record is closed cleanly. The lesson can be re-created with the right duration in the same slot. A tutor’s own cancel and reschedule requests are approved without the 12-hour approval window, but both now require a reason; students and guardians keep the window and the late-cancellation penalty. A cancellation notice can also reach the organization’s decision makers on request.
One-to-one lessons the tutor attended alone are held for coordinator review. Finalization looked only at whether the tutor showed up, so a tutor who stepped into the room and left closed the lesson as completed: the student lost their credit and the tutor earned a full payout for a lesson nobody taught. A one-to-one lesson the tutor attended with no student present now lands in a "Student No-Show" status, and the reservation and the earning wait until a person decides. Admins, organization admins and coordinators either complete it, which settles the credit as usual, or mark it as not held, which releases the credit. The organization’s decision makers are notified when a lesson enters the queue, and it shows with a red alert icon in the list and calendar and an orange status badge on the detail page. Group lessons are exempt.
Tutors can upload images (JPG, PNG, WEBP) alongside PDFs as lesson material.
Reschedule requests now show the schedule they replace. Approving a reschedule overwrote the session in place, so the old slot was gone the moment the request was decided and the history could only show the proposed side. The session’s current schedule is captured when a request is opened, and for admins, organization admins and coordinators the request banner and the request history on the session page render old and new side by side, with the requester’s role spelled out. The history runs newest first, and labels that fell back to Turkish in the English UI were fixed.
A closed join link says why it is closed. Instead of one generic refusal, the too-early, ended, cancelled, completed and not-held cases each show their own message naming the lesson schedule.
A mismatch in the credit ledger no longer strands a session. A session whose reservation did not match its duration could not be finalized at all: the credit consume failed, the transaction rolled back, the session stayed ongoing, and the worker retrying every minute swallowed the error, so no alert was raised and no tutor earning was written; manual completion hit the same guard. Finalization now settles what the credit actually holds and completes the session regardless, and the unapplied minutes are reported to operations instead of being taken out of the student’s balance. Sessions that cannot be finalized now raise an alert.
Blog posts can carry hyperlinks. The editor toolbar gained a link button; links default to nofollow, which can be dropped from the dialog for links back into the site. An address entered without a protocol, like "example.com", no longer resolves relative to the current page. The reading page and the editor now share one typography, where a link used to be indistinguishable from body text.
Lesson requests from the website are pushed to Zoho CRM as leads. The push runs from a background queue, the form’s answers are mapped onto their own CRM fields rather than one description blob, and the picked countries always arrive in Turkish. When the CRM credentials are missing the push is skipped and the request is still stored.
The country picker on consultancy requests was fixed and now takes several countries. The country was stored as the label the visitor’s page had rendered and read back as a translation key, so every request that picked Other and every request from the English site showed a raw key on the lesson requests screen. Countries are stored as codes now and translated at render time, and the existing rows were converted back from both languages’ labels. The contact page, the consultancy page, the in-app dialog and the admin edit screen share one country list, where four private copies had drifted apart.
The pay button says why the billing form blocks payment. The button stayed disabled until the form was valid, and the field errors were only rendered on submit, so buyers were left with a dead button and no hint about the bad field. The button is clickable now: submitting renders the errors, scrolls to the first one and blocks the charge, and the profile billing tab behaves the same way. Any 11-digit identity number is accepted: the TCKN checksum is no longer required, which also removed a bug that rejected genuinely valid numbers; the VKN checksum stays. A billing profile that loads after the buyer started typing no longer overwrites what they entered.
Adding a subscription to a student who already has one names the package and the status of the existing subscription instead of failing with an unknown error, and suggests editing that subscription.
The x axis of the metrics chart labels the previous period’s dates as well. Each tick carries the selected period’s bucket on top and the previous period’s bucket in parentheses below it, so the dashed reference line names the days it covers, and the tooltip repeats both.
Sign out always signs out. When the session was already gone server-side (an expired token, a sign-out elsewhere) or the request was dropped, the click did nothing beyond a misleading "please sign in" toast. The teardown and the redirect no longer depend on the server’s answer.
The app pages lay out properly on phones and tablets. The student and guardian dashboards carried a fixed-width side column, which squeezed the main column to a few pixels on a phone and turned every card into a sliver; on a tablet the same squeeze came back once the sidebar appeared, with a session card measuring 40 pixels. The installment options on the checkout page pushed the page sideways, and the card number field could not fit a full 19-digit number. The dashboards now measure their own box rather than the viewport, the checkout stacks on a phone, and the top bar on the notifications page no longer runs off-screen below 1280 pixels. Desktop rendering is unchanged.
Switching the language no longer leaves the sidebar on the old one; it used to take a second toggle before the menu followed.
Twin question generation picks the subject profile from the curriculum path. A path like "AP > Biology > Chemistry of Life" was searched as one flat string, so the word "chemistry" in the unit sent an AP Biology run down the chemistry profile: the biology-specific transformation rules never ran and the twins read like rewordings of the originals. The path is now walked from root to leaf, the course above the unit decides, and the glossary is picked along the same path.
AI now detects the questions in an interactive PDF, the back office gained a twin-question generation agent, a credit ledger and a metrics page, fixes landed across exam timing, availability and the payment listings, and the app pages got markedly faster.
Questions in the interactive PDF editor are now detected by AI. The "Generate with AI" step on the toolbar takes a page range, the elements to place on the page and the difficulty, pool and topic defaults for the questions it will create; the editor stays read-only while the scan runs. What comes back is a draft: nothing is written to the question bank, every question is framed where it was read, and a preview button in its corner shows the text, the choices and the answer that would be saved. The report lists every detected question next to the answer it carries, and for books that do not print their answers on the page, the answer key is applied to the draft. Approving saves only the questions whose answer is known; the rest stay in the draft until an answer is supplied. Discarding a draft only ever discards what was never saved — nothing an approval wrote is undone — and the same question is never created twice across runs.
Paging and totals were fixed on the course, unit and lesson listings. The organization’s own content, the user’s subscription and the content granted through a package were each fetched separately and merged, so a page of ten could return thirty rows, page two was not the second page of the union, and the page count came out wrong. It hit exactly the roles that reach more than one source — organization admins, coordinators and tutors. A subscription dated in the future also hid only the course while leaving its units, lessons and items visible; the rule now applies to all of them.
The back office gained an "Agents" panel, with twin question generation as its first agent. You upload a question bank PDF (optionally with a page range) and pick the curriculum node the questions will hang from along with the generation and review models; the AI extracts the questions, writes copyright-safe twins of them, has a separate model review what it produced and repairs once whatever falls below the quality bar. The run executes on the server, so closing the tab does not affect it, and the panel follows it stage by stage. Generated questions are reviewed as preview cards — text, choices, difficulty and curriculum topic are all editable per question — and reach the question bank only once you approve them. A printable PDF can be produced as well.
Twin generation runs became reliable. Three runs can execute at once — a second run used to wait for the first to finish, which read as the panel being stuck — a run that goes silent is failed automatically so the panel offers Retry, and the same job handled twice can no longer overwrite a run that had already finished. Generation now uses the subject’s own glossary, so the terms a question tests are preserved verbatim while the choices and their order genuinely change. A single character the typesetter could not set no longer costs a whole run its PDF either.
Group lesson packages are grouped by subject. Package management takes a category per package (Sciences, Math & Computer Science, Social Sciences & History, Language & Literature, Arts, Engineering, Business & Economics, Other), and the pricing page shows a row of tabs for them under the group lessons tab. The row appears only when more than one category is present, and a leading "All" tab is selected by default, so uncategorised packages stay reachable.
A "Credit Ledger" page was added to the management menu. Every movement on student credits and the current balances are listed in two tabs, with search, filtering and paging all resolved on the server, and a balance row hands over to the ledger filtered to that credit. A movement opens in a right-hand sheet headlined by its minute delta, and shows the package that granted the minutes, the feature it came from, what was paid for that package and the payment behind it with its date, status and total. A credit granted by hand says so instead, since it has no payment record.
The tutor earnings list is aggregated on the server. The page used to pull every matching entry in 500-row requests and then group, filter, paginate and total them in the browser, with the name search and the subject filter applying only to what it had fetched. The list now renders one page from a single request, and the totals and the export are computed over the whole filtered range. Cancelled entries stay out of every earnings figure and a row with nothing left to pay is dropped rather than shown at zero — filtering by the cancelled status brings those rows back.
The payments and subscriptions management listings are scoped to the caller’s organization. The organization filter never reached the server, so the queries ran unscoped: an organization admin’s page usually failed to open, and when it did open, the counters above the list were counted over every organization. Platform administrators keep their cross-organization access.
Deleting an account now cancels its subscriptions. The subscription stayed active after the account was deleted, so the nightly renewal kept charging a card nobody can pay, then failed while addressing the cancellation e-mail to a user it could no longer find, and the same rows failed again the next night. The subscriptions the account pays for on someone else’s behalf — a guardian paying for a student, say — are cancelled with it, and the payment history is kept intact.
A "Metrics" page was added to the management menu. Six cards cover new users, active users, completed assessments, answered questions, payments with their revenue, and completed live sessions; each shows the value for the selected range, the change against the previous period of the same length, and a sparkline. Selecting a card drives the chart below it, which overlays the previous period as a dashed ghost line. Buckets follow the range — daily, weekly or 30-day — and every total is the sum of the buckets it is drawn from.
Elapsed exam time is recorded from the wall clock. It used to be tracked by a counter bumped a fixed amount per tick, and a background tab is throttled to about once a minute, so a student who switched away came back with part of the elapsed time never recorded. The timer on screen and the value stored now read the same clock, the time is written when the page is hidden or closed, and a checkpoint still in flight when the student finishes can no longer put the attempt back to "in progress".
The dialog that waits while open-ended answers are graded was fixed. A single failed request was read as "grading finished", so an attempt could be completed over answers that were never scored; a check that could not be made is now treated as unknown and polling continues. There is also a way out of a dialog that cannot be dismissed: if grading drags on, it offers to go to the results. Polling stops while the tab is hidden and checks immediately on return, and on the interactive PDF side a badge no longer stays stuck on "grading" after an error.
A student added to a class later is added to the class’s upcoming group sessions too. Participants were snapshotted from the class roster when the session was booked, so a student who joined afterwards had no participant row and was rejected at the join link. The missing rows are now filled in for the unfinished sessions of the class’s active tutor matches, and the join link is e-mailed and notified to the newly added student only. Joining by invitation code goes through the same path.
The comboboxes on the intro session form no longer show untranslated empty states, and their options load faster.
Date-specific availability is saved in one go. Editing a day dropped its existing slots first, which put the day back on its weekly hours for an instant, so an edit whose final state covered every booked session perfectly well could still be rejected: a tutor with an 11:00-14:30 override hosting an 11:00-12:30 session could not add 18:00-23:00 to that same day. Saving is now a single request in a single transaction, the coverage check runs against the resulting hours, and a rejected edit leaves the stored hours untouched. A failed save keeps the dialog open so the entered hours can be corrected.
The app pages got markedly faster. The sidebar read the current roles through a query of its own, which made a page rebuild itself two or three times per load and re-run every component and every query with it; roles are now read from what the session already carries. Translation files are shared with the request already in flight, and the translation watchers that piled up across client-side navigation are gone. The payments, subscriptions and earnings lists arrive in one query instead of an extra request per row, an exam checkpoint costs two requests a minute per student instead of six, and the grading-status poll reads a single marker rather than the whole queue. Requests per full page load went, for example, from 29 to 6 on the questions page, 18 to 6 on contents and 24 to 9 on users.
Fixed a fault that made screens asking for a user profile fail. The profile field could not be resolved on the server at all: it came back empty with an error recorded alongside it, and since the client rejects any response carrying an error, that surfaced as the page not opening rather than as a missing field.
Question import from PDFs and images, an AI chat for video solutions and a bilingual blog shipped, along with fixes across live session times, invoicing and permissions.
Questions can now be imported from PDFs and images. The "Import from PDF/Image" step on the questions list and in the assessment question picker takes a single PDF (with an optional page range) or a set of page images you can reorder. Questions appear as preview cards as they are parsed; you mark the correct choice and save them one by one or in bulk, skipping the ones you do not need. Difficulty, pool and curriculum can be assigned to the whole selection at once. The answer key can be pasted as text, uploaded as a file, or read from pages you mark inside the PDF. An unfinished import resumes where it left off, even if the browser was closed in between.
Tutors and administrators can review assessments and contents without starting them as a student. An eye icon on the list cards opens a preview in a new tab: questions are browsed one at a time, SAT/AP mock exams get a tab per module, and correct answers and the grading rubric for free-response questions are visible from the start. Contents open PDFs and videos without the student-side question pop-ups, the AI chat and time tracking, and drafts can be reviewed before they are published. The preview stores nothing, so attempt analytics are untouched.
Scrubbing a video no longer wedges the player. Seeking could leave the picture racing ahead of the sound, with play and pause unresponsive until the page was reloaded.
Tutors are now reminded to file their post-session reports. A persistent banner on the dashboard lists the sessions still owing one, and the same list opens in a dialog whenever the tutor returns to the app — at most once every 15 minutes — with each row linking to that session. Sessions missing a report are also marked on the live sessions page, both in the list and in the day, week and month calendar views.
Session times in the Zoom portal are shown in Türkiye time. We never sent a timezone, so the portal fell back to the host account’s own zone and could display a lesson an hour off whenever that zone observed DST; the stored time was always correct, only Zoom’s label was wrong. The live session panel is now pinned to the organization’s zone as well, and viewers in a different zone see a "TSİ" hint next to the time.
Sessions that have started stay in the "Upcoming" list. A lesson used to disappear the moment it went live — exactly when the join link was needed. An ongoing lesson now carries its own badge.
The class detail in "My Classes" now lists only that class’s sessions; every class previously showed the same list, including the student’s one-to-one lessons and the sessions of their other classes. The join button was fixed too: for Zoom sessions it landed on the login page, and it was clickable even for lessons days away.
The status dropdown and visibility switches were removed from the classroom report form for tutor roles. Reports written by these roles are published directly and visible to administrators only.
Individual and corporate billing details are now stored separately. There used to be a single record per user, so saving corporate details overwrote the individual address and phone, and an invoice could be bound to a contact opened for the previous legal person. Both profiles are kept side by side, the one used at checkout applies to the next invoice, and changing the tax number makes the provider contact resolve again.
Failed invoices are now visible on the payment detail, and administrators can retry one by hand. Invoice attempts run against a 24-hour budget instead of a fixed attempt count, back off between tries, recover automatically when a job stalls, and raise a notification when an invoice fails. A slow provider could previously burn through the attempts of a perfectly valid invoice.
The invoice e-mail was rebranded, and organizations can now clear their VAT exemption code and note — once filled in, those fields could not be emptied again.
User search in the add and edit subscription dialog moved to the server. It previously searched only within the newest 1000 users, so anyone outside that window could not be found at all, and the dialog was slow to open.
The choice between e-Invoice and e-Archive is never guessed any more. When the lookup that says whether the buyer is a registered e-invoice taxpayer cannot answer, the document waits instead of being issued, and a billing profile with no tax number no longer starts the process at all.
Lesson credits on manually managed subscriptions are granted per feature. Credits were only issued when a subscription was first created, so a subscription that became active through an edit — or a package whose features were corrected afterwards — could never receive the missing balance. Saving the subscription now fills in whatever is missing.
Rows in the payments list fall back to the payer’s e-mail address instead of showing nothing when the profile has no name.
Video solutions now come with an AI chat. The solution dialog is split in two: the video on the left, a chat of its own for that solution on the right. The assistant sees the question, its choices and the correct answer next to the content of the video. Video solutions uploaded earlier were processed as well, so they are chat-ready too.
Passage-based questions are sent to the chat as a whole. Only the sub-question you clicked used to be forwarded, leaving the passage and the sibling sub-questions out. A question with no topics attached, which used to break the chat entirely, was fixed as well.
Instructors see and edit only the assignments they created. Every assignment in the organization was previously listed, another instructor’s assignment could be opened by URL, and a student’s assignment list showed what other instructors had given them.
An expired assignment becomes active again when its deadline is moved into the future, and the students’ assignment statuses are updated along with it.
Contents, topic quizzes and mock exams were added to the sidebar for the saksiTutor role. Create, edit and delete stay hidden on those lists — the records are reviewed through the preview.
Fixed an issue where requests handled at the same time could pick up each other’s session. In rare cases a response could be finalized with another user’s session — most likely during a live session, when both sides keep the same page open at once.
The Zoom host link is visible to oversight staff only; it was previously exposed to students and tutors as well.
Taking a package off sale no longer removes the curriculum and courses it granted to an organization. An inactive package means "no longer sold", not "grant revoked" — organization admins and staff used to see less than platform administrators in that state.
A single deeper curriculum grant no longer strips the sub-topics off every other curriculum in the organization’s tree, which used to leave the trees showing top-level headings only.
The expertise picker in tutor onboarding also lists curricula granted to the organization from a deeper level. Those used to be dropped from the list together with their whole subtree.
A tutor’s edit card on the users page failed to open when the same curriculum topic had been saved for them more than once. The duplicate records were cleaned up and new ones are prevented. Retrying an interrupted tutor onboarding no longer files a second application either.
The blog became bilingual. Every post and category takes its own English title, subtitle, meta title, meta description and content, with a separate English publish switch. URLs are per language, an address carrying the other language’s slug is permanently redirected to the canonical one, and the pages emit their own canonical and hreflang tags. A post with no live English version opens with the Turkish content. Posts now show a last-updated date, and the nav and footer link reads "Eğitim Rehberi / Education Guide".
Unpublished blog drafts were readable through the public query; drafts are now restricted to authorized users.
Blog title search in the admin panel is no longer case-sensitive.
Invoicing became configurable per organization, and a batch of live session, availability calendar and Saksı AI chat issues were resolved.
Each organization can now configure its own e-Archive/e-Invoice provider (Paraşüt). Provider details are managed from a new "Invoice Provider" page in the sidebar, with secrets stored encrypted and masked in the interface. The page is restricted to platform administrators — organization admins do not see the provider credentials.
A billing information tab was added to the profile page, so users can keep their invoice details up to date without waiting for checkout.
The billing information step is now live in the checkout flow, alongside the completed invoicing pipeline. Checkout shows the card section first and billing below it; buyers with a stored billing profile see it collapsed the way a saved card is, and only open the form when they want to enter different details.
Retrying invoice creation no longer produces duplicate documents. If the request reaches the provider but the response never gets back to us, the retry now finds the existing invoice and e-document and continues with it instead of issuing a second one.
Intro sessions keep their fixed 30-minute length when rescheduled. The reschedule screen previously also offered 60 and 90 minutes, which could turn an intro session into a full-length one.
When no Zoom account is available the session is no longer created at all. Previously the session was saved first and the Zoom account assigned afterwards, leaving a session with no meeting link behind on failure.
Failed intro session requests no longer show a misleading success message.
Tutor search moved to the server. It previously searched only within the first 1000 users; now every tutor is searchable.
Every calendar and list view on the availability screens now starts the week on Monday. They previously started on Sunday, which did not match the live session calendars.
Math expressions and markdown formatting in chat were rebuilt. Formulas no longer break up paragraphs, inline expressions no longer interrupt the flow of a sentence, and raw LaTeX no longer flashes while a response streams in.
The underlying AI model was upgraded to Gemini 3.5 Flash.
Read and unread tabs were added to the notification list for administrators.
The link in the assessment completed notification now points to the student’s own organization. It previously led to a 404 page in some cases.
Fixed an issue where the unread counter on the tabs could get stuck showing the wrong number.
The guardian profile step was simplified. The disabled-looking "Skip" button is gone in favour of a single "Save & continue" button, and missing fields are reported with an inline error instead of locking the button. Continuing without selecting a student now completes onboarding directly.
An "Editor" role was added for managing blog content. Editors can create and edit blog pages and categories, have no access to the rest of the platform, skip the onboarding wizard, and land directly on blog management when they sign in. They also get their own tab on the users page.
The curriculum options offered during onboarding are now limited to what the organization’s active packages grant, and the selection is validated on the server as well.
Tutors now see only the topics they are qualified for, plus their parent headings, in the curriculum trees. The same restriction was applied to the interactive content list.
English pages are served from English URLs — the language courses page now lives at /en/language-courses, for example. Old addresses redirect to the new ones.
Get detailed information about our programs.
Get in Touch