No description
  • TypeScript 96.3%
  • JavaScript 1.7%
  • SCSS 1.3%
  • CSS 0.3%
  • Dockerfile 0.3%
Find a file
2025-01-16 15:47:35 -08:00
languages Fix workers 2025-01-16 15:47:35 -08:00
pages Fix workers 2025-01-16 15:47:35 -08:00
public Remove garbage 2025-01-16 15:09:28 -08:00
scripts Add developer notes to the language README files 2022-02-18 20:50:53 +05:30
styles Add hint for esolang notes button 2022-02-27 01:44:36 +05:30
ui More cleanup 2025-01-16 14:57:02 -08:00
worker-pack Add fix for engines using dependencies 2022-02-16 20:45:28 +05:30
.dockerignore Ignore files 2025-01-16 14:35:51 -08:00
.eslintrc.json More cleanup 2025-01-16 14:57:02 -08:00
.gitignore Remove garbage 2025-01-16 15:09:28 -08:00
.prettierrc.toml More cleanup 2025-01-16 14:57:02 -08:00
Dockerfile Fix workers 2025-01-16 15:47:35 -08:00
jest.config.js Set up unit testing for engines 2022-01-18 15:17:08 +05:30
LICENSE More cleanup 2025-01-16 14:57:02 -08:00
next-env.d.ts Implement basic execution system and UI 2021-12-14 22:30:41 +05:30
next.config.js Added build files 2025-01-16 14:36:06 -08:00
package.json Update blueprint 2025-01-16 14:38:21 -08:00
README.md Update project readme 2022-02-19 22:24:00 +05:30
tsconfig.json Add script to generate files for new language 2022-01-30 20:32:50 +05:30
yarn.lock Update blueprint 2025-01-16 14:38:21 -08:00

Esolang Park

Esolang Park is an online interpreter and debugger catered for esoteric programming languages. Think Repl.it, but a more simplified version for esoteric languages, with a visual debugger catered to each language, that runs on your own device.

The goal of Esolang Park is to be a platform for esolang enthusiasts to test and debug their code more easily, as well as for other people to discover and play around with esoteric languages without leaving the browser.

For every esolang, Esolang Park provides the following features:

  • Powerful Monaco code editor
  • Syntax highlighting
  • Live syntax checking in the editor
  • Set breakpoints in your code
  • Pause and step through code execution at any time
  • Adjust the speed of execution
  • View the runtime's internal state during execution

Code for the core app is completely decoupled from the esolang runtime - adding the runtime for a new esoteric language is just writing code that implements a standard API. This allows developers to create a development environment for an esolang without worrying about the common details of text editor, error handling, debugging and input-output.

Building the app

Esolang Park is a Next.js application built with TypeScript. To run Esolang Park locally, you need to have a modern version of Node.js installed. This project uses Yarn as its package manager, so you need that too.

Once you've cloned the repository locally, run the following commands and then navigate to http://localhost:3000 on your browser:

yarn # Install project dependencies
yarn build:worker # Build the esolang worker scripts
yarn dev # Run the development server

If you're interested in modifying the source code of the language providers, run yarn dev:worker in a separate terminal window. This starts the webpack watcher on language provider source code.

Adding new esolangs

If you want to add new esolangs to the project, create an issue. Or you can also implement it yourself, if you're comfortable with TypeScript and a bit of React. The wiki contains a guide to implementing a language provider for Esolang Park.