For people who use JSpark every day.
JSpark+
JSpark+ is JSpark with more: a page with its own server, the Call Stack, installing npm packages, saving to the Library, and 11 more features.
Yearly
$12a year1 device
$19a year3 devices
$25a year5 devices
Pay each year. If the plan ends, you are back on JSpark, with all your work kept.
Get JSpark+ YearlyGet JSpark+ YearlyGet JSpark+ YearlyLifetime
$39once1 device
$59$49onceUntil 3 November
$79once5 devices
Pay once. Every version of JSpark, now and in the future, is JSpark+ for you.
Get JSpark+ LifetimeGet JSpark+ LifetimeGet JSpark+ Lifetime30-day refund · Key by email · 1, 3 or 5 devices
The biggest thing JSpark+ adds.
A page, and its own server.
Write the page and the Node server it calls in one Snippet. Run it, and both start.
A page and its server
The Web Page + Server Starter. React + Server does the same with a React component.
- One Snippet, two sides
- The page and its Node server are Parts of one Snippet.
- No port, no CORS
- The page calls fetch("/api/…"), and its own server answers.
- Two consoles
- The page and the server each have a console tab.
- On your computer only
- The server listens on your computer alone, not the network.
The Timeline and Peeks are in JSpark. JSpark+ shows more of each.
See every call, and every pass of a loop.
The Timeline shows which functions led to each Step, and each callback as a Step of its own.
TimelineEditing is paused while you replay · Esc to go back
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
in factorial()
everywhere
everywhere
A recording of factorial(4). The Call Stack grows by one frame for each call, then unwinds.
TimelineEditing is paused while you replay · Esc to go back
Nothing in scope
everywhere
everywhere
in this callback
everywhere
in this callback
everywhere
in this callback
everywhere
in this callback
everywhere
everywhere
everywhere
in this callback
everywhere
in this callback
everywhere
everywhere
everywhere
in this callback
everywhere
in this callback
everywhere
everywhere
everywhere
everywhere
Each filter, map and reduce callback is a Step, with its answer after the line.
JSpark shows the last value of a Peek. Hover it in JSpark+ to see the value on every pass.
- The Call Stack
- Which functions led to this Step. Click one to go to its line.
- Inside lines
- Each call, callback and loop check is a Step, with its result.
- Every pass of a Peek
- Hover a Peek in a loop to see its value on every pass.
- Longer recordings
- Up to 2,000,000 Steps a Run, where JSpark records 5,000.
For code you want to use, and code you want to keep.
Install a package. Keep a Snippet.
Add any npm package to your Snippets, and save the ones worth keeping to the Library.
date-fns, from search to import. The facts and the output are npm’s and Node’s own.
Saved with a note and a Tag, then found again by a word in its note.
- Packages from npm
- Install, update and remove packages from the Packages window.
- Searching is in JSpark
- JSpark can search npm and read READMEs. JSpark+ installs.
- Keep a Snippet
- Save it with a title, a note and Tags, and edit it later.
- Import a Library
- Bring in a Library from another computer. JSpark can export one.
In JSpark, the time limit is 5 seconds and the memory limit 1 GB.
When a Run needs more time or memory.
Run it once more with a higher limit, or raise the limit for every Run in Settings.
Run the code a moment after you stop typing. Off: only when you press Run (⌘↵). Code that reaches outside — files, network — waits for Run either way.
How long to wait after your last keystroke before running. Shorter feels live; longer runs less often while you think.
Stops code that stays busy this long without a pause, like an endless loop. A server or a timer that waits between events keeps going until you press Stop. In the Timeline, it limits the whole recording.
Stops a run that uses more memory than this, before it slows down your computer. Raise it for large data. In the Timeline, the recording may use up to half of it.
TypeScript
Off: type errors are underlined and the code runs anyway. On: they are printed in the console and nothing runs.
No type checking.
New Snippets run as
Always strict. Uses import, export and top-level await, like a .mjs file. Snippets you already have keep the one they were made with.
Run the code a moment after you stop typing. Off: only when you press Run (⌘↵). Code that reaches outside — files, network — waits for Run either way.
How long to wait after your last keystroke before running. Shorter feels live; longer runs less often while you think.
Stops code that stays busy this long without a pause, like an endless loop. A server or a timer that waits between events keeps going until you press Stop. In the Timeline, it limits the whole recording.
Stops a run that uses more memory than this, before it slows down your computer. Raise it for large data. In the Timeline, the recording may use up to half of it.
TypeScript
Off: type errors are underlined and the code runs anyway. On: they are printed in the console and nothing runs.
No type checking.
New Snippets run as
Always strict. Uses import, export and top-level await, like a .mjs file. Snippets you already have keep the one they were made with.
- Run longer
- After the time limit, run it once more for up to 10 seconds.
- Run with more memory
- After the memory limit, run it once more with twice the memory.
- Your own limits
- In Settings: up to 10 seconds, and 256 MB to 8 GB of memory.
- The same guard
- The loop guard works as in JSpark. Only the limits move.
You look at it all day.
Pick your colours and font.
Click a look to see the window in it.
- Every app theme
- Six app themes, where JSpark has Night and Day.
- Every code colour
- Twelve Code Themes, where JSpark has Plain and Moss.
- Your font
- Fira Code ligatures and JetBrains Mono.
- Editor extras
- Tailwind class suggestions, and Format Code before each Run.
Everything in JSpark+.
Every feature of free JSpark, and these as well. Anything not listed here works the same in both.
- Longer recordings
- The Timeline records up to 2,000,000 Steps, where JSpark records 5,000.
- Inside lines
- Step into each call, callback and loop check, and see what each one came to.
- The Call Stack
- At every Step of the Timeline, see which functions called the one you are in, and in what order.
- Every pass of a Peek
- Hover a Peek inside a loop to see the value it had on every pass, not only the last one.
- A page with a server
- Web Page + Server and React + Server Snippets, each side with its own console.
- Open in Browser
- Open a Web Snippet’s page in your own browser, with its DevTools. It reloads as you edit.
- Longer, bigger Runs
- Set a time limit of up to 10 seconds and 256 MB to 8 GB of memory, or press Run longer.
- Run in your folder
- Run a Snippet in a folder of your own, so it can import your files and use your packages.
- More variables
- Keep as many environment variables as you need, and load the Working Folder’s .env.
- Install packages
- Install, update and remove npm packages. JSpark can search them and read them.
- Save to the Library
- Save Snippets to the Library, edit them, and import a Library from a file.
- Unlimited tabs
- Keep as many Snippets open as you like. JSpark keeps up to 3 open at once.
- Your Starters
- Put the Starters in the order you like, and hide the ones you don’t use, so the list stays short.
- Every look
- Every app theme and code colour, JetBrains Mono, and Fira Code with ligatures.
- Editor extras
- Tailwind class suggestions, Format Code before every Run, and your own format style or .prettierrc.
Priced per person: one License Key, for you, on 1, 3 or 5 devices. Polar handles the payment, the tax and your key.
- The same app
- A License Key turns your JSpark into JSpark+, in place.
- Your work, kept
- Upgrade or not, your Snippets, Library and settings stay.
- Your devices, 30 days
- One key is for you, on 1, 3 or 5 devices, as you choose. Any payment is refundable for 30 days.
Questions
How much does JSpark+ cost?
It depends on how many computers your License Key is for. Yearly is $12, $19 or $25 a year, and Lifetime $39, $59 or $79, for 1, 3 or 5 computers. Polar handles the payment, the tax and your key. Launch offer, until 3 November: Lifetime for 3 devices is $49 instead of $59.
Do I need an account?
No. The checkout asks for your email address, so it can send you your License Key. There is nothing to sign in to.
Does JSpark+ work offline?
Yes. Turning a key on needs a connection once. After that, JSpark+ checks the key when the app starts and once a day while it stays open, when you are online, and being offline never locks you out.
What happens if I stop paying for Yearly?
JSpark+ lasts until the end of the year you paid for. Then the app goes back to JSpark, the free edition, and you keep everything you made: saved Snippets stay openable, installed packages keep working and your settings stay. Renew at any time and JSpark+ comes straight back.
Can I switch from Yearly to Lifetime?
Yes. Buy Lifetime, cancel the Yearly plan on Polar’s customer page, then in Settings → License click Replace key… and paste the new key. Lifetime is full price, with no credit for what you paid on Yearly.
Do I still get updates on JSpark?
Yes. Every new version, with its fixes, reaches everyone, whichever edition they have. The app updates itself in both.
How many computers can I use it on?
As many as your License Key is for: 1, 3 or 5, chosen when you buy, Mac or Windows in any mix. A key is for one person. To move to another computer, click Deactivate this device… in Settings → License on the old one first. To add computers to a Yearly plan, switch it on Polar’s customer page: you pay the difference and get a new key. A Lifetime key can’t be switched: within 30 days, ask for a refund and buy the larger one.
Can my team or company buy JSpark+?
Yes, one License Key per person. Each person can buy their own, or one buyer can buy several, one at a time. Each key can be for 1, 3 or 5 computers. There is no team plan and no shared key.
Can I get a refund?
Yes, within 30 days of any payment, renewals included, with no questions asked. Your key stops working and the app goes back to JSpark. Nothing you made is deleted.
Is there a free trial?
No. JSpark itself is free and doesn’t expire, so it is the way to try the app for as long as you like. The 30 days are for refunds, not a trial.
The price is too much for me. Can I get a discount?
Maybe. Email support@jspark.app and say why the price doesn’t work for you: for example, you are a student, or prices where you live are much lower. Every email is read, and when the reason is clear, a discount is given.
Start with JSpark. JSpark+ is there when you want more.
Not a trial: it doesn’t expire.
WindowsNot a trial: it doesn’t expire.
MacDownload free
Not a trial: it doesn’t expire.