Home
Softono
md

md

Open source TypeScript
126
Stars
5
Forks
0
Issues
1
Watchers
1 month
Last Commit

About md

md is a highly streamlined Markdown editor designed specifically for creating formatted content for the WeChat Official Account platform. It addresses common pain points in existing tools by eliminating the need for complex manual formatting and repetitive layout adjustments. The core functionality allows users to write standard Markdown syntax, which is instantly rendered into engaging, visually appealing articles ready for WeChat publication. This approach enables content creators to focus entirely on their writing rather than technical styling details. The software supports a comprehensive range of Markdown features, including standard syntax, mathematical formulas via KaTeX, dynamic diagrams through Mermaid, PlantUML, and GitHub Flavored Markdown warning blocks. It also offers unique extensions such as Ruby annotation support, which allows users to add phonetic guides to text in a format compatible with WeChat specifications. Developers and technical writers benefit from robust code block handling with mu ...

Platforms

Web Self-hosted macOS

Languages

TypeScript Vue

My Drawer

My Drawer is a powerful, local-first personal AI workspace designed to integrate deeply with your macOS workflow. It serves as a central hub for journaling, clipboard management, window organization, and intelligent web research.

This repository follows a monorepo layout that keeps the native drawer experience in desktop/ alongside a small marketing site in landing/.

Features

  • 🧠 AI Chat: Chat with various LLMs (OpenAI, Anthropic, Google, Mistral, Groq, or Custom). Features rich markdown support, drag & drop attachments, and message history editing (Regenerate/Rollback).
  • πŸ“ Tasks & Notes: Built-in task manager and scratchpad to keep track of your daily to-dos and quick thoughts without leaving the context.
  • πŸ“‹ Clipboard Manager: Automatically tracks your clipboard history. Search, pin, and organize your clips locally.
  • 🌐 Web Research: Intelligent web scraping that fetches URL content and feeds it into an LLM for instant summarization, analysis, or Q&A.
  • ⚑ App Shortcuts: Quick access to your favorite applications.
  • πŸͺŸ Window Layouts: Manage and organize your window arrangements efficiently.
  • 🎨 Island UI: A beautiful, transparent "Island" interface that sits unobtrusively on your desktop, with native macOS blur and dark mode support.
  • πŸ”’ Local & Private: Your data stays on your machine. API keys are stored securely.

Tech Stack

Frontend

  • Framework: React (Vite)
  • Language: TypeScript
  • Runtime: Bun
  • Styling: Tailwind CSS, shadcn/ui
  • Animations: Framer Motion
  • State Management: Zustand (with persistence)
  • AI Integration: Vercel AI SDK (ai), react-markdown

Backend (Core - macOS)

  • Runtime: Tauri v2 (Rust)
  • OS Integration: cocoa / objc crates for macOS specific window handling.
  • Scraping: reqwest + html2text for robust, cleaner-friendly content extraction.

Architecture

  • desktop/ contains the Tauri frontend (desktop/src) and Rust backend (desktop/src-tauri). The existing scripts/ helpers (release automation, version bumps, etc.) live inside this workspace so those commands continue to run from there.
  • landing/ is a standalone Vite + React marketing site that introduces My Drawer, showcases key features, and delivers a CTA in a responsive layout.

Repository layout

  • Root (package.json): Defines the npm workspaces, central scripts for starting/building each workspace, and shared tooling. Run npm install from the root to bootstrap both packages and generate a single package-lock.json.
  • desktop/: The complete desktop experience with the Tauri frontend (src), Rust backend (src-tauri), Tailwind/Vite configs, and release scripts.
  • landing/: The marketing site with its own Vite config, TypeScript entry point, and CSS styles.

Getting Started

Prerequisites

Installation

npm install
# or
bun install

This installs dependencies for both workspaces and produces one lockfile at the repo root.

Running

  • npm run dev:desktop β€” Starts the desktop Vite server for Tauri development.
  • npm run tauri:desktop β€” Runs tauri dev from the desktop workspace (requires Rust).
  • npm run dev:landing β€” Serves the landing page locally (landing/).

Building

  • npm run build:desktop β€” tsc && vite build for the desktop frontend.
  • npm run build:landing β€” Builds the marketing landing page and outputs into landing/dist.

Development Commands

The workspace scripts mirror the previous standalone commands:

  • npm run dev:desktop
  • npm run preview inside desktop/
  • npm run build:desktop
  • npm run tauri:desktop
  • npm run release (run from desktop/) β€” handles versioning, signing, and notarization via desktop/scripts/release.sh.
  • npm run dev:landing
  • npm run build:landing

Versioning & Release

The automated release flow remains under desktop/scripts. Version bumps still update both desktop/package.json and desktop/src-tauri/tauri.conf.json.

cd desktop
bun run release -- --bump patch

Use npm run bump from the desktop workspace to adjust versions (desktop/package.json).