<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: David Rdz-Reveles</title>
    <description>The latest articles on DEV Community by David Rdz-Reveles (@davidartifacts).</description>
    <link>https://dev.to/davidartifacts</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3413146%2F5a50cc18-8f50-47e5-8d57-efeff7879f86.png</url>
      <title>DEV Community: David Rdz-Reveles</title>
      <link>https://dev.to/davidartifacts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/davidartifacts"/>
    <language>en</language>
    <item>
      <title>I Tried to Build My Own Markdown Editor (and Reality Hit Hard)</title>
      <dc:creator>David Rdz-Reveles</dc:creator>
      <pubDate>Thu, 19 Feb 2026 04:21:39 +0000</pubDate>
      <link>https://dev.to/davidartifacts/i-tried-to-build-my-own-markdown-editor-and-reality-hit-hard-k8e</link>
      <guid>https://dev.to/davidartifacts/i-tried-to-build-my-own-markdown-editor-and-reality-hit-hard-k8e</guid>
      <description>&lt;p&gt;When I started daylog back in 2024, AI wasn’t as smart as it is today. There was no “just ask the model to generate half your editor” shortcut. So I had to do most of the heavy lifting myself. And that’s when I discovered something:&lt;/p&gt;

&lt;p&gt;Making a text editor with colors and styles is way harder than it looks.&lt;/p&gt;

&lt;h3&gt;
  
  
  The naive beginning
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/artifacts-oss/daylog" rel="noopener noreferrer"&gt;daylog&lt;/a&gt; is a simple note-taking web app that supports Markdown. At least, that's still the idea.&lt;/p&gt;

&lt;p&gt;At the beginning, I thought: “How hard can it be to build a Markdown editor with syntax highlight?” Spoiler #1: very hard (for me at least).&lt;/p&gt;

&lt;p&gt;There are basically three ways to approach this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use an existing library.&lt;/li&gt;
&lt;li&gt;Use a plain textarea + preview window.&lt;/li&gt;
&lt;li&gt;Build a fully custom editor that highlights while typing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I didn’t want to depend on an existing library at first. I wanted control. So I started with option 2: a textarea and a preview panel.&lt;/p&gt;

&lt;p&gt;It worked. And actually, it worked really well for my needs.&lt;/p&gt;

&lt;p&gt;I took inspiration from the GitHub Issues and PRs editor. Simple textarea. Small toolbar. Preview below. Clean and functional.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4eqy3yxisw4lgtzrcsyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4eqy3yxisw4lgtzrcsyn.png" alt="GitHub Issue Editor" width="774" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But after using my own app for a few months, something bothered me. It felt… cheap. So I wanted more visual feedback. I wanted to instantly see bold text, headings, lists, task items, not just raw Markdown symbols. So I decided to level up.&lt;/p&gt;

&lt;p&gt;“I’ll just build my own Markdown editor.”&lt;/p&gt;

&lt;p&gt;Yeah. About that...&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem #1 – The textarea wall
&lt;/h3&gt;

&lt;p&gt;HTML textarea does not support partial styling.&lt;/p&gt;

&lt;p&gt;You can change the color of everything.&lt;br&gt;
But you cannot color only &lt;strong&gt;bold text&lt;/strong&gt; or headings.&lt;/p&gt;

&lt;p&gt;So I tried hacks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overlay a div on top of the textarea.&lt;/li&gt;
&lt;li&gt;Hide the real content.&lt;/li&gt;
&lt;li&gt;Use contenteditable instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the moment where things started getting messy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem #2 – The cursor nightmare
&lt;/h3&gt;

&lt;p&gt;Syncing the cursor between a fake highlighted layer and the real textarea is pain.&lt;/p&gt;

&lt;p&gt;Selecting text? Broken.&lt;br&gt;
Applying formatting? Misaligned.&lt;br&gt;
Typing fast? Cursor jumps.&lt;/p&gt;

&lt;p&gt;With contenteditable, now you’re manually managing selection ranges. Moving the caret. Rebuilding text nodes. Trying not to break everything.&lt;/p&gt;

&lt;p&gt;Yes, it’s possible. But maintaining it long-term? That’s a different story.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem #3 – Performance reality check
&lt;/h3&gt;

&lt;p&gt;Short notes? Fine.&lt;/p&gt;

&lt;p&gt;Large documents with thousands of lines?&lt;br&gt;
Running regex parsing on every keystroke? Not fine.&lt;/p&gt;

&lt;p&gt;Input lag started appearing.&lt;/p&gt;

&lt;p&gt;And nobody wants to type something and see the result one second later. That’s unacceptable for a writing tool. Sure, “notes” aren’t supposed to be huge. But why limit users?&lt;/p&gt;

&lt;p&gt;At some point I had to ask myself: Am I building a note app… or am I building a code editor?&lt;/p&gt;

&lt;h3&gt;
  
  
  The realization
&lt;/h3&gt;

&lt;p&gt;After a month of struggling, late nights, and too much coffee, I had a moment of clarity: My goal was never to build a text editor engine.&lt;/p&gt;

&lt;p&gt;My goal was to build daylog.&lt;/p&gt;

&lt;p&gt;So I dropped the “build everything myself” mindset and started searching for a solid Markdown editor. Spoiler #2: that wasn’t easy either.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monaco: too powerful for its own good
&lt;/h3&gt;

&lt;p&gt;I remembered Monaco, the core editor behind Visual Studio Code. Sounds perfect, right?&lt;/p&gt;

&lt;p&gt;Well…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to integrate at first.&lt;/li&gt;
&lt;li&gt;Extremely heavy for a simple note app.&lt;/li&gt;
&lt;li&gt;Hard to customize with normal CSS.&lt;/li&gt;
&lt;li&gt;Mobile support? Not great.&lt;/li&gt;
&lt;li&gt;Cursor and keyboard behavior on mobile? Painful.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monaco is amazing. But it was overkill for daylog... So I moved on.&lt;/p&gt;

&lt;h3&gt;
  
  
  The search
&lt;/h3&gt;

&lt;p&gt;I explored several options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://codemirror.net/" rel="noopener noreferrer"&gt;CodeMirror&lt;/a&gt; – lighter than Monaco, still powerful.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mdxeditor.dev/" rel="noopener noreferrer"&gt;MDXEditor&lt;/a&gt; – powerful but harder to learn.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/satya164/react-simple-code-editor" rel="noopener noreferrer"&gt;react-simple-code-editor&lt;/a&gt; – simple, but not actively maintained.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/uiwjs/react-md-editor" rel="noopener noreferrer"&gt;@uiw/react-md-editor&lt;/a&gt; – and this one felt different.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The winner: @uiw/react-md-editor
&lt;/h3&gt;

&lt;p&gt;What I liked about it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to implement.&lt;/li&gt;
&lt;li&gt;Configurable.&lt;/li&gt;
&lt;li&gt;Based on textarea encapsulation.&lt;/li&gt;
&lt;li&gt;No heavy code editor engine.&lt;/li&gt;
&lt;li&gt;Supports Mermaid, KaTeX, and GitHub flavored markdown.&lt;/li&gt;
&lt;li&gt;Can be styled with CSS overrides.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It felt aligned with my original idea!.&lt;/p&gt;

&lt;p&gt;When I integrated it into daylog and applied some custom CSS tweaks, everything finally clicked.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The editor looked good.&lt;/li&gt;
&lt;li&gt;It felt responsive.&lt;/li&gt;
&lt;li&gt;It fit the purpose of the app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezhcrr3ky6kz69h1csgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezhcrr3ky6kz69h1csgg.png" alt="daylog Note Editor with MDEditor" width="777" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And most importantly, I could move forward with the other planned features, and share it &lt;a href="https://dev.to/davidartifacts/i-built-an-open-source-markdown-note-taking-web-app-and-am-sharing-it-with-you-2ep3"&gt;here in dev.to&lt;/a&gt; ofc!&lt;/p&gt;

&lt;h3&gt;
  
  
  What I learned
&lt;/h3&gt;

&lt;p&gt;Maybe I gave up too early on building my own editor... Maybe not.&lt;/p&gt;

&lt;p&gt;Would it have been a great learning experience? Definitely.&lt;/p&gt;

&lt;p&gt;Was it aligned with my product goal? Not really.&lt;/p&gt;

&lt;p&gt;Sometimes building everything from scratch is ego.&lt;br&gt;
Sometimes it’s learning.&lt;br&gt;
Sometimes it’s just unnecessary suffering... (in my case).&lt;/p&gt;

&lt;p&gt;If you were in my position, what would you have done?&lt;br&gt;
Have you ever gone too deep into building something that wasn’t actually your main product?&lt;/p&gt;

&lt;p&gt;I’d love to hear your story.&lt;/p&gt;




&lt;p&gt;If you want to see the code, you can check the daylog repository:&lt;br&gt;
&lt;a href="https://github.com/artifacts-oss/daylog" rel="noopener noreferrer"&gt;https://github.com/artifacts-oss/daylog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built an Open Source Markdown Note-Taking Web App and Am Sharing It with You</title>
      <dc:creator>David Rdz-Reveles</dc:creator>
      <pubDate>Tue, 20 Jan 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/davidartifacts/i-built-an-open-source-markdown-note-taking-web-app-and-am-sharing-it-with-you-2ep3</link>
      <guid>https://dev.to/davidartifacts/i-built-an-open-source-markdown-note-taking-web-app-and-am-sharing-it-with-you-2ep3</guid>
      <description>&lt;p&gt;Hi devs!&lt;/p&gt;

&lt;p&gt;I'm excited to share my first open-source project with you called &lt;strong&gt;daylog&lt;/strong&gt;. It is a web app for taking notes with &lt;strong&gt;Markdown&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6b5awc6cuo702y1hviwn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6b5awc6cuo702y1hviwn.png" alt="daylog_portrait" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why another note-taking app?
&lt;/h2&gt;

&lt;p&gt;I initially created daylog to solve my own needs and for fun; as a former Notion user, I realized that I didn't need all the complexity and advanced features for my personal, informal notes. Also I got a little bored with the tree view menus...&lt;/p&gt;

&lt;p&gt;I'm a very visual person and a Jira power user, so I wanted to mix both worlds: cards, boards and notes. Basically, in daylog, I can set an image as a cover for a board so I can identify my boards easily without even reading the title. The same applies to notes. However, using an image is optional; you can also let daylog generate a random color based on the title.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why markdown?
&lt;/h2&gt;

&lt;p&gt;As I mention before, I like to work with Jira or any Kanban style app, but also as developer with some touch typing skills, sometimes I prefer to go full keyboard rather than clicking or dragging and dropping components with a mouse. That's why daylog has both options in the note editor: you can go full keyboard or use the text styling toolbar when creating your notes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyvv26jndmmwfxw8mhrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyvv26jndmmwfxw8mhrc.png" alt="daylog_portrait" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s not all! I’ve integrated some security features and 3rd-party integrations you might like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Two-Factor Authentication (2FA)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3 Storage&lt;/strong&gt; (for images)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unsplash support&lt;/strong&gt; (requires your own API key)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully responsive and PWA&lt;/strong&gt; (ready to install on desktop and mobile)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What’s planned for the future?
&lt;/h2&gt;

&lt;p&gt;As soon as possible, depending on my free time, I have some cool features and enhancements in mind, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Improve keyboard navigation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public and private sharing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note encryption&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search enhancements&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User wiki/documentation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File attachments&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changes history  with undo or redo&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unsplash component also in note editor&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cool visual features to customize and organize boards easily&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What about &lt;strong&gt;AI&lt;/strong&gt;?
&lt;/h2&gt;

&lt;p&gt;Maybe I'll integrate some AI specifically in the searching component in the future... but I don't have plans to integrate AI for note creation. Daylog is intended to let your brain decide what to write, without all the AI noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did I learn?
&lt;/h2&gt;

&lt;p&gt;A lot. Working on this "simple" project has inspired me to learn more about the concepts we use every day in software development projects. These concepts include GitHub Actions, Docker (and Docker Compose), semantic versioning, security advisories, README files, licensing, and other topics, such as failing to create a Markdown editor from scratch and finding a good Markdown editor project without losing my mind. I'll share my thoughts and lessons learned about these topics in future posts.&lt;/p&gt;

&lt;p&gt;At this moment feel free to review the code and use daylog. PRs are also welcome! ;). &lt;br&gt;
&lt;a href="https://github.com/artifacts-oss/daylog/tree/main" rel="noopener noreferrer"&gt;Go to daylog repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02g7uxtmpoxu0xl7lw3f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02g7uxtmpoxu0xl7lw3f.png" alt="daylog_portrait" width="365" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>markdown</category>
    </item>
  </channel>
</rss>
