{"id":30204584,"url":"https://github.com/kameojs/kameo","last_synced_at":"2026-01-12T02:20:09.761Z","repository":{"id":293972998,"uuid":"900329111","full_name":"kameojs/kameo","owner":"kameojs","description":"Web form editor framework powered by ProseMirror","archived":false,"fork":false,"pushed_at":"2025-09-06T19:19:50.000Z","size":1563,"stargazers_count":26,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-10-21T06:34:36.881Z","etag":null,"topics":["editor","form-builder","form-editor","javascript","js","kameo","prosemirror","rich-text","rich-text-editor","tiptap","web-forms","wysiwyg","wysiwyg-editor"],"latest_commit_sha":null,"homepage":"https://kameo.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kameojs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-08T13:58:15.000Z","updated_at":"2025-09-06T19:18:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"61afc13a-dce2-4a81-9425-830432d2486e","html_url":"https://github.com/kameojs/kameo","commit_stats":null,"previous_names":["kameojs/kameo"],"tags_count":768,"template":false,"template_full_name":null,"purl":"pkg:github/kameojs/kameo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameojs%2Fkameo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameojs%2Fkameo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameojs%2Fkameo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameojs%2Fkameo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kameojs","download_url":"https://codeload.github.com/kameojs/kameo/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameojs%2Fkameo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28331989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["editor","form-builder","form-editor","javascript","js","kameo","prosemirror","rich-text","rich-text-editor","tiptap","web-forms","wysiwyg","wysiwyg-editor"],"created_at":"2025-08-13T13:01:03.460Z","updated_at":"2026-01-12T02:20:09.753Z","avatar_url":"https://github.com/kameojs.png","language":"JavaScript","funding_links":[],"categories":["Editors"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"#\" target=\"_blank\"\u003e\n    \u003cimg src=\"./assets/logo.svg?sanitize=true\" width=\"180\" height=\"180\" alt=\"Kameo\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Kameo\n\nKameo is a toolkit for creating and rendering interactive web forms in rich text. Based on [ProseMirror](https://prosemirror.net/).\n\n## Screenshot\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/screenshot.webp\" width=\"600px\" alt=\"Kameo screenshot\" /\u003e\n\u003c/p\u003e\n\n## Features\n- **Create and render web forms** - Build interactive forms in rich text\n- **Import/export forms** - Save and load forms as JSON\n- **Dynamic form creation** - Build forms programmatically with commands\n- **Rich text editing capabilities** - Can be used as a rich text editor\n- **Extensible and customizable** - Create your own custom extensions and form fields\n- **Framework agnostic** - Works seamlessly across different frontend frameworks\n\n## Installation\n\n```bash\nnpm install @kameo/core @kameo/pm @kameo/starter-kit @kameo/form-kit @kameo/extension-slash-command @kameo/extensions\nnpm install @awesome.me/webawesome\n```\n\n**IMPORTANT**: Kameo is currently in active development and should not be used in production. During this early phase, npm packages will not follow semantic versioning. For now, we recommend experimenting with Kameo in development environments only. You can clone the repository and use the development setup to try out the latest features.\n\nTo get started with development env, follow these steps:\n\n```bash\ngit clone git@github.com:kameojs/kameo.git\ncd kameo\nnpm install \u0026\u0026 npm run build\ncd dev-playground\nnpm install \u0026\u0026 npm run start\n```\n\n## Quick start\n\n```javascript\nimport '@awesome.me/webawesome/dist/styles/themes/default.css';\nimport '@kameo/core/style/theme.css';\nimport '@kameo/core/webawesome.js';\n\nimport { Kameo } from '@kameo/core';\nimport { StarterKit } from '@kameo/starter-kit';\nimport { FormKit } from '@kameo/form-kit';\nimport { SlashCommand, suggestion } from '@kameo/extension-slash-command';\nimport { Placeholder } from '@kameo/extensions';\n\nconst kameo = new Kameo({\n  element: document.querySelector('#kameo'),\n  extensions: [\n    StarterKit,\n    FormKit,\n    SlashCommand.configure({ suggestion }),\n    Placeholder.configure({ placeholder: 'Press / for commands...' }),\n  ],\n  documentMode: 'edit',\n});\n\nkameo.on('submit', (event) =\u003e {\n  console.log(`on 'submit' event`, { event, formData: event.formData });\n\n  event.setResult({\n    success: true,\n    message: 'Form is submitted',\n  });\n});\n\nkameo.on('submit:result', (event) =\u003e {\n  console.log(`on 'submit:result' event`, { event });\n});\n```\n\n## Documentation\n\nFor full documentation, visit [kameo.dev](https://kameo.dev/getting-started/introduction/).\n\nKameo is built on top of Tiptap (core package). To better understand how to work with Kameo, we recommend familiarizing yourself with the Tiptap API documentation:\n- [Tiptap Editor API](https://tiptap.dev/docs/editor/api/editor)\n- [Core concepts](https://tiptap.dev/docs/editor/core-concepts/introduction)\n- [Custom extensions](https://tiptap.dev/docs/editor/extensions/custom-extensions)\n\n## License\n\nThe MIT License (MIT). Please see [License](LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkameojs%2Fkameo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkameojs%2Fkameo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkameojs%2Fkameo/lists"}