Build internal tools with just backend code. Open‑source & AI‑native.
Backend logic seamlessly becomes reality.
Sourcetool transforms your backend code into powerful internal tools. No frontend skills required.
📚 Documentation | 💬 Discord Community
We develop Sourcetool, an open-source internal tool builder that handles frontend complexities automatically, allowing developers to focus on implementing business logic in backend code only.
Focus on your business logic while we handle the UI. Build complete internal tools using only Go code. No frontend expertise required.
Built with Go’s type system for reliability. Create robust applications with type-safe APIs and seamless integration.
Watch our demo video and see Sourcetool in action!
https://github.com/user-attachments/assets/6c96ac38-8150-4d3d-a4ad-abab083cb77c
Note: While our cloud version is coming soon, you can start using Sourcetool today by deploying it in your own environment.
Deploy Sourcetool
Install the Sourcetool SDK
go get github.com/trysourcetool/sourcetool-go
Write your first internal tool
package main
import (
"github.com/trysourcetool/sourcetool-go"
"github.com/trysourcetool/sourcetool-go/textinput"
"github.com/trysourcetool/sourcetool-go/table"
)
func listUsersPage(ui sourcetool.UIBuilder) error {
ui.Markdown("## Users")
// Search form
name := ui.TextInput("Name", textinput.WithPlaceholder("Enter name to search"))
// Fetch users from the database
users, err := listUsers(name)
if err != nil {
return err
}
// Display users in a table
ui.Table(users, table.WithHeader("Users List"))
return nil
}
func main() {
s := sourcetool.New(&sourcetool.Config{
APIKey: "your_api_key",
Endpoint: "wss://your-sourcetool-instance" // Your self-hosted Sourcetool endpoint
})
// Register pages
s.Page("/users", "Users List", listUsersPage)
if err := s.Listen(); err != nil {
log.Fatal(err)
}
}
Sourcetool can be easily deployed using Docker in your environment. We provide comprehensive deployment documentation covering:
For detailed instructions, check out our Deployment Guide.
To get started with local development, follow these steps:
Install Prerequisites
Make sure you have the following tools installed:
head
, base64
, sed
, cat
, etc.)Set Up Environment Variables
Run the setup script to generate your .env
file and configure secrets:
./devtools/setup_local.sh
.env
later if needed.Start the Development Environment
Use Docker Compose to start all services:
make start
This will launch the backend, frontend, database, and other dependencies.
Access the Application
Stopping Services
To stop all running services:
make stop
Sourcetool is an open-source internal tool builder that enables you to build full-featured internal tools without writing any frontend code. It handles all frontend complexities automatically, allowing you to focus on implementing business logic in your backend code.
No. As an internal tool builder, Sourcetool lets you create complete applications using only Go. The system automatically handles all UI rendering and interactions without requiring any frontend code.
Admin panels, dashboards, data management systems, monitoring tools, and any application where development speed is more important than custom UI/UX.
Yes, Sourcetool is designed with security in mind. You deploy and run Sourcetool applications on your own infrastructure, keeping your code and sensitive data within your control.
Check out the Sourcetool website for pricing information.
Retool uses a GUI-based drag-and-drop approach, while Sourcetool is code-first, making it a strong Retool alternative. This makes Sourcetool ideal for the AI era where code can be easily understood and modified by AI tools. With type-safe backend code, your applications are Git version-controllable and integrate seamlessly with AI-assisted development workflows.