TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: An open-source, collaborative, WYSIWYG Markdown editor

460 pointsby arek_nawoalmost 2 years ago
Inspired by the design and UI&#x2F;UX of apps like Notion, and utility of open-source apps like StackEdit, I decided to create a minimalistic, local-only WYSIWYG Markdown editor.<p>Some features worth highlighting:<p>- Monaco editor and Prettier integration for code snippets<p>- Tables (apparently the holy grail of WYSIWYG editing)<p>- Embeds (for CodePen, CodeSandbox and YouTube, most useful for HTML or JSON exports)<p>- Accepts Markdown paste-in, and &quot;exports&quot;&#x2F;generates HTML, Markdown and JSON outputs<p>- Collaboration (with real-time awareness and initial commenting system, available only when logged in)<p>- GPT-3.5 integration (only when logged-in with the corresponding extension installed)<p>Stack used: TipTap, Solid.js, HocusPocus, Fastify, tRPC.<p>Some notable drawbacks:<p>- No mobile support<p>- Collaboration available only between signed-in users, in the same workspace;<p>- I tried my best to support most common Markdown formatting, pasting and in-editor shortcuts, though there might still be room for improvement<p>- Self-hosting isn&#x27;t easy right now, though you should be able to figure it out from the source code<p>The editor itself is a standalone app, extracted from the larger Vrite CMS project (<a href="https:&#x2F;&#x2F;github.com&#x2F;vriteio&#x2F;vrite">https:&#x2F;&#x2F;github.com&#x2F;vriteio&#x2F;vrite</a>) which you can also test out (only with sign-in) here: <a href="https:&#x2F;&#x2F;app.vrite.io&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;app.vrite.io&#x2F;</a>

29 comments

Brendinoooalmost 2 years ago
Congrats on building and shipping something!<p>That said, from the original document about Markdown[0]:<p>&gt; The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.<p>From my experience, the benefit of Markdown is that it eliminates the need for WYSIWYG, because WYSIWYG is awful to work with.<p>Put those two things together, and it&#x27;s weird for me to see Markdown used like this. Not saying it&#x27;s wrong or bad or whatever, just that it&#x27;s weird and seems to cut against the spirit of the thing.<p>[0]: <a href="https:&#x2F;&#x2F;daringfireball.net&#x2F;projects&#x2F;markdown&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;daringfireball.net&#x2F;projects&#x2F;markdown&#x2F;</a>
评论 #36447040 未加载
评论 #36448870 未加载
评论 #36446380 未加载
评论 #36448964 未加载
评论 #36446773 未加载
评论 #36446867 未加载
评论 #36447697 未加载
评论 #36447452 未加载
评论 #36446794 未加载
评论 #36446804 未加载
评论 #36447874 未加载
评论 #36447917 未加载
评论 #36448922 未加载
评论 #36455568 未加载
评论 #36447130 未加载
评论 #36447129 未加载
评论 #36447859 未加载
评论 #36447747 未加载
评论 #36447866 未加载
评论 #36448257 未加载
评论 #36446379 未加载
dbrgnalmost 2 years ago
Ah, the joys of contenteditable HTML elements... Such an under-specified and utterly horrible part of the web specs.<p>I&#x27;m sure you had a lot of fun fighting Safari in general, and also the diverging handling between Chromium and Firefox (for example when pressing the Enter key). Even just changing certain CSS properties on the root editor element will cause the resulting markup on certain key inputs to be different.<p>I admire that you pulled it off, and hope that you have a big collection of cross-browser integration tests for catching all the regressions that will inevitably happen :) Good luck!
评论 #36447222 未加载
评论 #36447980 未加载
jitlalmost 2 years ago
&gt; We&#x27;re sorry but Vrite currently doesn&#x27;t support small viewports.<p>&gt; Please resize your browser window or visit Vrite from a desktop browser.<p>:( although I get it. In my experience Android and to a lesser degree iOS input is the hardest part of building these kinds of editors.
评论 #36447733 未加载
评论 #36446208 未加载
samwillisalmost 2 years ago
Nice, building with TipTap&#x2F;ProseMirror is such a joy.<p>Not mentioned (but inferred from TipTap + HocusPocus, the guys that originally built both are awesome BTW) this is using the Yjs CRDT (conflict free replicated datatypes) library and its bindings to ProseMirror to provide the underlying realtime collaborative system. Again absolute joy to work with these tools.<p>This is one of my favourite stacks.
Palmikalmost 2 years ago
It would be great if there was a mode that allows you to see the full markdown syntax (while still applying formatting implied by the markdown). I personally find it strange to remove &#x2F; add invisible characters.
评论 #36448032 未加载
评论 #36452111 未加载
评论 #36446928 未加载
lewisjoealmost 2 years ago
A little dissapointed to see ProseMirror not mentioned.<p>It&#x27;s an amazing rich-text editing toolkit that provides all the bits and pieces needed to write any kind of rich-text editor. Tiptap is a wrapper over ProseMirror for minimizing the vast API surface and providing simpler configurations.<p>The project is using TipTap and that is mentioned.<p><a href="https:&#x2F;&#x2F;prosemirror.net" rel="nofollow noreferrer">https:&#x2F;&#x2F;prosemirror.net</a>
评论 #36447074 未加载
ch_smalmost 2 years ago
Thanks for sharing! Looks awesome!<p>If it’s Markdown however, in my personal opinion, it should show the Markdown syntax, too, and not hide it. E.g. the headlines should have the editable ### next to them. Too many editors that &quot;support&quot; Markdown get this wrong. Can’t find the link now, but John Gruber agrees.
d4rkp4tternalmost 2 years ago
Skimmed the comments but didn’t see mention of :<p>Open source — MarkText <a href="https:&#x2F;&#x2F;github.com&#x2F;marktext&#x2F;marktext">https:&#x2F;&#x2F;github.com&#x2F;marktext&#x2F;marktext</a><p>Not open source — Typora <a href="https:&#x2F;&#x2F;typora.io&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;typora.io&#x2F;</a><p>Open source —<p><a href="https:&#x2F;&#x2F;hackmd.io&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;hackmd.io&#x2F;</a><p>I’ve used all three, the first two are are WYSIWYG. All are collaborative. HackMD has a nice two window editor that renders MD as you type.<p>Curious how Vrite compares with these.
评论 #36459864 未加载
solarkraftalmost 2 years ago
I&#x27;ve been wanting this. Like an Etherpad that feels better and works on Markdown. I&#x27;ll definitely have a look!
codingdavealmost 2 years ago
I&#x27;ve been working on content management systems for pretty much my entire career since the 90s, so I&#x27;ve seen my fair shares of editors. I understand the comments that markdown is incredible, as well as those that that markdown is horrid, that WYSIWYG is or is not compatible with markdown, etc.<p>At the end of the day, different users have different preferences and different use cases have different needs. This should not be news to anyone who works in software.<p>So I&#x27;d venture that this particular editor is definitely an atypical mix of possibilities, but there probably is an audience for it. And while I&#x27;m not currently in that audience, I am interested in where this goes over time as OP gets feedback and evolves the idea.
评论 #36449498 未加载
unshavedyakalmost 2 years ago
Tangent, but does anyone have any resources they link for writing something like this? I want to write <i>(experiment, more likely)</i> a thin layer over an editor for some basic highlighting of markdown stuff and a couple autocomplete-like features from the DB <i>(ie link to existing records)</i>.<p>I hear writing these editors over a content-editable <i>(or whatever)</i> field is super difficult. So.. are you aware of any good sources of information to mitigate the pain?<p>Note that this would, i believe, be an entirely ground up write. As i&#x27;ll probably experiment writing it in Rust. Rather than building on top of existing solutions like Prosemirror&#x2F;etc.
johnwheeleralmost 2 years ago
I understand the motivation behind creating a local-only WYSIWYG Markdown editor, but I can&#x27;t help but feel conflicted about it. Markdown was designed to prioritize simplicity and readability, allowing documents to be published as plain text without any markup clutter. Introducing a WYSIWYG editor seems to contradict the essence of Markdown itself. While I appreciate the effort and consideration for different use cases, the combination of Markdown syntax with a WYSIWYG editor strikes me as odd. However, everyone has their own preferences, so perhaps there is a balance to be found between simplicity and flexibility. Keep exploring and iterating, and who knows, you might discover the sweet spot that works for you and your users.
评论 #36450794 未加载
评论 #36450849 未加载
MitPittalmost 2 years ago
Is anyone else using an internal wiki engine like Outline or Wiki.js, for their company or community?<p>I am stuck self-hosting Outline because it has the most intuitive navigation and wysiwyg for non-IT people.<p>I wonder if any better alternatives appeared since then.
评论 #36447153 未加载
评论 #36447657 未加载
masukomialmost 2 years ago
you say that the editor is a standalone app, but i&#x27;m not seeing a link to that anywhere, only to vrite itself. also no mention of how to get the editor separately (or that that&#x27;s even a thing) on the vrite readme.
WolfOliveralmost 2 years ago
funny how many layers you can put on top of prosemirror and claiming to have implemented real time collaboration.
nipalmost 2 years ago
Neat! I write every blog post &#x2F; documentation in Markdown, so I&#x27;ll definitely be following your progress!<p>Do you accept &quot;embed&quot; requests? I tried embedding an Iframe but it did not work (instead displayed a code-editor view) and would happily join the list of embeds with SimplePDF<p><pre><code> &lt;iframe src=&quot;https:&#x2F;&#x2F;embed.simplePDF.eu&#x2F;editor&quot;&gt; &lt;&#x2F;iframe&gt;</code></pre>
评论 #36447920 未加载
cmeralmost 2 years ago
It looks beautiful and is very user friendly. Congrats!
YousefEDalmost 2 years ago
Congrats! Having wrestled a lot with contenteditable I realize this is no easy feat.<p>I&#x27;m building a similar library, but with a block-based (Notion style) approach, also on top of Prosemirror (see <a href="https:&#x2F;&#x2F;www.blocknotejs.org" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.blocknotejs.org</a>) - great to see more projects in this problem space! Welcome any feedback!
sergiotapiaalmost 2 years ago
Congrats on the launch! Unfortunate name clashing with Vite. I&#x27;m afraid Google will autocorrect to &quot;Did you mean Vite?&quot; a lot. I wouldn&#x27;t name something &quot;Rhails&quot; for the same reason. If you change the name maybe you get much better SEO so your cool project has better reach!
erezshalmost 2 years ago
Looks nice! I might give it a try when I get the chance.<p>A few nitpicks:<p>- It would be nice if exports included the metadata as comments<p>- When I move my cursor over a code block, any key I press that isn&#x27;t Enter will erase it, when really I just want to enter the code block and start writing. If I wanted to delete it, I could press del&#x2F;backspace.
评论 #36447297 未加载
tommooralmost 2 years ago
For those interested TipTap is doing the heavy lifting here – <a href="https:&#x2F;&#x2F;tiptap.dev&#x2F;examples&#x2F;default">https:&#x2F;&#x2F;tiptap.dev&#x2F;examples&#x2F;default</a>
评论 #36446403 未加载
thekingshorsesalmost 2 years ago
Yesterday, someone posted a really nice editor too.<p>I wish one of this is available as a custom element with attributes and callbacks, and I can just use it.
评论 #36447974 未加载
HeckFeckalmost 2 years ago
Nice. I have been on the lookout for a collaboration platform to keep docs + help plan dev, will give Vrite a look as well.
评论 #36447051 未加载
0xbadcafebeealmost 2 years ago
I like it! I would prefer an icon bar along the top or side, rather than have to select text for the icons to show up
CGamesPlayalmost 2 years ago
Looks great on Chrome. It completely hangs Safari, though. Version 16.3 (17614.4.6.11.6, 17614)
评论 #36446950 未加载
tomcamalmost 2 years ago
Wondering why it refuses show on an iPhone pro max? The display resolution is 2796 x 1290
villgaxalmost 2 years ago
I want MarkDown &amp; CSVs to just eat Microsoft&#x27;s lunch at some point
hhhalmost 2 years ago
Haven’t used it yet, any support for Mermaid diagrams?
评论 #36450134 未加载
revskillalmost 2 years ago
I want MDX support instead.
评论 #36447099 未加载
评论 #36446954 未加载