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.
> 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.
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.
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.
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: 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)
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?
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?
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!
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.
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
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.
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!
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?
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.
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.
76 comments
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!
> 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.
> 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.
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!
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)
Have you also considered using a solution like OnlyOffice for your product? Or a "Notion-like" lib such as Tiptap or PlateJS?
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?
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!
So, thoughts on a non-AI lightweight word processor.
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.
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?
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.
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.