Code snippet sharing app
Find a file
2026-08-05 21:12:28 +10:00
cmd/api Migrate on startup 2026-08-05 20:56:14 +10:00
database Add sqlc for sql code gen 2026-07-18 02:53:51 +00:00
internal Add tests for creating a snippet 2026-08-05 20:53:44 +10:00
.editorconfig Add Goose for migrations 2026-07-09 18:55:20 +10:00
.gitignore Add sqlc for sql code gen 2026-07-18 02:53:51 +00:00
api Initial commit 2026-06-11 02:13:40 +00:00
go.mod Create a migrator using Goose 2026-08-05 20:48:31 +10:00
go.sum Create a migrator using Goose 2026-08-05 20:48:31 +10:00
LICENSE Update README, add license 2026-08-05 21:12:28 +10:00
mise.toml Move migrations to internal/db 2026-08-05 20:48:14 +10:00
README.md Update README, add license 2026-08-05 21:12:28 +10:00
sqlc.yaml Add sqlc for sql code gen 2026-07-18 02:53:51 +00:00
todo.txt Migrate on startup 2026-08-05 20:56:14 +10:00

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.

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