| -rw-r--r-- | .gitignore | 6L |
| -rw-r--r-- | Makefile | 36L |
| -rw-r--r-- | cmd/server/main.go | 52L |
| -rw-r--r-- | go.mod | 45L |
| -rw-r--r-- | go.sum | 82L |
| -rw-r--r-- | internal/config/config.go | 27L |
| -rw-r--r-- | internal/db/artist.go | 223L |
| -rw-r--r-- | internal/db/db.go | 184L |
| -rw-r--r-- | internal/db/release.go | 397L |
| -rw-r--r-- | internal/db/song.go | 478L |
| -rw-r--r-- | internal/domain/artist.go | 19L |
| -rw-r--r-- | internal/domain/genre.go | 45L |
| -rw-r--r-- | internal/domain/musicbrainz.go | 10L |
| -rw-r--r-- | internal/domain/regex.go | 20L |
| -rw-r--r-- | internal/domain/release.go | 75L |
| -rw-r--r-- | internal/domain/search.go | 9L |
| -rw-r--r-- | internal/domain/song.go | 53L |
| -rw-r--r-- | internal/domain/strings.go | 33L |
| -rw-r--r-- | internal/external/musicbrainz/musicbrainz.go | 131L |
| -rw-r--r-- | internal/log/log.go | 88L |
| -rw-r--r-- | internal/server/artist.go | 62L |
| -rw-r--r-- | internal/server/edit-artist.go | 168L |
| -rw-r--r-- | internal/server/edit-release.go | 242L |
| -rw-r--r-- | internal/server/htmx/htmx.go | 28L |
| -rw-r--r-- | internal/server/index.go | 31L |
| -rw-r--r-- | internal/server/new-artist.go | 145L |
| -rw-r--r-- | internal/server/new-release.go | 174L |
| -rw-r--r-- | internal/server/new-song.go | 266L |
| -rw-r--r-- | internal/server/release-cover.go | 79L |
| -rw-r--r-- | internal/server/release.go | 59L |
| -rw-r--r-- | internal/server/router.go | 54L |
| -rw-r--r-- | internal/server/routes/routes.go | 57L |
| -rw-r--r-- | internal/server/search-artist.go | 120L |
| -rw-r--r-- | internal/server/search-release.go | 110L |
| -rw-r--r-- | internal/server/search-song.go | 83L |
| -rw-r--r-- | internal/server/search.go | 69L |
| -rw-r--r-- | internal/server/server-state.go | 45L |
| -rw-r--r-- | internal/server/song.go | 57L |
| -rw-r--r-- | internal/server/static.go | 43L |
| -rw-r--r-- | internal/server/toast/toast.css | 43L |
| -rw-r--r-- | internal/server/toast/toast.go | 24L |
| -rw-r--r-- | internal/server/toast/toast.js | 31L |
| -rw-r--r-- | internal/server/ui/js/lucide-utils.js | 11L |
| -rw-r--r-- | internal/server/ui/js/string-utils.js | 5L |
| -rw-r--r-- | internal/server/ui/layouts/base/base.go | 6L |
| -rw-r--r-- | internal/server/ui/layouts/base/base.templ | 64L |
| -rw-r--r-- | internal/server/ui/partials/artist-search-picker/artist-search-picker.go | 7L |
| -rw-r--r-- | internal/server/ui/partials/artist-search-picker/artist-search-picker.templ | 39L |
| -rw-r--r-- | internal/server/ui/partials/artist-search-similar/artist-search-similar.go | 7L |
| -rw-r--r-- | internal/server/ui/partials/artist-search-similar/artist-search-similar.templ | 30L |
| -rw-r--r-- | internal/server/ui/partials/artist-search-table/artist-search-table.go | 11L |
| -rw-r--r-- | internal/server/ui/partials/artist-search-table/artist-search-table.templ | 30L |
| -rw-r--r-- | internal/server/ui/partials/release-cover/release-cover.go | 21L |
| -rw-r--r-- | internal/server/ui/partials/release-cover/release-cover.templ | 18L |
| -rw-r--r-- | internal/server/ui/partials/release-search-picker/release-search-picker.go | 7L |
| -rw-r--r-- | internal/server/ui/partials/release-search-picker/release-search-picker.templ | 35L |
| -rw-r--r-- | internal/server/ui/partials/release-search-similar/release-search-similar.go | 7L |
| -rw-r--r-- | internal/server/ui/partials/release-search-similar/release-search-similar.templ | 26L |
| -rw-r--r-- | internal/server/ui/partials/release-search-table/release-search-table.go | 11L |
| -rw-r--r-- | internal/server/ui/partials/release-search-table/release-search-table.templ | 48L |
| -rw-r--r-- | internal/server/ui/partials/song-search-table/song-search-table.go | 11L |
| -rw-r--r-- | internal/server/ui/partials/song-search-table/song-search-table.templ | 45L |
| -rw-r--r-- | internal/server/ui/partials/table/table.css | 5L |
| -rw-r--r-- | internal/server/ui/partials/table/table.go | 9L |
| -rw-r--r-- | internal/server/ui/partials/table/table.templ | 101L |
| -rw-r--r-- | internal/server/ui/picker-list.css | 68L |
| -rw-r--r-- | internal/server/ui/style.css | 18L |
| -rw-r--r-- | internal/server/ui/views/artist/artist.css | 5L |
| -rw-r--r-- | internal/server/ui/views/artist/artist.go | 10L |
| -rw-r--r-- | internal/server/ui/views/artist/artist.templ | 105L |
| -rw-r--r-- | internal/server/ui/views/edit-artist/edit-artist.go | 7L |
| -rw-r--r-- | internal/server/ui/views/edit-artist/edit-artist.templ | 104L |
| -rw-r--r-- | internal/server/ui/views/edit-release/edit-release.go | 66L |
| -rw-r--r-- | internal/server/ui/views/edit-release/edit-release.js | 47L |
| -rw-r--r-- | internal/server/ui/views/edit-release/edit-release.templ | 229L |
| -rw-r--r-- | internal/server/ui/views/index/index.go | 7L |
| -rw-r--r-- | internal/server/ui/views/index/index.templ | 53L |
| -rw-r--r-- | internal/server/ui/views/new-artist/new-artist.css | 16L |
| -rw-r--r-- | internal/server/ui/views/new-artist/new-artist.go | 3L |
| -rw-r--r-- | internal/server/ui/views/new-artist/new-artist.templ | 81L |
| -rw-r--r-- | internal/server/ui/views/new-release/new-release.css | 15L |
| -rw-r--r-- | internal/server/ui/views/new-release/new-release.go | 3L |
| -rw-r--r-- | internal/server/ui/views/new-release/new-release.js | 6L |
| -rw-r--r-- | internal/server/ui/views/new-release/new-release.templ | 160L |
| -rw-r--r-- | internal/server/ui/views/new-song/new-song.css | 42L |
| -rw-r--r-- | internal/server/ui/views/new-song/new-song.go | 3L |
| -rw-r--r-- | internal/server/ui/views/new-song/new-song.js | 8L |
| -rw-r--r-- | internal/server/ui/views/new-song/new-song.templ | 314L |
| -rw-r--r-- | internal/server/ui/views/release/release.css | 25L |
| -rw-r--r-- | internal/server/ui/views/release/release.go | 7L |
| -rw-r--r-- | internal/server/ui/views/release/release.templ | 90L |
| -rw-r--r-- | internal/server/ui/views/search/search.go | 8L |
| -rw-r--r-- | internal/server/ui/views/search/search.templ | 37L |
| -rw-r--r-- | internal/server/ui/views/song/song.css | 25L |
| -rw-r--r-- | internal/server/ui/views/song/song.go | 7L |
| -rw-r--r-- | internal/server/ui/views/song/song.templ | 80L |
| -rwxr-xr-x | scripts/build-assets.sh | 32L |
| -rw-r--r-- | static/minimal.css | 269L |
| -rw-r--r-- | static/static.go | 18L |
| -rw-r--r-- | static/vendor/alpine.min.js | 5L |
| -rw-r--r-- | static/vendor/htmx.min.js | 1L |
| -rw-r--r-- | static/vendor/lucide.min.js | 12L |
| -rw-r--r-- | tasks/add_ability_to_edit_song.txt | 2L |
| -rw-r--r-- | tasks/done/add_ability_to_edit_artist.txt | 2L |
| -rw-r--r-- | tasks/done/add_release_types.txt | 10L |
| -rw-r--r-- | tasks/done/add_search_bar.txt | 2L |
| -rw-r--r-- | tasks/done/edit_release_does_not_fetch_similar_releases.txt | 2L |
| -rw-r--r-- | tasks/done/order_songs_via_input_type_number.txt | 2L |
| -rw-r--r-- | tasks/done/style_and_improve_ux_for_new_artist_form.txt | 4L |
| -rw-r--r-- | tasks/done/style_and_improve_ux_for_new_song_form.txt | 4L |
| -rw-r--r-- | tasks/pull_artist_metadata_from_musicbrainz.txt | 7L |