- Realtime execution using websocket
- LSP-backed language support
- Multiple sandboxes
- Share code snippet
- Rich snippet library
- Rich keybinding support
- Dark mode and more...
Go Sandbox started as a personal project, with a clear goal: to fill the gap in the Go ecosystem for a modern, IDE-like online coding experience that can foster learning and spread the Go language.
Front-end is a React app powered by Vite
, using Tailwind
and Flowbite
.
It is recommended to use static hosting service like AWS S3
or Amplify
.
cd client && npm install && npm run build
To let the client call the server, the environment variable below is required.
VITE_API_URL=your_backend_hostname
Backend is a Go
server using Gin
. Storage is S3-compatible, using localstack
for local development. And real AWS S3
for production.
sh ./deploy.sh
Please refer to the
.env.production.example
file for the environment variables required for production.
Need to set up the environment variable below for production so that the server will not use the localstack but the real AWS S3.
GIN_MODE=release
- Frontend: React, Vite, Tailwind, Flowbite
- Backend: Go, Gin, Websocket, Golsp, Localstack
The root directory directly serves the Golang server code. The React app is in the client
directory. The dev
directory is for local development setups.
cd client && npm install && npm run dev
or if you have installed once, then
make client
Running everything in docker:
make server
Shortcut for logging each component:
make log-server # see logs of server
make log-gopls # see logs of gopls
make log-localstack # see logs of localstack
Test codes are yet to be written. Leave below commands for the future.
make test-client
make test-server
Welcome to contribute to this project. Please check the issues and PRs.