This is the client-side code for the Borogove IDE.
The main technologies used:
Adding new features requires knowing or learning more or less all of the above, but for making modifications you might get by with general programming skills, depending on the task.
Additionally Storybook is used for building and testing UI components.
To set up the project locally you need Node.js and either npm or Yarn installed. Npm should be included in the Node.js installation.
git clone
(recommended) or download and unpack the source code)npm install
(or yarn install
) in the project directory.env
to the project root and use .env.example
as a template for its contentsThe .env file contains values that vary between development and production environments. If you create a file called .env.production
its values are used in the production build.
After the initial setup, use npm start
(or yarn start
) to start the development server. It runs the app in the browser at localhost:3000. The snippets feature can be started with npm start:snippets
.
Storybook shows a list of UI components in the app. The Storybook service can be run with npm run storybook
(or yarn storybook
.) It opens in the browser the same way as the actual app at localhost:6006.
Storybook definitions for UI components are located in files with the same name as the component in the same directory, but with a .stories.tsx
extension (MyComponent.stories.tsx
for MyComponent.tsx
component.)
The npm run build
(or yarn build
or npm run build:snippets
to build the snippets feature) command creates a complete web site in the build
directory. This directory can then be copied as is to web hosting of your choice.
The build process is quite slow, so don't panic if it doesn't seem to do anything for a few minutes.
The npm run deploy:prod
and npm run deploy:dev
commands (or yarn deploy:prod
/ yarn deploy:dev
) build and deploy the project to Firebase hosting. If you'd like to deploy to your own Firebase project, edit the .firebaserc file and replace the project ids with your own project ids created in the Firebase console. The ids in the default .firebaserc file refer to the "official" borogove.app hosting, which naturally won't work without proper credentials.
The .firebaserc file contains two separate projects, one for development or testing releases, and the other for production releases. If you only have one Firebase project you can use the production variant (npm run deploy:prod
) and ignore the development variant.
If starting the dev server shows errors like "Plugin "react" was conflicted between ".eslintrc.js » plugin:react/recommended" and BaseConfig" or "The requested module '@codemirror/xxx' contains conflicting star exports" delete yarn.lock (or package-lock.json) and/or node_modules and install packages again.