Skip to content
    Back to all Bounties

    Earn 1,800 ($18.00)

    Time Remainingdue 2 years ago
    Completed

    Build a WYSIWYG editor on React using Chakra UI and Tiptap

    p8divko
    p8divko
    Posted 2 years ago
    This Bounty has been completed!
    @p8divko's review of @RishabTirupath1
    5.0
    Average Rating
    Communication 5/5, Quality 5/5, Timeliness 5/5

    Bounty Description

    Problem Description

    We need to create a WYSIWYG editor for React using Typescript, Chakra UI, and Tiptap.

    Acceptance Criteria

    • The component should be created using the libraries mentioned above. Additional libs or modifications from MIT-licensed projects are allowed (please share your sources/licenses).

    • Here is the expected behaviour:

      • First editing: If the user is editing a document for the first time, the component will receive a parsed JSON as an initial object. Based on the user's interaction with the editor, the formatted responses should be saved on the DB (via debounce).

      • Secondary editing: If the user is editing a document that has been created before, we'll pass the current formatted object instead of the JSON as the starting point.

      **There is no need to create the pull/push functions from the DB. We'll provide these.

    • The initial JSON will contain some arrays and their values should be correctly parsed into a template on the TipTap editor. For example, the JSON may have a field like "previousProjects: Projects[]". We expect that each project is correctly parsed into the template.

    • The editor will have the "A4 page" format - i.e. 210x297. On the editor, similar to Notion, users can edit and add “blocks” on the document - such as Text, Headings, Bullets or Ordered Lists.

    • Additionally, we're expecting at least these settings modifications:
      Page: page color, line height, page margin;
      Paragraph/Text Style:

      • Bold, Italics, underline, strikethrough;
      • Align text (left, center, right);
      • Add/Remove indent from a paragraph;
      • Change Font family, font size, font color;
      • Highlight text;
      • Add a link to text
    • Exporting: There should be a button to export the document. There is no need to create the exporting logic.

    Summary

    In summary, we will provide:

    • The JSON/Typescript interface;
    • Template on Google Docs, Latex, or PDF:
    • The pull/push DB functions;

    We expect to get:

    • A React component on a folder containing the functionalities described above (including the TipTap template).

    Happy to walk you through an example if needed.
    Thanks!

    Copyright © 2025 Replit, Inc. All rights reserved.
    • twitter
    • tiktok
    • instagram
    • facebook

    Replit

    Programming languages

    • Python
    • JavaScript
    • TypeScript
    • Node.js
    • Nix
    • HTML, CSS, JS
    • C++
    • Golang