Show HN: Revise – An AI Editor for Documents (revise.io)

by artursapek 76 comments 85 points
Read article View on HN

76 comments

[−] arrsingh 55d ago
This 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!

[−] NewsaHackO 55d ago

> 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.

How do you know? There isn't a git repo that one can see the history of, he could have coded this in one weekend and used the rest of the time doing noncoding activities. Also, he could have made the entire thing by prompting without any hands on coding at all. The fact that it is a web app with a SaaS platform (the thing that LLM-assisted coding is the best at) doesn't inspire confidence.

[−] arrsingh 54d ago
I signed up and gave the product a spin and its clear that its not some vibe coded weekend project. Clearly a lot of effort has gone into it and OP also was clear that they've spent 10 months on this.
[−] solarkraft 54d ago

> and used the rest of the time doing noncoding activities

That’s half of the point! Building (and selling) products requires a lot of those too.

[−] artursapek 55d ago
if you can build this in one weekend, I'd like to hire you
[−] artursapek 55d ago
Thanks, 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 53d ago
This 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 52d ago
Yeah, 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!
[−] jitl 55d ago
It'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:

- 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 54d ago
haha 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

[−] patate007 55d ago
I'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 55d ago
I definitely looked at TipTap and ended up building off their Y.js backend, which is great: 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

[−] thomasnowhere 53d ago
Impressive 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 53d ago
I 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 53d ago
That 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 52d ago
thanks! appreciate that
[−] relation_al 53d ago
Bank 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 52d ago
thank you!
[−] cadamsdotcom 54d ago
Very 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) - wishing you great success reinventing this space for the new era!

[−] artursapek 54d ago
Thank 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 54d ago
Why 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 54d ago
My 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.
[−] Surac 55d ago
Subsciption and Online means not for me
[−] johannesrexx 53d ago
Agreed. 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 53d ago
sounds 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.

[−] washbasin 55d ago
Er, is right click disabled on this page? Certainly seems to be in any browser I pick. If so, why?
[−] artursapek 55d ago
Unintended, thanks. fixed
[−] the__alchemist 55d ago
Anecdote 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.

[−] jitl 55d ago
Pages.app on Apple platforms is free-as-in-beer, native & instantly responsive UI, launches in a handful of milliseconds, collaborative. Unsure if you would consider it a bloated mess or not; the UI is pretty minimal but still competent for most work.
[−] artursapek 55d ago
Revise 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.

[−] the__alchemist 55d ago
Ty; will check it out. That wasn't one of the one I looked at.

Edit: Ah I see, from the OP. Unfortunately, I think Subscription-based, web-app, and vibe-coded would individually be deal breakers. Combined indicates it's not the sort of tool I seek.

[−] dbacar 55d ago
I am not a defender of Word (2024) but it starts in 1-2 seconds in my laptop.

Actually the speed is a problem when you have hundreds of pages with track changes and comments.

Maybe you should check Wordperfect or WordStar ;)

[−] codethief 55d ago
What features would you expect from a good word processor? What features should it leave out, i.e. features make MS Office / OpenOffice / LibreOffice a bloated mess?
[−] nubg 55d ago
What exactly would the perfect tool look like?
[−] artursapek 55d ago
Thanks 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
[−] highhands89 54d ago
This is really cool, but I'm wondering how you're getting around content moderation that the models utilize, or are you not?
[−] rvz 55d ago
This would really work well for teams. Are there any limits into how many people can collaborate on Revise?
[−] ymolodtsov 54d ago
A bit similar to Lex, which I love using for writing, but bringing any doc over is very useful.
[−] tyleo 55d ago
This 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.

[−] magrin_j 54d ago
Looks really nice, congrats !
[−] tomtomistaken 55d ago
How do you make sure the LLM catches and reports all grammar mistakes if I ask for it?
[−] saadn92 54d ago
nice 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!
[−] siscia 55d ago
There 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?

[−] _pdp_ 55d ago
There 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.

[−] wellsjohnston 55d ago
Wonderful product :)
[−] bartlomein 55d ago
Looks really cool!
[−] birdchirp 51d ago
Very neat