Skip to content
Pratyay360Public

Repository files navigation

drawy

A fast, accessible README builder β€” edit blocks, drag to reorder, export clean Markdown.

Features Β· Quick start Β· Usage Β· Tech stack Β· Project structure Β· Contributing Β· License

GitHub Stars GitHub Forks Last commit Release CI License


Features

  • 🧱 Block-based editor β€” every section of your README is a block you can edit, duplicate, or delete.
  • πŸ–±οΈ Drag to reorder β€” rearrange your document in seconds, no cut-and-paste required.
  • πŸ“€ Clean Markdown export β€” get portable, lint-friendly Markdown with no vendor lock-in.
  • 🎨 Themeable β€” ship a README that looks right in both light and dark mode.
  • ⚑ Fast β€” instant previews powered by Vite and TanStack Query.
  • β™Ώ Accessible β€” keyboard navigable, semantic markup, screen-reader friendly.

Quick start

Prerequisites

  • Bun >= 1.0 (or Node.js >= 20 with npm / pnpm)
  • A Supabase project for auth and persistence

Installation

git clone https://github.com/pratyay360/drawy.git
cd drawy
bun install

Environment

Create a .env.local file in the project root:

VITE_SUPABASE_URL=your-supabase-project-url
VITE_SUPABASE_ANON_KEY=your-supabase-anon-key

Run locally

bun run dev

The app will be available at http://localhost:5173.

Usage

  1. Pick a block from the palette β€” headers, badges, lists, tables, code samples, and more.
  2. Edit inline using the toolbar on the right. Changes preview instantly.
  3. Drag the list to reorder blocks into the structure you want.
  4. Export your finished README as Markdown and drop it straight into your repository.

Tip: keep the source of truth in README.md and regenerate it from drawy whenever your project changes.

Available scripts

Command Description
bun run dev Start the dev server with HMR
bun run build Type-check and build for production
bun run preview Preview the production build locally
bun run lint Lint and format with Biome
bun run typecheck Run the TypeScript compiler in check mode
bun run test Run the test suite

Tech stack

TypeScript React Vite Tailwind CSS Zustand TanStack Query Supabase PostgreSQL Zod Biome Bun

Frontend Β· React + TypeScript, Vite, Tailwind CSS, Zustand, TanStack Query
Backend Β· Supabase (Auth + Postgres), Zod for runtime validation
Tooling Β· Biome (lint + format), ESM-only, Bun as the package manager

Project structure

drawy/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/   # Blocks, toolbar, drag-and-drop list
β”‚   β”œβ”€β”€ hooks/        # TanStack Query hooks and shared logic
β”‚   β”œβ”€β”€ lib/          # Supabase client, schema, Markdown export
β”‚   β”œβ”€β”€ stores/       # Zustand state stores
β”‚   └── routes/       # App routes and layouts
β”œβ”€β”€ public/
β”œβ”€β”€ AGENTS.md         # Guidance for AI coding agents
└── README.md

Contributing

Contributions are welcome. To get started:

  1. Fork the repository and create a branch: git checkout -b feat/my-feature
  2. Make your change and add tests where it makes sense.
  3. Run the checks: bun run lint && bun run typecheck && bun run test
  4. Commit using Conventional Commits (feat:, fix:, docs: …).
  5. Open a pull request with a clear description and a screenshot if the UI changed.

Please read AGENTS.md before submitting changes that touch architecture or shared state.

License

Released under the MIT License. See LICENSE for details.

This package is not published to npm β€” it is intended to be run locally or self-hosted.


Star history

All repository badges

Watchers Branches Contributors Commits Open issues Closed issues Open PRs Closed PRs Merged PRs

Private package ESM only Agent-friendly AGENTS.md GitHub Sponsors

Releases

Sponsor this project

Packages

Used by

Contributors

Languages