{"id":50885917,"url":"https://github.com/kbennett2000/songbird","last_synced_at":"2026-06-15T17:01:32.949Z","repository":{"id":362801857,"uuid":"1260815874","full_name":"kbennett2000/songbird","owner":"kbennett2000","description":"A self-hosted Scripture-annotation app — read the Bible, highlight verses, and write notes in the margins. A client built on Concord.","archived":false,"fork":false,"pushed_at":"2026-06-06T02:15:43.000Z","size":205,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-06T02:18:00.896Z","etag":null,"topics":["annotation","bible","concord","fastapi","homelab","note-taking","react","scripture","self-hosted","sqlite","study-bible","typescript"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kbennett2000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-05T22:50:57.000Z","updated_at":"2026-06-06T02:15:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kbennett2000/songbird","commit_stats":null,"previous_names":["kbennett2000/songbird"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kbennett2000/songbird","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbennett2000%2Fsongbird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbennett2000%2Fsongbird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbennett2000%2Fsongbird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbennett2000%2Fsongbird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kbennett2000","download_url":"https://codeload.github.com/kbennett2000/songbird/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbennett2000%2Fsongbird/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34372130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation","bible","concord","fastapi","homelab","note-taking","react","scripture","self-hosted","sqlite","study-bible","typescript"],"created_at":"2026-06-15T17:01:32.160Z","updated_at":"2026-06-15T17:01:32.943Z","avatar_url":"https://github.com/kbennett2000.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/banner.svg\" alt=\"songbird — read Scripture, keep your notes in the margins\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ci\u003eA quiet place to read Scripture and keep your own notes in the margins — running on your own computer.\u003c/i\u003e\u003c/p\u003e\n\n---\n\nsongbird lets you **read the Bible, highlight a verse, and write a note behind it** — like marking up a study Bible, but yours, private, and on your own machine. Switch between translations and your notes stay put. Tag them, search them, link a sermon to a passage, see a passage’s places on a map, and follow the cross-references behind each verse.\n\nIt’s **self-hosted**: it runs on your computer, your notes never leave it, and it works without an internet connection once it’s set up.\n\nThe Bible text, search, and maps come from **[Concord](https://github.com/kbennett2000/concord)** — a companion Scripture engine that songbird is built on and runs alongside. The one command below starts both for you; songbird keeps only *your* notes, Concord provides the Scripture.\n\n\u003cbr\u003e\n\n## See it\n\n**Read and annotate.** Click a verse, write a note in the side panel, and it’s saved — right there in the margin.\n\n![The reader, with a verse highlighted and a note open beside it](docs/screenshots/reader.png)\n\n**Study the words behind the words.** Open any verse in its original Hebrew or Greek, then tap a word for its meaning and every place it appears.\n\n![The original-language word study for a verse, with the Hebrew laid out right to left](docs/screenshots/word-study.png)\n\n**Follow a journey.** Trace the Exodus or Paul’s travels stop by stop on the map — each stop tied to the passage it comes from.\n\n![A Scripture journey traced on the map, with numbered stops](docs/screenshots/journey-detail.png)\n\n**See it on a map.** A passage’s places pinned on a Bible-world map — honest about the ones it can’t place.\n\n![A passage’s places pinned on the Bible-world map](docs/screenshots/map-desktop.png)\n\n\u003cbr\u003e\n\n## What you’ll need\n\nJust two things:\n\n- **A computer** (Windows, Mac, or Linux).\n- **Docker Desktop** — a free program that runs apps like songbird. [Download it here](https://www.docker.com/products/docker-desktop/) and install it like any other app, then open it once so it’s running.\n\nThat’s it. About **15 minutes** the first time. You don’t need to know how to code.\n\n\u003cdetails\u003e\n\u003csummary\u003eNew to Docker? Here’s the one-minute version.\u003c/summary\u003e\n\n\u003cbr\u003e\n\nDocker is a free tool that runs a program and everything it needs in a tidy, self-contained bundle — so you don’t have to install a pile of technical pieces by hand. You install Docker Desktop once, open it (you’ll see a little whale icon when it’s running), and then songbird starts with a single command. You can quit Docker Desktop anytime to stop everything.\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## Get it running\n\n**1. Download songbird.** Click the green **`Code`** button near the top of this page, then **Download ZIP**. Unzip it somewhere easy to find, like your Desktop.\n\n\u003cdetails\u003e\n\u003csummary\u003ePrefer the command line? Use git instead.\u003c/summary\u003e\n\n\u003cbr\u003e\n\n```bash\ngit clone https://github.com/kbennett2000/songbird.git\n```\n\u003c/details\u003e\n\n**2. Open a terminal in the songbird folder.**\n\n\u003cdetails\u003e\n\u003csummary\u003eHow do I open a terminal in a folder?\u003c/summary\u003e\n\n\u003cbr\u003e\n\n- **Windows:** open the unzipped `songbird` folder, click the address bar at the top, type `cmd`, and press Enter.\n- **Mac:** right-click the `songbird` folder → *Services* → *New Terminal at Folder*. (Or open Terminal and type `cd `, drag the folder onto the window, press Enter.)\n- **Linux:** right-click inside the folder → *Open Terminal Here*, or `cd` into it.\n\u003c/details\u003e\n\n**3. Start it with one command:**\n\n```bash\ndocker compose up\n```\n\nThe first time, this downloads the Scripture engine and builds songbird. **It takes a few minutes — that’s completely normal.** You’ll see a lot of text scroll by; you don’t need to read it. Wait until it settles down and stops scrolling.\n\n\u003e ☕ The first run is the slow one. Every time after this, it starts in seconds.\n\n**4. Open songbird in your browser:** go to **[http://localhost:8077](http://localhost:8077)**\n\n**5. Create your account.** The first person to sign up is the owner. Pick a username and password — they stay on your computer. Anyone else you share the computer with can make their own account too, and each person’s notes are private to them.\n\n**6. Start reading.** You’ll land on a home page that greets you and — once you’ve read a little — offers to pick up where you left off. Open a chapter, click a verse, and write your first note. You’re in. 🎉\n\n**New here?** The **[User’s Guide](docs/USER-GUIDE.md)** walks through every feature — reading and annotating, search, the study tools, places and journeys, and comparing translations — each with a screenshot.\n\n\u003cdetails\u003e\n\u003csummary\u003eWhen you’re done — how to stop songbird.\u003c/summary\u003e\n\n\u003cbr\u003e\n\nIn the terminal, press **Ctrl + C**, then run `docker compose down`. Your notes are saved and will be waiting next time. To start it again later, just run `docker compose up` from the songbird folder.\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## How it works (for the curious)\n\nsongbird is the app you use; **[Concord](https://github.com/kbennett2000/concord)** is the Scripture engine it’s built on — the text, the search, the places, and the cross-references all come from Concord over the network, and the single command above starts both for you. songbird keeps only *your* notes; Concord provides the Bible.\n\n- **Want to use it?** Every feature, walked through with screenshots, is in the **[User’s Guide](docs/USER-GUIDE.md)**.\n- **Want to see how it’s built?** Start with [the design notes](docs/v1/SPEC.md), then the per-feature specs under [`docs/`](docs/).\n\nWant to build something like this yourself? The Concord ecosystem now has two beginner courses: **[concord-tutorial-web](https://github.com/kbennett2000/concord-tutorial-web)** builds your first Concord app in plain HTML and JavaScript, and **[concord-tutorial-react](https://github.com/kbennett2000/concord-tutorial-react)** picks up from there and walks you — one idea at a time — right up to reading songbird’s own source.\n\n\u003cbr\u003e\n\n## Trouble?\n\n\u003cdetails\u003e\n\u003csummary\u003e“docker: command not found” or nothing happens\u003c/summary\u003e\n\n\u003cbr\u003e\n\nDocker Desktop isn’t running. Open it (look for the whale icon), wait until it says it’s running, then try `docker compose up` again from the songbird folder.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eThe page won’t load at localhost:8077\u003c/summary\u003e\n\n\u003cbr\u003e\n\nGive it a moment — on the first run, songbird waits for the Scripture engine to be ready before it starts. If the terminal is still scrolling, it’s not finished yet. Once the text settles, refresh the page. If another program is using port 8077, stop it (or ask in [Issues](../../issues) and we’ll help).\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eIt says it can’t reach Concord\u003c/summary\u003e\n\n\u003cbr\u003e\n\nsongbird needs its Scripture engine running. If you started everything with `docker compose up` from the songbird folder, both run together automatically. If you see this error, the engine may still be starting (wait a moment and refresh) or may have been stopped — restart with `docker compose up`.\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## License\n\nsongbird is open source under the [MIT License](LICENSE). Use it, share it, make it yours.\n\n\u003cp align=\"center\"\u003e\u003csub\u003eRead Scripture. Mark what speaks to you. Keep your notes in the margins.\u003c/sub\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkbennett2000%2Fsongbird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkbennett2000%2Fsongbird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkbennett2000%2Fsongbird/lists"}