Skip to content

Request Framework Support ​

Don't see your framework listed? LikhaEditor is designed to work with any JavaScript framework or backend system. We'd love to help you integrate it!

Supported Frameworks ​

  • [x] Vanilla JavaScript - npm package and CDN UMD bundle
  • [x] React - @likhaeditor/likhaeditor-react
  • [x] Laravel Blade - likha/laravel Composer package
  • [x] Livewire - likha/livewire Composer package
  • [ ] Filament - custom field pattern documented; no packaged field yet

Need Another Framework? ​

We're actively looking to support more frameworks and ecosystems. If you need LikhaEditor for a specific framework, we want to hear from you!

  • Vue.js - Vue 3 composition API components
  • Svelte - Native Svelte components
  • Angular - Angular module and components
  • Astro - Astro island components
  • Next.js - App Router and Pages Router optimizations
  • Nuxt.js - SSR-ready Vue components
  • SolidJS - Reactive primitives integration
  • Qwik - Resumable components
  • Django - Template tags and form fields
  • Flask - Jinja2 template integration
  • Ruby on Rails - View helpers and form builders
  • WordPress - Gutenberg block integration
  • Drupal - Field widget and formatter
  • Craft CMS - Field type integration
  • October CMS - Form widget
  • Express.js - View engine integration

How to Request ​

1. Check Existing Discussions ​

Before creating a new request, check if someone has already suggested your framework:

👉 Browse Framework Requests

If you find an existing request, give it a 👍 thumbs up and add your use case in the comments.

2. Create a New Discussion ​

If your framework isn't listed, create a new discussion:

  1. Go to GitHub Discussions: LikhaEditor Ideas
  2. Click "New discussion"
  3. Choose the "Ideas" category
  4. Use this template:
markdown
## Framework Request: [Framework Name]

### Framework Details
- **Name**: [e.g., Vue.js, Django, etc.]
- **Version**: [e.g., Vue 3.x, Django 5.x]
- **Official Website**: [URL]
- **Package Manager**: [npm, pip, composer, etc.]

### Why This Framework?
Explain why LikhaEditor would be valuable for this framework's ecosystem.

### Proposed Integration
How do you envision LikhaEditor working with this framework?

Example API:
```[language]
// Your proposed usage example

Use Case ​

Describe your specific use case or project.

Community Size ​

Approximate number of developers using this framework (if known).

I Can Help With ​

  • [ ] Testing
  • [ ] Documentation
  • [ ] Code contribution
  • [ ] Examples/demos
  • [ ] Maintenance

### 3. Provide Important Details

To help us prioritize, please include:

**Technical Requirements:**
- Framework version(s) you need to support
- Build tool requirements (webpack, vite, rollup, etc.)
- Server-side rendering needs
- TypeScript support requirements

**Your Use Case:**
- What are you building?
- How many users will use it?
- Is this for an open-source project?
- Timeline/urgency

**Community Impact:**
- How popular is this framework?
- Would others benefit from this integration?
- Are you willing to help test?

## Build Your Own Integration

Can't wait for official support? LikhaEditor's framework-agnostic core makes it easy to create your own wrapper!

### Quick Integration Guide

1. **Install the core package:**
```bash
npm install @likhaeditor/likhaeditor
  1. Create a wrapper component for your framework
  2. Handle lifecycle methods (mount, unmount, updates)
  3. Manage state synchronization
  4. Add TypeScript types (optional but recommended)

Example: Basic React Hook (DIY) ​

tsx
import { useEffect, useRef } from 'react';
import { createEditor } from '@likhaeditor/likhaeditor';
import '@likhaeditor/likhaeditor/dist/likha-editor.css';

export function useEditor(options) {
  const elementRef = useRef(null);
  const editorRef = useRef(null);

  useEffect(() => {
    if (elementRef.current && !editorRef.current) {
      const { editor } = createEditor({
        element: elementRef.current,
        ...options
      });
      editorRef.current = editor;
    }

    return () => {
      editorRef.current?.destroy();
      editorRef.current = null;
    };
  }, []);

  return { ref: elementRef, editor: editorRef.current };
}

Share Your Integration ​

Built a wrapper for your favorite framework? Share it with the community!

  1. Publish your package to npm/pip/packagist
  2. Share in Discussions: Show and Tell
  3. We'll feature it in our official documentation

Contributing Official Integrations ​

Want to contribute an official integration package? We'd love your help!

Requirements ​

Official integrations should:

  • ✅ Follow framework best practices and conventions
  • ✅ Include comprehensive TypeScript types
  • ✅ Have >80% test coverage
  • ✅ Include documentation and examples
  • ✅ Follow LikhaEditor's MIT license
  • ✅ Support the latest stable framework version
  • ✅ Include a README with installation and usage

Process ​

  1. Discuss first: Open a discussion to coordinate
  2. Fork the repo: Work in packages/[framework-name]
  3. Follow the structure: Match existing package patterns
  4. Write tests: Use Vitest for testing
  5. Document thoroughly: Include API docs and examples
  6. Submit PR: We'll review and provide feedback

See our Contributing Guide for detailed guidelines.

Framework Integration Checklist ​

When requesting or building an integration, consider:

  • [ ] Component/wrapper API design
  • [ ] State management integration
  • [ ] Server-side rendering support
  • [ ] TypeScript definitions
  • [ ] Build tool compatibility
  • [ ] Tree-shaking and bundle size
  • [ ] Accessibility features
  • [ ] Dark mode/theming
  • [ ] Form integration
  • [ ] Validation support
  • [ ] File upload handling
  • [ ] Internationalization (i18n)
  • [ ] Documentation and examples
  • [ ] Test coverage
  • [ ] Migration guide (if needed)

Priority Criteria ​

We prioritize integrations based on:

  1. Community demand - Number of requests and upvotes
  2. Framework popularity - Active user base size
  3. Contributor availability - Community members willing to help
  4. Ecosystem fit - How well it aligns with LikhaEditor's goals
  5. Maintenance burden - Long-term support requirements

Get Involved ​

Questions? ​

Not sure if your framework would be a good fit? Have questions about building an integration?

Start a discussion: Ask in GitHub Discussions

We're here to help make LikhaEditor work with your favorite tools!