A unified Go API wrapper that enables cross-platform deployment with a single codebase. Write once, deploy everywhere.
Warning
This project is under heavy maintenance and active development. Breaking changes may occur frequently as we work to improve and stabilize the API.
Nando simplifies multi-platform development by providing a unified API layer that wraps popular platforms like Discord, Slack, and others. Instead of writing separate implementations for each platform, write your code once using Nando's abstraction layer.
- Single API interface for multiple platforms
- Currently supports multiple platforms
- Type-safe implementations
- Easy to extend for new platforms
- Consistent error handling
- Platform-agnostic message handling
go get -u codeberg.org/dimkauzh/nandoNote
Nando requires Go 1.18 or higher.
package main
import (
	nando "codeberg.org/dimkauzh/nando/api"
)
func main() {
	tk, err := nando.LoadFromEnv("token")
	if err != nil {
		panic(err)
	}
	// Optional, empty string for global commands
	gd, err := nando.LoadFromEnv("guildid")
	if err != nil {
		panic(err)
	}
	client, err := nando.NewNandoClient(nando.Config{
		Discord: nando.Platform{
			Enabled: true,
			Token:   tk,
			// Empty string for global commands
			GuildID: gd,
			Prefix:  "!",
		},
	})
	client.Connect()
	// Optional, added this for fun
	client.BotRunningMessage = "yay :)"
	client.BotConnectingMessage = "cmon :|"
	client.BotClosingMessage = "awww :("
	client.HandleQuit()
}| Platform | Status | Package | 
|---|---|---|
| Discord | ✅ | discordgo | 
| Matrix | 📅 | Coming Soon | 
| Slack | 📅 | Coming Soon | 
| IRC | 📅 | Coming Soon | 
| Telegram | 📝 | Coming Soon | 
| Revolt | 📝 | Coming Soon | 
| RCS | 📝 | Coming Soon | 
Note
Platforms might be added or removed in the future. Some platforms may have certain limitations or restrictions.
- 🚧 In Development
- 📅 Planned
- 📝 Possibly coming
- ✅ Finished
Detailed documentation and examples are currently in progress. Please refer to the examples directory for usage examples.
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
Tip
Use air to hot-reload the test.go file while developing.
See the Issues page for current bugs and feature requests.
The roadmap is available in the ROADMAP.md file.
This project is licensed under the Vuelto License V1 - see the LICENSE file for details.
If you find this project helpful, please consider giving it a star on GitHub!
- Create an issue for bug reports or feature requests
- Reach out on Discord: here
Made with ❤️ by Vuelto Team