- Go 100%
| cmd/api | ||
| database | ||
| internal | ||
| .editorconfig | ||
| .gitignore | ||
| api | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| mise.toml | ||
| README.md | ||
| sqlc.yaml | ||
| todo.txt | ||
Codesnippy
A self-hosted API-based code snippet app written in Go.
Motivation
I like having a way to share code snippets and code snippet images. Having tried several online and CLI offerings, none managed to really capture what I wanted.
- Carbon doesn't have an API
- Raycast's Code Image doesn't either
- Silicon and Silicon.nvim always had formatting issues
- Codesnap.nvim conflicts with blink.cmp
I've also been wanting to do something different to writing web apps using PHP and Laravel. Writing code this way has been feeling a bit repetitive after 10 years or so.
To scratch that itch I tried to learn Rust and Zig.
I can't quite wrap my head around Rust lifetimes and iterators which ended up biting me quite a bit.
I do quite like Zig's explicitness, but I haven't been able to find a suitable project to really dive deep into learning it. And since it's pre-1.0, the ecosystem is still quite small.
The explicitness and strong ecosystem pushed me in the direction of Go, which is also very suitable for making web applications, so it really nailed everything I wanted to have in a language.
The learning of Go and wanting an API-driven code snippet app resulted in creating Codesnippy.
Installation
todo
Development
Mise is used for development.
| Command | Description |
|---|---|
mise run dev |
Start the development server and file watcher |
mise run test |
Run unit tests |
mise run tidy |
Run go tidy |
License
This project is licensed under Apache-2.0