7 ms·
Show HN: Revise – An AI Editor for Documents
I started building this 10 months ago, largely using agentic coding tools. I've stayed very involved in the code base and architecture, and have never moved faster in my life as a dev.
The word processor engine and rendering layer are all built from scratch - the only 3rd party library I used was the excellent Y.js for the CRDT stack.
Would love some feedback!
- deleted 7mo ago[deleted]
- tyleo 7mo agoThis looks wonderful! I do a decent amount of writing on my blog and for work so I was thinking, "why doesn't this product appeal to me?" I think I'm hesitant to spent yet another monthly subscription on something. I get decent mileage just copying and pasting sections into Claude so it's hard to justify another $8 a month on another tool. I also do a decent amount of my editing in raw markdown files and apply styling almost as a post-process. Part of the problem is that I'm always pasting documents into corporate portals (Confluence, Wiki's, Google Docs) and they don't always copy formatting in the way I'd expect. So I just write raw text and format it after paste.
- artursapek 7mo agoThanks for the feedback. The pitch with Revise is it's a fully integrated agent inside a word processor. The "copy and paste between ChatGPT and docs" is the workflow I set out to improve on a la PG's "find something people are doing and figure out a way to do it that doesn't suck." I think you'd find it's a much better user experience, especially when you're iterating a lot on something. I get that subscriptions turn some people off, and I'm open to other ideas of how to make a project like this financially sustainable. I don't want to do ads :)
- tyleo 7mo agoCan this be integrated inside of something like Google Docs or Microsoft Word? Or is that more of an aspiration at this point? The vibe I got from the landing page was that it's a standalone app.
- artursapek 7mo agoNot without having control over those products and their source code, which is why I built an alternative. From my testing, the Revise agent is more capable than Gemini+Docs and Copilot are right now.
- wellsjohnston 7mo agoWonderful product :)
- rvz 7mo agoThis would really work well for teams. Are there any limits into how many people can collaborate on Revise?
- artursapek 7mo agoNo enforced limits right now, but HN might find the performance bounds of my backend today. I am planning to add team/org accounts soon!
- bartlomein 7mo agoLooks really cool!
- lapalapa 7mo agoLooks nice, very nice. Why don't you use your local open source llm, without the interaction of big models? I mean, more work, but you don't need to pay your cut to them. Just asking.
- artursapek 7mo agoYes, an eventual goal is to let Revise use a local LLM.
- washbasin 7mo agoEr, is right click disabled on this page? Certainly seems to be in any browser I pick. If so, why?
- artursapek 7mo agoUnintended, thanks. fixed
- the__alchemist 7mo agoAnecdote from a frustrated typer. There are no good word processors. MS office and Libre/open-whatever-they-call-it-now-office are bloated mess. I did a deep dive on this a few months ago, and there are 0 light/good options. There are a few that show up in google searches, but they are all disappointing in one way or another. So, thoughts on a non-AI lightweight word processor.
- nubg 7mo agoWhat exactly would the perfect tool look like?
- the__alchemist 7mo agoPerfect isn't the goal. But something on the tier of KiCad, Blender, Zed, Sublime, etc.
- Imustaskforhelp 7mo agoSpeaking of zed, if the team at zed is reading this, then I genuinely believe with my full heart that you guys can actually solve this issue given the impressive work you have done at trying to make the editor fast. If you work towards something like google docs etc., this product feels right within your category and can work with the team features at zed to a far greater degree. Zed also natively has AI functionality so it can work for some people and the best part about Zed is that AI functionality can be toggled off too :-) This might as well be a billion dollar unsolved problem which the team at zed could use their expertise on perhaps. Although I suggest that maybe instead of bolting these functionalities into zed itself, maybe a zed-fork can be created for a more Microsoft word alternative? Has someone tried at making a zed extension which can somehow be a word editor or anything similar, perhaps it might be possible within the frameworks of zed now itself but I am not sure. I hope someone at zed team reads this and solves this problem. Zed is fantastic piece of software, thanks for making it zed team :-)
- artursapek 7mo agoRevise is that, actually. It's a free, lightweight, fast word processor at its core. It also has real-time collaboration, also free. You don't need to use the AI features. It even supports code blocks, LaTeX, and Mermaid diagrams. Also, the passive spelling/grammar checking in the editor is powered by LLMs and completely free. It will catch mistakes that other word processors won't, such as malapropisms.
- techpulse_x 7mo ago[flagged]
- tomtomistaken 7mo agoHow do you make sure the LLM catches and reports all grammar mistakes if I ask for it?
- artursapek 7mo agoI've built an agent loop that has a self-review step, and it's pretty good at catching mistakes. It's able to scan the document in chunks and use tools to surgically change small parts.
- Surac 7mo agoSubsciption and Online means not for me
- johannesrexx 7mo agoAgreed. The developer has the right to share his labors any way they want. I fully respect that. I also don't object to paying for something I find useful or valuable. But I really hate subscription-ware. But I'm a local-first privacy-focused user and only by self-hosting a tool am I comfortable using it. So for me this tool is also a no-go.
- artursapek 7mo agosounds like you be more open to it if Revise worked as a native app (Tauri) with ability to run it against your own LLM endpoint/keys this may be something I offer one day, with some kind of one-time license. I can't really make this work without a subscription right now, because it relies on servers I host and LLMs provided by 3rd parties which have metered billing.
- anvevoice 7mo ago[dead]
- Remi_Etien 7mo ago[flagged]
- arrsingh 7mo agoThis looks really nice! Congratulations on building something awesome, especially in a space that's "crowded" with the big players. I want to give kudos to two things: 1. It took you 10 months to build this. This is focused product development and craftsmanship which is very different from Vibe coding something. So let this be a reminder to all the "I can vibe code this or that in a weekend". Good products / experiences take time. 2. You've pursued building something in a space that anyone would normally dismiss right away: "Why would anyone use this? Google Docs/ Word etc already does this" or "MSFT / GOOG will destroy you". Good on you for picking something that is hard and building it well. I actually had this idea and almost built it but dismissed it myself for the same reasons as above. So reminder again for the builders in the back: Doesn't matter if there is a 800lb gorilla building this, if you can execute it better go for it. Kudos!
- artursapek 7mo agoThanks, that's nice. Yeah it's been 10 months, and 7 of them completely full time... living off savings. I think there's plenty of room for innovation with word processors now that we have LLMs and the big players are unlikely to go far outside the box.
- lewisjoe 7mo agoThis is great work. I'm curious how did you get the agentic behavior integrated into your datamodel? 1. How does the AI read your document? have you exposed a JSON/XML? 2. How is AI generating edits over the document? 3. How are big documents presented to AI? Was minimizing token consumption a goal? Fantastic work, btw!
- artursapek 7mo agoYeah, all of that was fun/tricky to figure out. I'm planning to start a little dev blog on Revise that will get into the weeds of how this stuff works - will share it on here when I get around to it. Too much to explain in a comment. Thank you though!
- 7mo ago
- patate007 7mo agoI'm building a similar project, and I may open-source it. I'm using OnlyOffice and a coding agent that modifies the files with Python libraries in a sandbox (e.g. python-pptx for PowerPoint files). Have you also considered using a solution like OnlyOffice for your product? Or a "Notion-like" lib such as Tiptap or PlateJS?
- artursapek 7mo agoI definitely looked at TipTap and ended up building off their Y.js backend, which is great: https://tiptap.dev/docs/hocuspocus/getting-started/overview https://tiptap.dev/docs/hocuspocus/getting-started/overview I wanted to build something canvas-based, so that eliminated most of these options. I also just wanted full control of that part of my stack... it's the core product after all. There are several TipTap/ProseMirror wrappers out there already. You should share yours though, would be interested to see
- artursapek 7mo agoThanks for the feedback. It seems my post got flag-bombed at some point. I can't reply to takahitoyoneda anvevoice techpulse_x or Remi_Etien. feel free to email me art@art.cx
- Imustaskforhelp 7mo agoOfftopic, but there is truly something about word.<TLD> that I really like. I have the domain use.expert and art.cx is actually a good catch of a domain. I also own mirror.forum Good 5 letter (total word + tld) are actually pretty rare/almost exhausted now so good catch :)
- takahitoyoneda 7mo ago[dead]
- siscia 7mo agoThere is a lot of positive comments in this comments section that I don't mind being a bit rough. I think we can do much better. The workflow of copy to chatgpt and getting feedback is just the first step, and honestly not that useful. What I would love to see is a tool that makes my writing and thinking clearer. Does this sentence makes sense? Does the conclusion I am reaching follows from what I am saying? Is this period useful or I am just repeating something I already said? Can I re-arrange my wording to make my point clear? Are my wording actually clear? Or am I not making sense? Can I re-arrange my essay so that it is simpler to follow?
- artursapek 7mo agoRevise can answer any of those questions! You just have to ask. You can also focus your questions by selecting a segment of your document, and then writing a prompt; the agent will see what you've selected and focus its efforts on that. You can even prompt with multiple selections attached at once. I'm hoping to add more "proactive" AI to this eventually, like automatic comments raising the critiques along the lines of these questions you enumerated. Right now the agent has to be prompted first for it to do any real thinking. Thanks for the feedback.
- jitl 7mo agoIt's cool to see a brand-new WIYSIWYG editor on the web, especially one using canvas for rendering from the start. How did you go about architecting the rendering and input layer? What are you using for text shaping and layout? Bugs I found: - <tab> when in a 3rd-level indented list loses focus - Double-click and drag gesture does not extend text selection - Selection highlight is offset for indented paragraphs. If you select a range you can see the highlight incorrectly extended into the right-hand margin. - Inconsistent repro: had some cases where select -> delete -> cmd-z would not fully restore my removed text (this could be my mistake) - Toggling list style of a single indented list item can un-indent entire list, removing hierarchy; I would expect toggling to eventually return me to my original state. - Frustration: cannot set range of indented list to ordered list without affecting all adjacent list items - Frustration: cannot resize table rows vertically - Frustration: on macOS, ctrl-a selects all, where the platform native behavior would be to move selection to the start of the current paragraph. ctrl-e should move selection to the end of the current paragraph, but does nothing. (macOS silently supports readline/emacs style keybinds for text editing)
- artursapek 7mo agohaha wow this is an awesome list of bugs. thank you. yes all of this was built from scratch, as you can see :D I will get all of these fixed regarding rendering/text layout, it’s all based on measureText in the Canvas API. the layout engine is my own. documents are made up of “blocks” like lists and paragraphs and each implements its own rendering, cursor movement, and layout logic. I am going to start a dev blog where I get into the weeds. but will fix these bugs first. if you find more like that please email me art@revise.io
- _pdp_ 7mo agoThere is a lot of positive comments in this thread so you are doing something right. You asked for feedback though. There are chat apps that basically incorporate all the features of this editor so I am not really sure who is this for. If this is for writing, in order to make it amazing I would personally focus on using models that are either built for that or fine-tuned specifically for writing. Otherwise, what is the point? Notion can do the same, perhaps more.
- artursapek 7mo agoI welcome any specific critical feedback. What chat apps are you thinking of? Notion can't quite format and export print-ready documents the same way. This is more akin to Google Docs than Notion. Revise can do proper word processor esque formatting, like page numbers, page layout, page breaks. The agent can format a paper in APA 7 with a single prompt, for example. I already have a growing user base and customer base. People use Revise for all sorts of things, from writing stories for pleasure, to processing reports for work. Notion is an amazing tool, but not focused on the same type of documents that Revise is focused on.
- deleted 7mo ago[deleted]
- highhands89 7mo agoThis is really cool, but I'm wondering how you're getting around content moderation that the models utilize, or are you not?
- artursapek 7mo agoI've definitely had the models refuse to process some content, like a lockpicking guide PDF. It happens pretty rarely, but I'm not testing with especially edgy content. The agent is model-agnostic though; I already have integrations with 3 providers. It could be extended to more free speech friendly models in the future, should there be good ones that can handle tool calls well enough.
- cadamsdotcom 7mo agoVery cool! It’d be very cool to have a “remove signs of AI writing” feature (based on https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing) - wishing you great success reinventing this space for the new era!
- artursapek 7mo agoThank you! I have considered adding some settings like this, but don't want to encourage the use of this software for cheating. For now, the catch-all solution that anyone can attempt to use is the custom prompt, under account settings. You can instruct it never to use emdash, avoid certain cliches, or simple things like that. But you have to write it yourself for now, there's no convenient presets or anything like that. If you have ideas please email me art@revise.io
- cadamsdotcom 7mo agoWhy make it your business what people use it for? We don’t do that with hammers, or guns. In the case of the latter, manufacturers outsource policing the thing’s use, and everyone understands that.
- artursapek 7mo agoMy line is I don’t want to market it as a tool that’s obviously for cheating/deception by building features for that. But beyond that, I don’t want to make it my business.
- johnwhitman 7mo ago[flagged]
- artursapek 7mo agoIt was pretty painful and frustrating, but now that it's relatively stable I'm really happy I took that path. I have full control! I think the way people approach agentic coding depends on their career experience. I had my project acquired previously at the acquiring company hired a large team to work on it. This forced me to go from being a solo dev to a technical manager who's got dozens of people working on code. I treat codex/claude the same way as that; I am leading the ship and it's doing most of the heavy lifting. It's leverage and helps you get more done if you give the right guidance, constraints, and acceptance criteria.
- Rithan 7mo ago[dead]
- SIMY_Tetsu 7mo ago[dead]
- magrin_j 7mo agoLooks really nice, congrats !
- saadn92 7mo agonice work! this isn't exactly what you're doing, but probably in the same space (docs) that I've been working on for the past year as well. would be great to collab!
- edwardsrobbie 7mo ago[flagged]
- ymolodtsov 7mo agoA bit similar to Lex, which I love using for writing, but bringing any doc over is very useful.
- artursapek 7mo agoYeah Im aware of Lex. I think it falls short in a lot of ways. If you have ideas of how Revise could improve for writing, please email me your thoughts art@revise.io
- munio 7mo ago[dead]
- microbuilderco 7mo ago[dead]
- mrsafaya 7mo ago[dead]
- thomasnowhere 7mo agoImpressive that you built the rendering layer from scratch on Canvas. Curious about one thing though, how do you handle accessibility? With contenteditable you get a lot of browser accessibility features for free (screen readers, selection, input methods). With Canvas rendering you'd need to reimplement most of that manually. I've been working on a ProseMirror-based editor and the biggest lesson was how much the browser gives you for free with contenteditable, even though it's painful to work with. IME input handling alone took weeks to get right, and that's with the browser doing most of the heavy lifting. Starting from Canvas seems like an order of magnitude harder. How's the IME/CJK input working? And does it play nice with browser spellcheck?
- artursapek 7mo agoI developed my own selection and input handling. The app focuses on a hidden input and it extracts the events when you hit keys, and handles them in my editor engine. I haven't done extensive testing but it works pretty well for foreign languages, I've even added decent support for RTL ones like Arabic. I haven't thought much about accessibility, it's not really a priority for the project right now. If the project really gets big I might revisit that. Google docs is canvas-based, so that was enough precedent for me.
- thomasnowhere 7mo agoThat makes sense, the hidden input approach is clever. Google Docs definitely proved it's viable at scale. The RTL support is a nice touch, that's notoriously tricky to get right. Great work pulling this off in 10 months. Good luck with the project!
- artursapek 7mo agothanks! appreciate that
- relation_al 7mo agoBank Street Writer was the first software program I fell in love with, 3000 years ago in the cretaceous era. When I just tried your app it gave me that same thrill, and I haven't thought about that app in 2700 years. Well done!
- artursapek 7mo agothank you!
- AmelieQiao 7mo ago[dead]
- nithisha2201 7mo ago[dead]
- birdchirp 7mo agoVery neat