The last Markdown editor, ever.
See the code
The last Markdown editor you'll ever need.
A modern, cloud-native Markdown editor built on Next.js — designed for speed, focus, and seamless sync.
Get Started · Features · Integrations · Deploy
Most markdown editors are either:
Dillinger fixes that.
It combines:
npm install
npm run dev
Open → http://localhost:3000
Cmd/Ctrl + Shift + Z).md, .txt, .markdownCreate:
.env.local
# Google Drive
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=http://localhost:3000/api/google-drive/callback
# OneDrive
ONEDRIVE_CLIENT_ID=
ONEDRIVE_CLIENT_SECRET=
ONEDRIVE_REDIRECT_URI=http://localhost:3000/api/onedrive/callback
# Bitbucket
BITBUCKET_CLIENT_ID=
BITBUCKET_CLIENT_SECRET=
BITBUCKET_REDIRECT_URI=http://localhost:3000/api/bitbucket/callback
# GitHub
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_REDIRECT_URI=http://localhost:3000/api/github/callback
# Dropbox
DROPBOX_CLIENT_ID=
DROPBOX_CLIENT_SECRET=
DROPBOX_REDIRECT_URI=http://localhost:3000/api/dropbox/callback
Each provider requires OAuth configuration.
/api/google-drive/callback
Azure App Registration
Permissions:
/api/github/callback
Scoped app
Enable:
Update all OAuth callbacks:
https://yourdomain.com/api/{provider}/callback
Then:
npm run build
npm start
| Layer | Technology |
|---|---|
| Framework | Next.js 14 |
| Editor | Monaco |
| Styling | Tailwind CSS |
| State | Zustand |
| Icons | Lucide |
npm run dev # Start dev server
npm run build # Production build
npm start # Start production server
npm run lint # ESLint
npm run test # Unit + E2E tests
npm run test:unit # Vitest unit/integration tests
npm run test:watch # Vitest watch mode
npm run test:e2e # Playwright E2E tests
npm run test:e2e:headed # E2E in visible browser
npm run verify # Lint + typecheck + all tests
294 unit/integration tests (Vitest) + 39 E2E tests (Playwright) with 98% code coverage.
npm run test:unit # Run all unit tests
npx vitest run --coverage # With coverage report
npm run test:e2e:headed # E2E in visible browser
Tests live in tests/ organized by type: lib/, store/, hooks/, components/, routes/, and e2e/.
Dillinger is built around a simple idea:
Writing tools should disappear.
No friction. No clutter. Just flow.
PRs welcome. Open an issue first for major changes.
MIT
Overall
Maintained
Code review
npm
Latest release
Releases this year
(top 24 of 63)
13,895 followers · starred Jun 2018
484 followers · starred Aug 2025
272 followers · starred Oct 2014
276 followers · starred Nov 2011
The last Markdown editor, ever.
See the code
The last Markdown editor you'll ever need.
A modern, cloud-native Markdown editor built on Next.js — designed for speed, focus, and seamless sync.
Get Started · Features · Integrations · Deploy
Most markdown editors are either:
Dillinger fixes that.
It combines:
npm install
npm run dev
Open → http://localhost:3000
Cmd/Ctrl + Shift + Z).md, .txt, .markdownCreate:
.env.local
# Google Drive
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=http://localhost:3000/api/google-drive/callback
# OneDrive
ONEDRIVE_CLIENT_ID=
ONEDRIVE_CLIENT_SECRET=
ONEDRIVE_REDIRECT_URI=http://localhost:3000/api/onedrive/callback
# Bitbucket
BITBUCKET_CLIENT_ID=
BITBUCKET_CLIENT_SECRET=
BITBUCKET_REDIRECT_URI=http://localhost:3000/api/bitbucket/callback
# GitHub
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_REDIRECT_URI=http://localhost:3000/api/github/callback
# Dropbox
DROPBOX_CLIENT_ID=
DROPBOX_CLIENT_SECRET=
DROPBOX_REDIRECT_URI=http://localhost:3000/api/dropbox/callback
Each provider requires OAuth configuration.
/api/google-drive/callback
Azure App Registration
Permissions:
/api/github/callback
Scoped app
Enable:
Update all OAuth callbacks:
https://yourdomain.com/api/{provider}/callback
Then:
npm run build
npm start
| Layer | Technology |
|---|---|
| Framework | Next.js 14 |
| Editor | Monaco |
| Styling | Tailwind CSS |
| State | Zustand |
| Icons | Lucide |
npm run dev # Start dev server
npm run build # Production build
npm start # Start production server
npm run lint # ESLint
npm run test # Unit + E2E tests
npm run test:unit # Vitest unit/integration tests
npm run test:watch # Vitest watch mode
npm run test:e2e # Playwright E2E tests
npm run test:e2e:headed # E2E in visible browser
npm run verify # Lint + typecheck + all tests
294 unit/integration tests (Vitest) + 39 E2E tests (Playwright) with 98% code coverage.
npm run test:unit # Run all unit tests
npx vitest run --coverage # With coverage report
npm run test:e2e:headed # E2E in visible browser
Tests live in tests/ organized by type: lib/, store/, hooks/, components/, routes/, and e2e/.
Dillinger is built around a simple idea:
Writing tools should disappear.
No friction. No clutter. Just flow.
PRs welcome. Open an issue first for major changes.
MIT
Overall
Maintained
Code review
npm
Latest release
Releases this year
(top 24 of 63)
13,895 followers · starred Jun 2018
484 followers · starred Aug 2025
272 followers · starred Oct 2014
276 followers · starred Nov 2011