[HN Gopher] Show HN: An open-source, collaborative, WYSIWYG Mark...
       ___________________________________________________________________
        
       Show HN: An open-source, collaborative, WYSIWYG Markdown editor
        
       Inspired by the design and UI/UX of apps like Notion, and utility
       of open-source apps like StackEdit, I decided to create a
       minimalistic, local-only WYSIWYG Markdown editor.  Some features
       worth highlighting:  - Monaco editor and Prettier integration for
       code snippets  - Tables (apparently the holy grail of WYSIWYG
       editing)  - Embeds (for CodePen, CodeSandbox and YouTube, most
       useful for HTML or JSON exports)  - Accepts Markdown paste-in, and
       "exports"/generates HTML, Markdown and JSON outputs  -
       Collaboration (with real-time awareness and initial commenting
       system, available only when logged in)  - GPT-3.5 integration (only
       when logged-in with the corresponding extension installed)  Stack
       used: TipTap, Solid.js, HocusPocus, Fastify, tRPC.  Some notable
       drawbacks:  - No mobile support  - Collaboration available only
       between signed-in users, in the same workspace;  - I tried my best
       to support most common Markdown formatting, pasting and in-editor
       shortcuts, though there might still be room for improvement  -
       Self-hosting isn't easy right now, though you should be able to
       figure it out from the source code  The editor itself is a
       standalone app, extracted from the larger Vrite CMS project
       (https://github.com/vriteio/vrite) which you can also test out
       (only with sign-in) here: https://app.vrite.io/
        
       Author : arek_nawo
       Score  : 351 points
       Date   : 2023-06-23 12:40 UTC (10 hours ago)
        
 (HTM) web link (editor.vrite.io)
 (TXT) w3m dump (editor.vrite.io)
        
       | sergiotapia wrote:
       | Congrats on the launch! Unfortunate name clashing with Vite. I'm
       | afraid Google will autocorrect to "Did you mean Vite?" a lot. I
       | wouldn't name something "Rhails" for the same reason. If you
       | change the name maybe you get much better SEO so your cool
       | project has better reach!
        
       | WolfOliver wrote:
       | funny how many layers you can put on top of prosemirror and
       | claiming to have implemented real time collaboration.
        
       | samwillis wrote:
       | Nice, building with TipTap/ProseMirror is such a joy.
       | 
       | 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.
       | 
       | This is one of my favourite stacks.
        
       | dbrgn wrote:
       | Ah, the joys of contenteditable HTML elements... Such an under-
       | specified and utterly horrible part of the web specs.
       | 
       | I'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.
       | 
       | 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!
        
         | Turing_Machine wrote:
         | Safari is actually much better than some when it comes to
         | contenteditable. For one, Safari (along with Chrome, Edge,
         | Android Webview, etc.) supports the plaintext-only attribute
         | for contenteditable, which Firefox does not. That means you
         | don't have to worry about getting some ugly blob of broken HTML
         | pasted into your document.
        
           | dbrgn wrote:
           | TIL abuot plaintext-only. Thank you, that's very useful.
        
             | Turing_Machine wrote:
             | You're welcome. There are some minor inconsistencies (e.g.,
             | some browsers add a normal newline when one is pasted in,
             | while others insert a <BR>, which seems like broken
             | behavior to me), but dealing with those inconsistencies is
             | _much_ easier than dealing with random chunks of HTML being
             | pasted in.
        
         | twsted wrote:
         | It uses Prosemirror, which is pretty well tested.
        
       | 0xbadcafebee wrote:
       | 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
        
       | johnwheeler wrote:
       | I understand the motivation behind creating a local-only WYSIWYG
       | Markdown editor, but I can'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.
        
         | toastal wrote:
         | A lot of folks only care about the _visual_ output of Markdown
         | with little regard for the HTML semantics of the output or the
         | plaintext legibility. This is why tools like these are created.
         | Its also the audience that made READMEs no longer plaintext
         | readable--embedded with all sorts of HTML, graphics, badges,
         | manual table of contents, center tags, etc. Meanwhile the focus
         | on the visual will help increase the rampant abuse of  > to
         | _put a box around things_ instead of a semantically denoting
         | blockquotes for quoting sources.
        
         | misnome wrote:
         | > I personally find the combination of Markdown syntax with a
         | WYSIWYG editor to be a bit odd.
         | 
         | I can see where you are coming from in terms of wanting to stay
         | "true" to the intention of being able to read the plain text
         | (although it always supported the html escape hatch from the
         | beginning), but for me personally the value is that I can write
         | in something WYSIWIG, and drop
         | photos/screenshots/diagrams/sketches into my notes without
         | having to switch back and forth (or have a preview-window by
         | the side taking double the space) - with the absolutely crucial
         | feature that I can do so without being beholden to a single app
         | or nonportable file format.
         | 
         | I mainly use Obsidian for this now, but if I wanted to switch
         | away the Obsidian-only features are small/unobtrusive enough
         | that I wouldn't really miss them; I can edit things remotely on
         | the terminal easily enough; and in the end the entire thing is
         | just a git repository of markdown files.
        
           | [deleted]
        
       | nip wrote:
       | Neat! I write every blog post / documentation in Markdown, so
       | I'll definitely be following your progress!
       | 
       | Do you accept "embed" 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
       | <iframe src="https://embed.simplePDF.eu/editor">        </iframe>
        
         | arek_nawo wrote:
         | Yeah, generic embeds aren't allowed - only CodePen,
         | CodeSandbox, and YouTube. In Vrite, all the embeds are actually
         | processed separately when auto-publishing to different
         | platforms (e.g. Medium, Dev.to, Hashnode), that's why I don't
         | want to allow generic iframes.
         | 
         | That said, I do plan to add some more embeds to the core (e.g.
         | Twitter) but others will likely be supported through custom
         | content blocks and extensions.
         | 
         | That said, definitely report any feedback or feature request
         | you have (if not as an issue then possibly as a discussion).
        
           | amendegree wrote:
           | interesting, I checked out the md, and it looks like you
           | don't capture your embeds there, so the youtube embed is just
           | gone from the markdown... I would expect it to at least show
           | up as a link.
        
             | arek_nawo wrote:
             | The main output is JSON ProseMirror format. Other formats
             | are processed from this JSON using Transformers and Vrite
             | SDK: https://github.com/vriteio/vrite/tree/main/packages/sd
             | k/java...
             | 
             | In the GFM transformer I try to follow GitHub Flavored
             | Markdown spec, which technically doesn't support embeds.
             | Since I didn't find any "common" syntax to use for the
             | embeds, I just left them out. They're still there in JSON
             | and HTML outputs.
             | 
             | That's one of the drawbacks of MD. That said, I plan to add
             | an option like Markdoc, which has clearly defined spec for
             | implementing custom blocks like embeds.
             | 
             | That said, for now, if you sign up for the full Vrite CMS,
             | you can create a custom Transformer and process the output
             | so that embeds are included in your desired format. That's
             | what I'm doing for auto-publishing extensions for platforms
             | like Dev.to and Hashnode. I don't know what your use-case
             | is, but I thought it's worth noting.
        
           | nip wrote:
           | Ok, makes sense!
           | 
           | > That said, I do plan to add some more embeds to the core
           | (e.g. Twitter) but others will likely be supported through
           | custom content blocks and extensions.
           | 
           | > That said, definitely report any feedback or feature
           | request you have (if not as an issue then possibly as a
           | discussion).
           | 
           | I'll open a discussion on the repo then! Thanks a lot for
           | taking the time to answer!
        
       | masukomi wrote:
       | you say that the editor is a standalone app, but i'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's even a thing) on
       | the vrite readme.
        
       | tommoor wrote:
       | For those interested TipTap is doing the heavy lifting here -
       | https://tiptap.dev/examples/default
        
         | arek_nawo wrote:
         | Forgot to mention underlying ProseMirror
         | (https://prosemirror.net/) as well. It's doing "even-heavier"
         | lifting and is necessary for implementing more complex
         | mechanisms like the code editor integration or various side-
         | menus.
        
       | ch_sm wrote:
       | Thanks for sharing! Looks awesome!
       | 
       | 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
       | "support" Markdown get this wrong. Can't find the link now, but
       | John Gruber agrees.
        
       | villgax wrote:
       | I want MarkDown & CSVs to just eat Microsoft's lunch at some
       | point
        
       | thekingshorses wrote:
       | Yesterday, someone posted a really nice editor too.
       | 
       | I wish one of this is available as a custom element with
       | attributes and callbacks, and I can just use it.
        
         | arek_nawo wrote:
         | I can see how this would be useful, though there are some
         | options already available that can do that, e.g. Editor.js or
         | BlockNote.js.
         | 
         | Vrite's goal is to be more like a self-hostable writing
         | platform/tool, so making the editor into custom element isn't
         | really on the roadmap. If anything, it would be embeddable but
         | not customizable, which limits possible use-cases.
        
       | Brendinooo wrote:
       | Congrats on building and shipping something!
       | 
       | That said, from the original document about Markdown[0]:
       | 
       | > 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.
       | 
       | From my experience, the benefit of Markdown is that it eliminates
       | the need for WYSIWYG, because WYSIWYG is awful to work with.
       | 
       | Put those two things together, and it's weird for me to see
       | Markdown used like this. Not saying it's wrong or bad or
       | whatever, just that it's weird and seems to cut against the
       | spirit of the thing.
       | 
       | [0]: https://daringfireball.net/projects/markdown/
        
         | TechBro8615 wrote:
         | Agreed. The first thing I do in any markdown editor (eg
         | Obsidian) is disable the WYSIWYG.
        
         | egonschiele wrote:
         | That's logical, but there are plenty of Markdown WYSIWYG
         | editors out there, so this is not unusual. Quilljs is a famous
         | example.
        
         | zerkten wrote:
         | I've wanted this when the primary requirement was a WYSIWYG
         | editing experience acceptable to business users. Neither HTML
         | nor Markdown were acceptable and while it's perhaps more
         | accepted today, there are still huge audiences which won't
         | touch anything looking like code. The options available
         | generated terrible HTML on the backend that wouldn't roundtrip
         | or resulted in problems when the overall site design was
         | changed. I'm completely onboard with your feelings as a
         | technical person.
         | 
         | Using Markdown as the storage format solved the problem because
         | it is consistent and templates can easily be updated to support
         | design updates. The problem is now finding a WYSIWYG editor
         | that supports Markdown. I'm glad there is more going on this
         | space, but StackOverflow helped me a lot with
         | https://editor.stackoverflow.design/.
        
         | pseudocomposer wrote:
         | I think there's a place for WYSIWYG Markdown, and actually,
         | Markdown's simplicity actually seems like a good opportunity to
         | _simplify_ WYSIWYG and make it mobile-friendly (this tool does
         | not seem to be, so I've yet to try it...). In fact, most of us
         | use WYSIWYG Markdown daily in apps like Slack without even
         | thinking about it. That said, I think any general, open
         | solution needs to offer "manual /WYSIWYG" toggles the same way
         | we see "manual/preview" toggles on DockerHub/GitHub, ideally
         | also maintaining cursor position. Markdown's benefit is
         | definitely its simplicity, but that doesn't necessarily mean it
         | obviates the utility of WYSIWYG editing.
        
           | dadoomer wrote:
           | You might like Joplin's approach. It's exactly what you
           | described: you can toggle WYIWYG and plain text.
        
           | [deleted]
        
           | vorpalhex wrote:
           | I support a markdown WYSIWYG flow and it is a constant source
           | of pain for our users. At this point I just tell our users to
           | write markdown plain - and after a 10 minute tutorial,
           | everyone is comfortable doing that.
           | 
           | Slack's "markdown" is horrifically broken and one of the
           | worst markdown experiences in existence. I believe they no
           | longer even refer to it as markdown since they have strayed
           | so far from the spec.
        
             | StackOverlord wrote:
             | Same problem with the comment box in Reddit.
        
               | hunter2_ wrote:
               | I always get a good chuckle when I see comments that get
               | unexpectedly processed as a new ordered list. Like if
               | replying to a 3-item comment by starting with "4. " which
               | renders as "1. " -- for the sake of users who don't know
               | these nuances of markdown, I wish it strayed a bit
               | further to accommodate them.
               | 
               | Bold, italics, links, etc. -- sure, false positives there
               | are rare enough and the means of correcting mishaps are
               | intuitive enough. The OL issue though... so many go
               | uncorrected.
        
             | chatmasta wrote:
             | > the worst markdown experiences in existence
             | 
             | This title belongs to ClickUp.
        
           | pavo-etc wrote:
           | I love Obsidian's WYSIWYG implementation. It is WYSIWYG until
           | you the cursor is touching any formatted element, at which
           | point it reveals the Markdown that makes it appear that way
           | e.g. h1 titles appear large, but clicking on them reveals the
           | # at the start of the line
        
             | pxc wrote:
             | Hybrids like this are a nice advance over WYSIWYG imo.
             | There's similar, partial live preview functionality in LyX
             | and Emacs' Org mode as well, and I love those.
        
         | wouldbecouldbe wrote:
         | Only some developers like markdown, the rest of the world just
         | expect things to work like Word.
         | 
         | Things like this can bridge the gap.
        
           | reportgunner wrote:
           | > _... rest of the world just expect things to work like
           | Word_
           | 
           | While having absolutely no idea how to actually use Word.
        
           | Turing_Machine wrote:
           | > work like Word.
           | 
           | I haven't used Word much for a while, but the first thing
           | that came to mind here was "You mean like typing a comma and
           | suddenly your picture moves 15 pages away?".
           | 
           | :-)
           | 
           | That said, this is pretty neat. I'm not wild about Monaco
           | because it was crap on mobile the last time I looked (which
           | has also admittedly been a while... at that time, anyway,
           | CodeMirror was the only one I could find that didn't suck on
           | mobile), but still, this appears to be a very worthy project
           | for its use case.
        
           | lostlogin wrote:
           | > work like Word
           | 
           | This instantly makes me think about spending 20 minutes
           | trying to get a picture to stay where I put it and have text
           | neatly formatted. Word peaked some time ago and I don't even
           | know what it is now.
           | 
           | The app? The online thing? The teams thing? They aren't
           | actually fully compatible and it's awful.
        
         | solarkraft wrote:
         | > From my experience, the benefit of Markdown is that it
         | eliminates the need for WYSIWYG, because WYSIWYG is awful to
         | work with.
         | 
         | I can't tell you you're wrong because it's your experience, but
         | ... mine is the opposite.
         | 
         | I don't like having to think about the markup, just show me
         | what it looks like (no, not the "18px Arial #000 bold" kind,
         | the "this is a headline" kind).
         | 
         | There are a few rich text editors, but they're all not very
         | markdown compatible. But markdown is the format you almost
         | always need for sharing and storing.
        
         | indymike wrote:
         | > From my experience, the benefit of Markdown is that it
         | eliminates the need for WYSIWYG, because WYSIWYG is awful to
         | work with.
         | 
         | For most users, the opposite is true. They understand WYSIWYG
         | well and that is how most things work.
         | 
         | For developers, WYSIWYG is difficult because it is usually
         | tightly coupled to very complex formats which require very
         | complex data structures to represent. Markdown seems an nice,
         | limited format that would make for a nicer, saner WYSIWYG for
         | developers (except the inline HTML part of the spec).
        
           | pxc wrote:
           | > For most users, the opposite is true. They understand
           | WYSIWYG well and that is how most things work.
           | 
           | Most users know how to muddle through with WYSIWYG, but they
           | also lack experience with actually reliable editing
           | environments. So they just take for granted all of the
           | fighting they have to do with the semi-hidden state of the
           | WYSIWYG editor.
           | 
           | 99% of WYSIWYG users also fail to use their word processors
           | correctly even on the terms of those word processors
           | themselves. They most often totally eschew templates and
           | page/paragraph/character styles in favor of manual formatting
           | changes that all individually 'look right', turning all
           | sizeable documents into unmanageable messes when it comes to
           | consistency or formatting changes. It would be generous to
           | describe this norm as actual proficiency, especially in a
           | professional context.
           | 
           | Moreover, it's clear that the WYSIWYG paradigm itself is what
           | invites this widespread incompetency and poor document
           | quality. Why manage things in a systematic, organized, or
           | efficient way when you can watch the document take shape
           | before your eyes by highlighting individual words and
           | manipulating their appearance or padding things with spaces,
           | without having to give a thought to the structure of your
           | document in advance?
           | 
           | > Markdown seems an nice, limited format that would make for
           | a nicer, saner WYSIWYG for developers (except the inline HTML
           | part of the spec).
           | 
           | WYSIWYG is not in fact less buggy with Markdown, as can be
           | witnessed in the unholy WYSIWYG-Markdown unions of, e.g.,
           | Teams and Slack. You still inevitably end up fighting the
           | system just to get your cursor to stop adding text with that
           | formatting, or to escape that quote box, or whatever.
        
             | brazzledazzle wrote:
             | Teams' editors aren't even the same between chats (e.g. DMs
             | and discussion on a meeting) and channels in a "Team".
             | Which seems so odd and unnecessary it makes me curious how
             | they ended up needing such a confusing and seemingly
             | redundant editor.
             | 
             | As far as slack goes I don't usually need to futz with the
             | format buttons. Back ticks start and close the monospaced
             | strings and code blocks, underscore and asterisk start and
             | stop emphasis and bold, > starts quotes and newline
             | +backspace drops the formatting (same with ordered and
             | unordered lists).
        
         | throwawaaarrgh wrote:
         | > WYSIWYG is awful to work with.
         | 
         | Nearly the entire planet uses WYSIWYG and prefers it
        
           | Brendinooo wrote:
           | It's a "the worst choice, except for every other choice" sort
           | of thing.
           | 
           | WYSIWYG almost always generates nonsense in the underlying
           | code, which can be very difficult to work with when it comes
           | time to style that code. And since I'm a frontend guy, this
           | is something I'm always having to debug.
        
             | 0xbadcafebee wrote:
             | The problem there is having to manually maintain code. Once
             | we start abandoning useful technology to maintain the
             | status quo, we don't get progress
        
           | lpcvoid wrote:
           | I think people wouldn't prefer it if they actually knew
           | something different. Non-tech people don't even know there's
           | a world outside MS Office suite of tools, which shove you to
           | WYSIWYG by design. From experience when showing somebody
           | LaTeX, it's an eye opener people didn't know existed.
        
         | herpdyderp wrote:
         | use case for me is: please the product managers with "must has
         | WYSIWYG" but it won't drive me insane to use it
        
         | rpodraza wrote:
         | No, it's actually great. The non-tech people can use your
         | WYSIWYG editor, while you save your document as Markdown (which
         | can be parsed, validated, etc.)
        
         | meesles wrote:
         | StackEdit[0] pretty much perfected what I needed out of a
         | markdown editor - I just need somewhere to write my
         | tickets/docs that wasn't Github so that I could format it
         | properly while writing. I still use it from time to time
         | 
         | [0]: https://stackedit.io/
        
           | luuuzeta wrote:
           | Same! I wished there was a native app with the same layout as
           | StackEdit. Btw both the website [0] and the library [1] are
           | open source.
           | 
           | [0]: https://github.com/benweet/stackedit
           | 
           | [1]: https://github.com/benweet/stackedit.js
        
           | Reitet00 wrote:
           | StackEdit looks really nice! Does it support concurrent edits
           | from several users? (as several etherpad-like services do)
        
         | replwoacause wrote:
         | I get what you're saying, but if most people thought this way
         | products like Obsidian would never be as successful as they
         | are. If you look at what gets added to md documents to support
         | all the different plugins in the community, it's pretty crazy
         | and a far cry from textbook markdown language.
        
         | eviks wrote:
         | There is a way to publish a doc without looking like it's been
         | marked up with tags - it's WYSIWYG, and it's by design
         | impossible to achieve by... placing tags right there for
         | everyone to see (though with some syntax highlighting you can
         | make it less visible, bringing it closer to WYSIWYG again!
         | 
         | Markdown especially fails with anything remotely complicated
         | like tables or even something trivial like font size/color
        
         | cjbprime wrote:
         | This means that either you don't get to see what your document
         | is going to look like while you write it, or you have two
         | copies of the document open at the same time (one showing the
         | preview) and move your eyes between them, and neither feels
         | good.
        
           | prmoustache wrote:
           | You only need to check the preview once before saving, and
           | eventually correct an issue if some appear, which is quite
           | rare if you are using a decent text editor.
        
         | avgcorrection wrote:
         | These Wysiwyg MD editors are either very popular to make or use
         | though. I don't know why.
        
           | sbjs wrote:
           | Because I want to store my document's data in a standard
           | text-only human-readable human-editable format, but be able
           | to do the majority of my writing more easily and with wysiwyg
           | which is an free, automatic and space-conservative preview.
        
         | arek_nawo wrote:
         | I think there is use for good WYSIWYG-Markdown integration.
         | Can't really speak for others but, when writing longer forms of
         | content (technical blog posts, docs, etc.) Markdown becomes a
         | bit more difficult for me to navigate. I always fallback to a
         | visual editor (even if it's just StackEdit) and then try to
         | somehow convert that content back to Markdown destination
         | (which can sometimes be hard).
         | 
         | Vrite's primary format is JSON, but with MD shortcuts, parsing
         | on paste and parsers converting JSON to MD, I think it
         | integrates quite nicely in most cases.
        
           | chii wrote:
           | > primary format is JSON
           | 
           | the primary format is prosemirror document format, rather
           | than JSON (even tho it is in JSON).
        
         | cientifico wrote:
         | I think is a marketing issue.
         | 
         | If you say a WYSIWYG editor that can transparently
         | import/export to markdown it sounds more attractive (at least
         | to me).
        
           | arek_nawo wrote:
           | That's so true! I have a really hard time categorising what
           | Vrite Editor, let alone the entire Vrite is. I can't really
           | describe it in detail as it'd be too long and, to keep it
           | short, some messaging is lost in the process. "WYSIWYG
           | Markdown editor", "headless CMS for technical content" are
           | just some of my latest tries. I think I'm getting better at
           | it, but it's not easy.
        
           | Brendinooo wrote:
           | Yeah, I see where you're going here. I guess I'd be skeptical
           | until I see it in action for awhile and am confident that
           | it's not generating nonsense under the hood, which is a top
           | complaint about WYSIWYG editors.
        
         | thaumaturgy wrote:
         | I think Obsidian's "live preview" editing mode is a great
         | counterpoint to this. I'm pretty sure it's the first WYSIWYG
         | editor I've ever used, in 30-odd years of computing, that
         | hasn't pissed me off.
         | 
         | You type markdown, and as you go along, it renders the markdown
         | into its presentation style: italics are italicized, links turn
         | blue and underlined and clickable, lists become lists, and so
         | on.
         | 
         | And so there certainly is a visual difference between "plain
         | text" markdown and "rendered" markdown, but behind-the-scenes
         | you still have a markup language that is less awful than all
         | the other markup languages.
        
           | 111111IIIIIII wrote:
           | It's the only good thing about Obsidian that doesn't require
           | dependency on some random git repo ("extension").
        
           | arek_nawo wrote:
           | I'm a bit confused about that. I have heard of but haven't
           | really tried Obsidian. How does what you're describing
           | differs from so-called "Markdown shortcuts" (implemented in
           | my editor and other popular ones like Notion)? You can type
           | in most inline markdown and it's automatically converted to
           | WYSIWYG-styled text. All these shortcuts are described here:
           | https://docs.vrite.io/content-editor
           | 
           | How does it differ from Obsidian? Out of curiosity.
        
             | philomath_mn wrote:
             | I think the difference is that Obsidian is 100% backed by a
             | folder of plaintext markdown files which can be
             | managed/viewed/edited/versioned however you like.
             | 
             | It's not revolutionary but I like it
        
               | arek_nawo wrote:
               | In this case, yeah. That's not my goal. However, if a
               | "raw" preview in MD (or other format) is available and
               | editable), plus maybe a Git integration then I think this
               | could be on a compareable level.
               | 
               | Either way, seems like I'll have to check out Obsidian.
        
             | tedmiston wrote:
             | > How does it differ from Obsidian? Out of curiosity.
             | 
             | I am not OP, but I am a heavy Obsidian user. Obsidian has 2
             | different editing modes [0]: "Live Preview" and "Source
             | mode". Your implementation and Obsidian's _Live Preview_
             | editing mode implementation are very similar at-a-glance;
             | yours is a bit more interactive  / "GUI-forward".
             | 
             | Here's an example of what Live Preview mode looks like [1].
             | 
             | I'm surprised how many people here like Live Preview
             | editing mode in Obsidian though -- it drives me insane
             | constantly shifting the bits under / around my cursor...
             | it's very distracting. I mostly use their _Source mode_
             | editing mode for that reason.
             | 
             | That said, I did not see an equivalent of _Reading view_
             | mode from Obsidian in Vrite in a few minutes of playing
             | with it. It would be nice to see that added to prevent
             | accidental edits when browsing a doc you don 't edit to
             | change (similar to Vim's modes).
             | 
             | [0]: https://help.obsidian.md/Editing+and+formatting/Editin
             | g+and+...
             | 
             | [1]: https://help.obsidian.md/Live+preview+update
        
         | wmeredith wrote:
         | "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."
         | 
         | Ha! I've never read that, but having used Markdown quite a bit,
         | they have entirely failed that goal. A Markdown document is
         | parsable by a human, but it still looks like content surrounded
         | by tag barf that failed to render.
        
           | Brendinooo wrote:
           | Depends on what you're doing. If your content is just
           | headings, bold/italic, and links, I think it's eminently
           | readable. Code snippets are obviously niche but are a solved
           | problem.
           | 
           | People have mentioned tables here, and...yeah, they're messy,
           | but I wonder how common of a use case that is for your
           | average WYSIWYG user?
        
             | psytrx wrote:
             | > I think it's eminently readable
             | 
             | This. And proper line breaks help a lot, too. There's a
             | reason single line breaks are ignored.
             | 
             | > People have mentioned tables here, and...yeah, they're
             | messy, ...
             | 
             | IIRC, the "original" markdown does not include tables.
             | They've been added by GitHub (I think), because it made
             | sense for them, and many parsers started to adopt. I agree
             | they are not easily readable in "source mode". It helps to
             | properly align stuff, though, but it's a PITA.
        
               | Brendinooo wrote:
               | Yeah. A lot of stuff was added later. The original spec
               | was pretty loose, which is why CommonMark became a thing.
               | 
               | See
               | 
               | https://blog.codinghorror.com/standard-markdown-is-now-
               | commo...
               | 
               | and linked previous blog posts if you (or anyone else
               | reading this) are interested in the history.
        
               | hunter2_ wrote:
               | > proper line breaks help a lot, too. There's a reason
               | single line breaks are ignored.
               | 
               | Documents that don't hard-wrap (they could opt to hard-
               | wrap without consequence, to your point), when viewed
               | somewhere that doesn't make it trivial to engage soft-
               | wrap, are much more of an issue than the tag barf
               | mentioned earlier, IMHO.
        
           | nicbou wrote:
           | I edit a markdown-based website for a living. I'd say that it
           | works really well, but a proper text editor theme makes a big
           | difference.
           | 
           | I tweaked my Markdown theme to make headings bolder, links
           | linkier, and blocks blockier. Sublime also collapses link
           | URLs.
           | 
           | This keeps the text very readable, while letting me edit text
           | with powerful tools. There's a table of contents plugin, but
           | Cmd + R is a much faster navigation tool.
        
         | rchaud wrote:
         | Markdown makes sense for devs who are in a code editor all day
         | and might need to write some documentation and publish that to
         | HTML, without needing opening/closing HTML tags for everything.
         | 
         | For everybody else, Markdown doesn't save any time, and doing
         | things like creating tables actually wastes time because of the
         | "___" and "|" scaffolding required. Of course you could use a
         | Markdown table generator online but that's just WYSIWIG by
         | another name.
        
           | 411111111111111 wrote:
           | > _actually wastes time because of the "___" and "|"
           | scaffolding required._
           | 
           | I think you might be under a mistaken assumption here,
           | because I don't think that this is factual.
           | 
           | The only way I could see your misunderstanding is if you
           | think the quantity of whitespace in markdown tables is
           | important, which it isn't.
           | 
           | This is a working md table and it's not harder to make then
           | the equivalent html version                 |Header
           | one|header two|       |---|---|       |Column value 1|column
           | value one|       |value 2|value two|
           | 
           | Etc
           | 
           | Wherever what's preferable is another story though.
           | 
           | Personally I dislike writing plain html, and would always
           | prefer another template language to generate it, but that's
           | just preference.
        
             | Turing_Machine wrote:
             | > it's not harder to make then the equivalent html version
             | 
             | Much easier, I'd say.                   <table>
             | <tr>             <th>Header one</th>             <th>header
             | two</th>           </tr>           <tr>
             | <td>Column value 1</td>             <td>column value
             | one</td>           </tr>           <tr>
             | <td>value two</td>             <td>value two</td>
             | </tr>         </table>
        
               | 411111111111111 wrote:
               | Cleaner? Yes. easier? No.
               | 
               | Also note that you haven't actually done the same as my
               | example.
               | 
               | You're missing <thead> and <tbody>
        
               | hgsgm wrote:
               | I don't know.
               | 
               | It's easier to remember the html tags and to see if they
               | are correct.
               | 
               | In markdown I have to remember the weird punctuation and
               | get the | counts exactly correct.
        
               | condwanaland wrote:
               | I think this is background and person dependent. I find
               | it easier to remember the markdown syntax than the html
               | tags
        
             | throwawaaarrgh wrote:
             | It is much, much harder to maintain a markdown table. You
             | can keep html table cells on separate lines, and have
             | newlines in them. Can't with markdown tables.
        
               | 411111111111111 wrote:
               | Now that I can agree on. Thankfully, md accepts inline
               | html, so you can always just fall back to it for tables
               | if you expect modifications in the future.
               | 
               | Though for the record, you should bee able to escape
               | newlines with a backslash. That admittedly makes the md
               | table into a total disaster, so not suggesting it as an
               | actual option.
        
       | solarkraft wrote:
       | I've been wanting this. Like an Etherpad that feels better and
       | works on Markdown. I'll definitely have a look!
        
       | codingdave wrote:
       | I've been working on content management systems for pretty much
       | my entire career since the 90s, so I'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.
       | 
       | 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.
       | 
       | So I'd venture that this particular editor is definitely an
       | atypical mix of possibilities, but there probably is an audience
       | for it. And while I'm not currently in that audience, I am
       | interested in where this goes over time as OP gets feedback and
       | evolves the idea.
        
         | mlajtos wrote:
         | > WYSIWYG is or is not compatible with markdow
         | 
         | Markdown keyboard shortcuts in WYSIWYG editor works well
         | together.
        
       | revskill wrote:
       | I want MDX support instead.
        
         | arek_nawo wrote:
         | If you decide to sign up for Vrite, it provides a JSON output
         | accessible through the API. You can then process it to any
         | format you want using JS SDK and Transformers.
         | 
         | MDX doesn't make a lot of sense though as, with the supported
         | features, it's basically the same as pure MD. That said, custom
         | content blocks are in the pipeline and once that's added, MDX,
         | MarkDoc and other formats will work really nicely with Vrite.
        
         | Wurlitzer wrote:
         | Try motif.land
        
       | CGamesPlay wrote:
       | Looks great on Chrome. It completely hangs Safari, though.
       | Version 16.3 (17614.4.6.11.6, 17614)
        
         | arek_nawo wrote:
         | For me Safari seems to be working fine, except some broken
         | styling. Will try to explore more and fix what I can.
        
       | erezsh wrote:
       | Looks nice! I might give it a try when I get the chance.
       | 
       | A few nitpicks:
       | 
       | - It would be nice if exports included the metadata as comments
       | 
       | - When I move my cursor over a code block, any key I press that
       | isn'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/backspace.
        
         | arek_nawo wrote:
         | - I don't quite understand what "metadata" you're referring to?
         | 
         | - Makes sense. These are the kind of edge cases to figure out
         | with special blocks like code. In theory, the selection you
         | have before enter is a block selection, which would usually
         | remove the block when anything is inserted (enter is
         | specifically handled to move focus to the code editor). Will
         | consider making other characters do the same.
        
           | erezsh wrote:
           | > what "metadata" you're referring to
           | 
           | Metadata as in author, tags, and such, which your app allows
           | to add outside of the actual contents.
           | 
           | I think it's nice to have, and even nicer if I could
           | export/import them. Maybe support something like [this](http:
           | //fletcher.github.io/MultiMarkdown-5/metadata.html) or
           | [this](https://peterbabic.dev/blog/yaml-metadata-in-
           | markdown/)
        
       | bighoki2885000 wrote:
       | [dead]
        
       | cmer wrote:
       | It looks beautiful and is very user friendly. Congrats!
        
       | unshavedyak wrote:
       | Tangent, but does anyone have any resources they link for writing
       | something like this? I want to write _(experiment, more likely)_
       | a thin layer over an editor for some basic highlighting of
       | markdown stuff and a couple autocomplete-like features from the
       | DB _(ie link to existing records)_.
       | 
       | I hear writing these editors over a content-editable _(or
       | whatever)_ field is super difficult. So.. are you aware of any
       | good sources of information to mitigate the pain?
       | 
       | Note that this would, i believe, be an entirely ground up write.
       | As i'll probably experiment writing it in Rust. Rather than
       | building on top of existing solutions like Prosemirror/etc.
        
       | hhh wrote:
       | Haven't used it yet, any support for Mermaid diagrams?
        
         | arek_nawo wrote:
         | Not yet, but if you like what you see and would like to see the
         | diagrams added, please open an issue or discussion on GitHub.
         | This will help manage things better.
        
       | lewisjoe wrote:
       | A little dissapointed to see ProseMirror not mentioned.
       | 
       | It'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.
       | 
       | The project is using TipTap and that is mentioned.
       | 
       | https://prosemirror.net
        
         | arek_nawo wrote:
         | Yeah, my bad. Already mentioned it in one of the other comments
         | and it's also noted in the docs. I had to tap a lot into PM to
         | implement more advanced features so it definitely should have
         | been included.
        
       | jitl wrote:
       | > We're sorry but Vrite currently doesn't support small
       | viewports.
       | 
       | > Please resize your browser window or visit Vrite from a desktop
       | browser.
       | 
       | :( 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.
        
         | arek_nawo wrote:
         | Sorry for that. Forgot to include it in the drawbacks. I tried
         | the editor as-is on iOS and it wasn't a good experience. All
         | the menus (for blocks and inline) just mess with the OS's
         | built-in menus and aren't good for touch. I'm working on a
         | dedicated layout for mobile, though it'll likely only go so
         | far. For mobile it's really difficult to create a compelling
         | WYSIWYG editor on the Web.
         | 
         | Plus, for Vrite Editor, the Monaco Editor used for code
         | snippets doesn't officially support mobile (and it's a hit or
         | miss in my experience) so it'll likely have to be disabled
         | there.
        
           | Turing_Machine wrote:
           | I don't think there's really any good solution for phones...
           | text editing is probably always going to suck there. Maybe
           | just try your best to get it working on tablets? CodeMirror
           | (ProseMirror's sister project) works okay on iPads, in my
           | experience.
        
           | jitl wrote:
           | CodeMirror (from the same author as ProseMirror the library
           | under TipTap) works great on mobile, you should consider it
           | over Monaco for that feature.
        
             | arek_nawo wrote:
             | I know. I've explored pretty much all the options when
             | working on this and Monaco and CM are definitely top
             | choices. That said, for languages I'm working with (web)
             | and for the future potential of e.g. connecting to remote
             | language server, Monaco is a better choice. Will see if
             | switching between CM on mobile and Monaco on desktop will
             | be doable.
        
               | tmzt wrote:
               | How are you using TipTap with Monaco instead of
               | ProseMirror, do you have the bindings/plugins working the
               | same way?
               | 
               | How does this compare to something like Milkdown using
               | markdown as a native format?
               | 
               | I see you solved some of the hard problems (tables, etc.)
               | with Yjs and CRDT in general.
               | 
               | Are the backend components also open source?
        
               | arek_nawo wrote:
               | TipTap is built on ProseMirror. Basic elements of the
               | editor are made in TipTap, while for more advanced use
               | (tables, menus, integrating code editor) I had to tap
               | into ProseMirror.
               | 
               | I'm not really familiar with Milkdown so I can't say.
               | 
               | The entirety of Vrite is open-source under AGPL-3.0
               | license (with parts under MIT):
               | https://github.com/vriteio/vrite
        
         | paholg wrote:
         | It even shows that message if I request the desktop site.
         | 
         | I don't care if it works well on mobile, just show render
         | something so I can kind of play with it.
        
       | Palmik wrote:
       | 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 / add
       | invisible characters.
        
         | ddejohn wrote:
         | I specifically really enjoy using HackMD because you get a
         | naked markdown editor on the left, and the rendered version on
         | the right. I haven't used it for a while, so I'm not sure if
         | these features have been added, but at the time I was heavily
         | using HackMD, there was no linting/auto-formatting available in
         | the linter, unfortunately.
        
         | DistractionRect wrote:
         | Indeed, perhaps a middle ground would be something like
         | concealment as described/demoed in Gilles Castel's workflow
         | [0]. This way you can see the formatted content without the
         | tags/markdown but get access to the unformatted markdown to
         | edit/correct.
         | 
         | [0] https://news.ycombinator.com/item?id=19448678
        
         | arek_nawo wrote:
         | I agree. Will consider adding that.
        
       | MitPitt wrote:
       | Is anyone else using an internal wiki engine like Outline or
       | Wiki.js, for their company or community?
       | 
       | I am stuck self-hosting Outline because it has the most intuitive
       | navigation and wysiwyg for non-IT people.
       | 
       | I wonder if any better alternatives appeared since then.
        
         | cmer wrote:
         | I went down that rabbit hole as well, and I also settled on
         | Outline for our business. We haven't widely deployed it yet,
         | but it's been working great during our limited testing. It is
         | sorely missing robust embeds, however!
        
         | arek_nawo wrote:
         | I'd like to encourage you to check out Vrite as a whole. I'm
         | actively working on this to make it better for documentation
         | and knowledge base management. Good UI and UX are among my top
         | priorities.
         | 
         | There's already Kanban for better management of content
         | production process and I'd say the editor is comparable to
         | Outline. Other views and more editor features are on the way.
         | 
         | Still, as I'm updating it almost daily, self-hosting isn't easy
         | right now. I plan to have a stable version sometime in Q3 of
         | this year, with self-hosting and more features so keep an eye
         | out on that if you're interested.
        
       | YousefED wrote:
       | Congrats! Having wrestled a lot with contenteditable I realize
       | this is no easy feat.
       | 
       | I'm building a similar library, but with a block-based (Notion
       | style) approach, also on top of Prosemirror (see
       | https://www.blocknotejs.org) - great to see more projects in this
       | problem space! Welcome any feedback!
        
       | HeckFeck wrote:
       | Nice. I have been on the lookout for a collaboration platform to
       | keep docs + help plan dev, will give Vrite a look as well.
        
         | arek_nawo wrote:
         | Nice! If you have any feedback or feature requests afterwards
         | definitely let me know on GitHub.
        
       | [deleted]
        
       ___________________________________________________________________
       (page generated 2023-06-23 23:00 UTC)