nowfound

Life & fun · August 17, 2025

OA

OverType – A Markdown WYSIWYG editor that's just a textarea

Hi HN! I got so frustrated with modern WYSIWYG editors that I started to play around with building my own. The problem I had was simple: I wanted a low-tech way to type styled text, but I didn't want to load a complex 500KB library, especially if I was going to initialize it dozens of times on the same page. Markdown in a plain was the best alternative to a full WYSIWYG, but its main drawback is how ugly it looks without any formatting. I can handle it, but my clients certainly can't. I went down the ContentEditable rabbit hole for a few years, but always came to realize others had solved it…

Alternativestop 2% of August 2025

In plain words

OverType is a lightweight Markdown editor built as a textarea that displays styled text while users type. It addresses the gap between plain Markdown, which looks unstyled and confusing to non-technical users, and heavy WYSIWYG editors that require large library files. The editor features synchronized live preview functionality, allowing writers to compose in Markdown format while seeing formatted output in real time without loading resource-intensive dependencies.

written from the facts on this page · September 2026

From the sources

In the maker’s words, at launch

Hi HN! I got so frustrated with modern WYSIWYG editors that I started to play around with building my own. The problem I had was simple: I wanted a low-tech way to type styled text, but I didn't want to load a complex 500KB library, especially if I was going to initialize it dozens of times on the same page. Markdown in a plain <textarea> was the best alternative to a full WYSIWYG, but its main drawback is how ugly it looks without any formatting. I can handle it, but my clients certainly can't. I went down the ContentEditable rabbit hole for a few years, but always came to realize others had solved it better than I ever could. I kept coming back to this problem: why can't I have a simple, performant, beautiful markdown editor? The best solution I ever saw was Ghost's split-screen editor: markdown on the left, preview on the right, with synchronized scrolling. Then, about a year ago, an idea popped into my head: what if we layered a preview pane behind a <textarea>? If we aligned them perfectly, then even though you were only editing plain text, it would look and feel like you were editing rich text! Of course, there would be downsides: you'd have to use a monospace font, all content would have to have the same font size, and all the markdown markup would have to be displayed in the final preview. But those were tradeoffs I could live with. Anyways, version 1 didn't go so well... it turns out it's harder to keep a textarea and a rendered preview in alignment than I thought. Here's what I discovered: - Lists were hard to align - bullet points threw off character alignment. Solved with HTML entities (• for bullets) that maintain monospace width - Not all monospace fonts are truly monospace - bold and italic text can have different widths even in "monospace" fonts, breaking the perfect overlay - Embedding was a nightmare - any inherited CSS from parent pages (margin, padding, line-height) would shift alignment. Even a 1px shift completely broke the illusion The solution was obsessive normalization: &#x2F;&#x2F; The entire trick: a transparent textarea over a preview div layerElements(textarea, preview) applyIdenticalSpacing(textarea, preview) &#x2F;&#x2F; Make textarea invisible but keep the cursor textarea.style.background = 'transparent' textarea.style.color = 'transparent' textarea.style.caretColor = 'black' &#x2F;&#x2F; Keep them in sync textarea.addEventListener('input', () => { preview.innerHTML = parseMarkdown(textarea.value) syncScroll(textarea, preview) }) A week ago I started playing with version 2 and discovered GitHub's <markdown-toolbar> element, which handles markdown formatting in a plain <textarea> really well. That experiment turned into OverType (https:&#x2F;&#x2F;overtype.dev), which I'm showing to you today -- it's a rich markdown editor that's really just a <textarea>. The key insight was that once you solve the alignment challenges, you get everything native textareas provide for free: undo&#x2F;redo, mobile keyboard, accessibility, and native performance. So far it works surprisingly well across browsers and mobile. I get performant rich text editing in one small package (45KB total). It's kind of a dumb idea, but it works! I'm planning to use it in all my projects and I'd like to keep it simple and minimal. I would love it if you would kick the tires and let me know what you think of it. Happy editing! --- Demo & docs: https:&#x2F;&#x2F;overtype.dev GitHub: https:&#x2F;&#x2F;github.com&#x2F;panphora&#x2F;overtype

More life & fun this month

the category →
  • TL

    Life & fun · 10d ago · louisabraham.github.io

  • Photosynthesis fires two of your iPhone

    Life & fun · 28d ago · photosynthesis.camera

  • SoloUno310

    Take control of hair pulling, nail biting & skin picking

    Life & fun · 28d ago · solouno.io

  • Scroll through all 43,252,003,274,489,856,000 reachable Rubik's Cube permutations.

    Life & fun · 26d ago · everycube.alen.is

  • The Interactive 3D Encyclopedia

    Life & fun · 21d ago · expeditione.fun

  • Hi HN, I built Eigendrum, a web tool that solves the 2D wave equation for arbitrary shapes so you can hear what they sound like as drums. How it works: * Solves -∇²u = λu using finite element analysis (Kφ = λMφ) on a triangle mesh. * Validated to <0.1% error against closed-form solutions for circles (Bessel zeros) and rectangles. * Sound model factors in strike location, Rayleigh damping, and mallet width. * Includes Kac drums I & II to demonstrate identical sound spectra from different geometries. * No frameworks, build steps, or dependencies. Repo and tests:…

    Life & fun · 26d ago · baselashraf81.github.io

Launched alongside, August 2025

the whole month →
  • Trace1,556

    Workflow Automations for the Human 👾 AI Workforce

    AI · 2025 · trace.so

  • IS

    I built the world's most impractical 1000-pixel display and anyone in the world can draw on it. It draws a single pixel at a time and takes 30-60 minutes to complete a single image. Anyone can participate in the project by voting for the next image to be drawn, and submitting images. https:&#x2F;&#x2F;kilopx.com&#x2F;

    Work · 2025 · benholmen.com

  • Job boards are dead. Your network is alive

    AI · 2025 · contra.com

  • KT

    Kitten TTS is an open-source series of tiny and expressive text-to-speech models for on-device applications. We are excited to launch a preview of our smallest model, which is less than 25 MB. This model has 15M parameters. This release supports English text-to-speech applications in eight voices: four male and four female. The model is quantized to int8 + fp16, and it uses onnx for runtime. The model is designed to run literally anywhere eg. raspberry pi, low-end smartphones, wearables, browsers etc. No GPU required! We're releasing this to give early users a sense of the latency and voices…

    Dev tools · 2025 · github.com

  • IW

    I was wondering how I can arrange objects along a spherical helix path, and read some articles on it. I ended up learning about parametric equations again, and make this visualization to document what I learned: https:&#x2F;&#x2F;visualrambling.space&#x2F;moving-objects-in-3d&#x2F; feel free to visit and let me know what you think!

    Life & fun · 2025 · visualrambling.space

  • TC

    For HTML Day 2025 [1], I made a web service that displays the current sky at your approximate location as a CSS gradient. Colours are simulated on-demand using atmospheric absorption and scattering coefficients. Updates every minute, without the use of client-side JavaScript. Source code and additional information is available on GitHub: https:&#x2F;&#x2F;github.com&#x2F;dnlzro&#x2F;horizon [1] https:&#x2F;&#x2F;html.energy&#x2F;html-day&#x2F;2025&#x2F;index.html

    Dev tools · 2025 · sky.dlazaro.ca