Skip to main content

Deploying to Production

Here's a sample deployment setup using the JavaScript SDK along with a Python backend. This is of course just one way to set up a deployment; if you have any questions, hop on our Discord and chat with us.

Steps​

  • Import the SDK by inserting it into a page as a JavaScript script.
  • Initialize with API key using the Sapling.init method.
  • Observe any textarea or contenteditable DOM element using the Sapling.observe method.
  • Set up a backend endpoint with your API key to request edits.
Sample Quickstart
pip install flask requests flask_cors
FLASK_APP=sdk_flask.py flask run --port 3000

Sample HTML Frontend​

<html>
<head>
<script src="https://sapling.ai/static/js/sapling-sdk-v1.1.1.min.js"></script>
</head>
<body>
<div contenteditable="true" id="editor" sapling-ignore="true">Lets get started!</div>

<script type="text/javascript">
Sapling.init({
endpointHostname: 'http://localhost:3000',
saplingPathPrefix: '/sapling',
});

const contentEditable = document.getElementById('editor');
Sapling.observe(contentEditable);
</script>
</body>
</html>

For more information please see the JavaScript documentation.

Sample Python (Flask) Backend​

Here's the backend in Python (Flask). Adapt the code below according to the framework that you're using.

import requests
from flask import Flask, jsonify, request
from flask_cors import CORS

app = Flask(__name__)
CORS(app, origins='*')

SAPLING_API_HOSTNAME = 'https://api.sapling.ai'
API_KEY = '<api-key>'

@app.route('/sapling/<path:path>', methods=['POST'])
def sapling_proxy(path):
request_url = f'{SAPLING_API_HOSTNAME}/{path}'
args = request.get_json()
args['key'] = API_KEY
result = requests.post(request_url, json=args)
result = result.json()
return jsonify(result), 200