A Chrome extension and backend server to seamlessly track your LeetCode problem-solving progress in Notion—no more manual copy-pasting!
- Start a timer for any LeetCode problem directly from Chrome.
- Automatically record problem name, difficulty, topic, time spent, and your code in a Notion data source.
- Track multiple review attempts and durations.
- Works with the latest Notion data source API.
- extension/: Chrome Extension logic and UI (side panel, popup, content scripts)
- server/: Node.js backend server (handles Notion API integration)
- Google Chrome
The extension is a side panel and only works on Google Chrome. Other browsers (like Arc) are not supported. - Node.js & npm
Required to run the backend server. - Notion Integration
- You must create a Notion integration and obtain an internal integration secret (API Key).
- The integration must have access to your Notion data source (see below).
- Create a Notion Data Source
- This is the template I customized to support my LeetCode practice: Notion LeetCode Question Bank
- Notion Data Source ID
- You must use the data source ID (not the old database ID) for your Notion table.
- Follow this tutorial to create your integration.
- Copy the generated API key.
- Open your Notion data source (table).
- Click the ••• menu at the top right, choose Add connections, and add your integration.
- Open your data source in Notion.
- Copy the ID from the URL (see Notion docs for details).
- Note: Make sure you are using the data source ID, not the database ID.
Create a .env
file in the server
directory with the following content:
NOTION_KEY={your-api-key}
NOTION_DATASOURCE_ID={your-datasource-id}
- Go to
chrome://extensions/
in Chrome. - Enable Developer mode (top right).
- Click Load unpacked and select the
extension
folder. - The extension icon should appear in your Chrome toolbar.
- Install dependencies:
Open a terminal, navigate to theserver
directory, and run:npm install
- Start the backend server:
or
npm start
node server.js
- Use the extension:
- Visit a LeetCode problem page.
- Open the extension from the side panel.
- Start the timer, solve the problem, and click
Solved
—your data will be sent to Notion!
- Make sure your Notion integration has access to the data source.
- Use the correct data source ID (not the old database ID).
- If you encounter issues, check the server logs for error messages.
Enjoy seamless LeetCode tracking in Notion!