- 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 buildTo let the client call the server, the environment variable below is required.
VITE_API_URL=your_backend_hostnameBackend is a Go server using Gin. Storage is S3-compatible, using localstack for local development. And real AWS S3 for production.
sh ./deploy.shPlease refer to the
.env.production.examplefile 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 devor if you have installed once, then
make clientRunning everything in docker:
make serverShortcut for logging each component:
make log-server # see logs of server
make log-gopls # see logs of gopls
make log-localstack # see logs of localstackTest codes are yet to be written. Leave below commands for the future.
make test-client
make test-serverWelcome to contribute to this project. Please check the issues and PRs.