Write the whole thesis in one place
A thesis editor that paginates real A4 pages while you type, keeps six citation styles correct across the whole document, and searches the scholarly record instead of the open web.

IQThesis replaces the word-processor-plus-reference-manager-plus-twelve-tabs workflow of doctoral writing with one environment: real A4 pages while you type, citations that stay correct, and templates that match the brief.
We built a paginated rich-text engine with two-column article layouts, live APA/MLA/Chicago/IEEE/Vancouver/Harvard citation rendering, and one-click restyling of every citation and bibliography.
Under the hood: an AI research layer with semantic search over academic sources, reference ingestion, and export to PDF and Word that keeps formatting intact for submission.
Doctoral writing is the last serious professional task still performed across four disconnected tools. The text lives in a word processor that reflows unpredictably under a hundred pages of chapters. The sources live in a reference manager that has to be persuaded to talk to it. The reading lives in a folder of PDFs and a dozen open browser tabs. The formatting rules live in a departmental template that arrives as a Word file with instructions written in prose. Every one of those seams is a place where a thesis loses a day.
The alternative most technically-minded researchers reach for is LaTeX, which solves typesetting and citations properly and then charges for it in a language the writer has to learn while also learning their field. What almost nobody has is the combination: a document that is genuinely paginated and typeset like a submission while remaining a normal editing surface where you type words and see them appear where they will print.
The demand is regional as well as universal. In Algerian and wider MENA universities, a thesis may be written in Arabic, French or English, its bibliography drawn from all three, and its departmental template specified down to margins and heading numbering. Tools built on an English-first assumption fail at the retrieval layer before they fail at the interface: the sources simply do not come back. IQThesis was built to serve a trilingual corpus as the normal case rather than the exception.
A rich-text editor has no native concept of a page. Making text break across real A4 pages while it is being typed, complete with margins, running headers, chapter numbering and two-column article layouts, is the single hardest piece of engineering in the product, and it has to stay correct while the user edits in the middle of chapter three.
A researcher does not choose a citation style once. A paper gets rejected by an IEEE venue and resubmitted somewhere that wants APA, and every in-text citation and every bibliography entry has to change together, correctly, in one action. Anything less and the writer is back to manual reformatting, which is the exact task the product exists to remove.
An AI writing assistant that searches the open web returns blog posts, content farms and pages with no author, no year and no identifier. A thesis needs sources that can be cited: an authored work with a venue, a date and a persistent identifier. The retrieval layer had to be built against the scholarly record itself rather than against a search engine.
Uploaded reading is Arabic, French and English, often within the same chapter. Embedding models optimised for English retrieve badly for the other two, which produces a search box that silently returns nothing useful for a large part of the corpus. That is the worst kind of failure, because it looks like the library is empty rather than broken.
The platform was built under an earlier name that had been baked into package names, CSS class prefixes, browser storage keys and cookie names. Some of those strings are functional rather than cosmetic, so a find-and-replace rename would have broken layout selectors and signed every existing user out.
We chose to build the editor rather than assemble one. IQThesis is built on a TipTap and ProseMirror editing core with custom extensions for the things academic writing actually needs (pagination, citation rendering, footnotes, cross-references, math), because every one of those is a document-model concern rather than a plugin you install. The bet was that the pagination engine would be the most expensive component in the product and also the reason anyone chooses it, and that turned out to be exactly right.
Around the editor we built a research layer with a deliberate boundary: retrieval is grounded in citable scholarly records and in the user's own uploaded library, and generation is a separate, observable process the writer can watch and interrupt. We treat the AI as a research assistant that must show its sources, not as an oracle that produces finished prose, which is also why the one AI feature we built and could not make trustworthy never shipped.
We prototyped the page-breaking model before anything else, because the rest of the product depends on whether a real A4 page can be rendered live. We settled on decorating the document with page geometry rather than restructuring it into page nodes, and validated it against long documents with headings, columns and footnotes.
We built sixteen template configurations across four document types (theses, journal articles, conference papers and reports) and wired six citation styles through a standard citation-style engine so that switching the style restyles every in-text citation and the whole bibliography at once.
We built the AI side as separate engines with different execution models: synchronous ones for single-shot text operations, and an asynchronous research writer that plans, searches the scholarly index, judges sources, produces an outline, writes section by section and assembles the result while streaming its progress as events the interface can render.
We added a private source library on dedicated infrastructure: upload a PDF, it is chunked, embedded locally with a multilingual model and made searchable through hybrid retrieval that returns the page number a passage came from. Uploads return immediately and embedding continues in the background so the writer is never blocked by a long document.
The product was renamed from its working name to IQThesis, with per-language forms locked deliberately: IQThèse in French, keeping the accent because the name is a genuine play on the French word for thesis, and the Latin brand retained in Arabic rather than transliterated into Arabic script. The code-level rename was planned as one deliberate migration rather than a search and replace.
Every decision here bought something and gave something up.
We implemented pages by measuring the flowing document and decorating it with page geometry, rather than by restructuring the content into a tree of page nodes. Structural pages would make rendering trivial and everything else hard: every edit near a boundary would have to move content between nodes, and selections, undo history, find-and-replace and collaborative editing would all have to understand pages. Keeping the document model flat means the editor stays a normal text document and pagination is a view concern. The price is that the layout logic is genuinely intricate and its CSS selectors are load-bearing, which is precisely why the rename could not touch them casually.
The research engine queries OpenAlex, an open scholarly index, rather than a general web search tool. The immediate reason was practical, in that the built-in web search sat behind a plan gate, but the better reason is that a scholarly index returns exactly the fields a citation needs: authors, year, venue and a persistent identifier. General search returns prose you then have to reverse-engineer into a reference. We evaluated the alternatives and rejected them on operational grounds: one rate-limits without a key, another usually lacks abstracts. The trade-off is coverage: grey literature, standards, legal material and very recent preprints are weaker. A source that cannot be cited is not a source.
Uploaded sources are embedded on our own infrastructure with a multilingual model rather than sent to a hosted embedding gateway. Two reasons decided it. The corpus is Arabic, French and English, and English-first models retrieve badly for two of the three, which would have made the library quietly useless for a large share of users. And student research — unpublished chapters, private reading — never leaves the server. The trade-off is throughput: embedding is CPU-bound and a long paper takes minutes in the background. We measured batching as a possible remedy and it was slower, not faster, so the honest lever is more compute rather than a clever configuration.
Short text operations run synchronously and simply return their result. The long research pipeline runs asynchronously and streams events (planning, searching, judging, outlining, writing each section) to an endpoint the interface subscribes to. Mixing the two is a common mistake and it bites both ways: adding callbacks to a synchronous operation can break its own response, and making a multi-minute research run synchronous guarantees a timeout. The trade-off is two code paths to keep alive, plus the event transport and the job state the asynchronous one needs; a single synchronous path would be far less machinery and would be unusable for anything that takes minutes. We also decided that chat does not draw from the writing quota, because asking a question should not cost a user the same as writing a chapter.
Renaming the product from its working name touched package names, CSS class prefixes, browser storage keys and cookie names. The prefixes are referenced by the pagination layout, and the storage and cookie keys hold sessions, so a global find-and-replace would have broken page rendering and logged out every existing user in the same commit. We locked the naming first, including the accented French form because the wordplay only works with it and the deliberate choice to keep the Latin brand in Arabic, and scheduled the internal rename as one migration with key translation rather than as incremental cleanup. The trade-off is that the old internal name stays visible in the code until that migration runs, which is the price of not signing every user out in order to tidy a prefix.
IQThesis is in open beta and free to use during it. A researcher writes in an environment that shows real pages while they type, applies a template that matches the brief rather than a departmental Word file, cites in any of six styles and reformats the whole document to a different one when the target venue changes, and exports to PDF or Word without the layout falling apart at submission. That is the whole pitch, and it is deliberately the part that works.
Behind it sits a research layer that is unusual in being grounded rather than generative-first. Search returns citable records with identifiers. The private library indexes the writer's own PDFs in three languages and returns answers with the page they came from. The long research pipeline is watchable while it runs instead of being a progress bar hiding a black box. The product's position is that an academic AI feature that cannot show you where something came from is a liability to a thesis, not a feature.
The beta scope is stated openly on the product itself: figures, tables, equations in the full editorial sense, cross-references and collaborative editing are not there yet, and in-editor AI generation is being rolled in progressively behind the research layer. We would rather ship a pagination engine that genuinely works and a short honest list of what is missing than a long feature list that collapses at a hundred pages.
The feature we are proudest of not shipping is the AI-text detector. We built one, on a published detection method, and measured it properly, at which point it failed the only test that mattered: it did not separate. Writing by students working in a second or third language scored as more machine-like than actual machine-generated text. Shipping it would have handed universities a tool that systematically flags non-native writers, which in an Arabic and French academic market is not an edge case but the median user. It sits built and unused, and that is the correct outcome.
The open piece of work is connecting the reference library into the writing pipeline. It runs, it is fast, it returns correct page numbers, and nothing in the drafting flow calls it yet, because it is deliberately unreachable from the public network, a decision we would take again and now have to engineer around by routing requests through the application instead of exposing the service. Saying that plainly is more useful than implying the whole system is already joined up: the library is real, the plumbing is the next piece of work.
IQThesis is built for exactly that gap: LaTeX-grade pagination, templates and citation handling without writing markup. You type in a normal editing surface and see genuine A4 pages, margins and chapter structure as they will print, then export to PDF or Word. It is the right choice if you want typeset output and correct citations without also learning a typesetting language.
Yes, in one action. Citations are rendered from structured reference data through a standard citation-style engine rather than typed as text, so switching the style updates every in-text citation and rebuilds the bibliography together. That is the specific reason citations are modelled as document structure instead of formatted strings.
Yes. Search is grounded in an open scholarly index that returns authors, year, venue and a persistent identifier for each result, rather than in general web search. You can also build a private library from your own PDFs, which is indexed on our infrastructure and searched with page-level results, so a passage can be traced back to the page it came from.
The retrieval layer is explicitly multilingual: uploaded sources in Arabic, French and English are embedded with one multilingual model, so a trilingual reading list works as a single searchable library instead of returning nothing for two thirds of it. The brand itself carries the same thinking, with a distinct French form and the Latin name retained in Arabic.