{"id":33139502,"url":"https://github.com/waynezhang/foto","last_synced_at":"2026-01-12T03:01:47.864Z","repository":{"id":50376450,"uuid":"518140582","full_name":"waynezhang/foto","owner":"waynezhang","description":"Yet another publishing tool for minimalist photographers.","archived":false,"fork":false,"pushed_at":"2026-01-01T05:13:03.000Z","size":7437,"stargazers_count":119,"open_issues_count":1,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-05T23:34:26.609Z","etag":null,"topics":["gallery-application","minimalist","photography","photography-portfolio","photography-site","photos"],"latest_commit_sha":null,"homepage":"https://foto.lhzhang.com","language":"Go","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/waynezhang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2022-07-26T16:38:39.000Z","updated_at":"2026-01-05T14:10:54.000Z","dependencies_parsed_at":"2024-04-29T20:32:21.021Z","dependency_job_id":"f794f7d7-4ff6-41a0-b922-771bb65806d2","html_url":"https://github.com/waynezhang/foto","commit_stats":{"total_commits":103,"total_committers":3,"mean_commits":"34.333333333333336","dds":"0.13592233009708743","last_synced_commit":"4292a6afac12bdd0346bb38d2604fdbc03099e99"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/waynezhang/foto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waynezhang%2Ffoto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waynezhang%2Ffoto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waynezhang%2Ffoto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waynezhang%2Ffoto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waynezhang","download_url":"https://codeload.github.com/waynezhang/foto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waynezhang%2Ffoto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28332841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"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":["gallery-application","minimalist","photography","photography-portfolio","photography-site","photos"],"created_at":"2025-11-15T12:00:29.283Z","updated_at":"2026-01-12T03:01:47.851Z","avatar_url":"https://github.com/waynezhang.png","language":"Go","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"![foto-cover](https://github.com/waynezhang/foto/assets/480052/13e77201-c680-49f5-8ce7-9ba0c73e6ddc)\n\n# foto\n\n![](https://github.com/waynezhang/foto/actions/workflows/release.yml/badge.svg) ![](https://github.com/waynezhang/foto/actions/workflows/test.yml/badge.svg)\n\n_Yet another another publishing tool for minimalist photographers._\n\nDemo site: [https://foto.lhzhang.com](https://foto.lhzhang.com)\n\n## Features\n\n- `Simple` One binary, three commands. No database required.\n- `Customizable` Highly customizable through configuration and template files.\n- `Fast` Files are processed concurrently for optimal performance.\n\n## Installation\n\n### macOS\n\n```bash\n$ brew tap waynezhang/tap\n$ brew install foto\n```\n\nOr download the binary from [here](https://github.com/waynezhang/foto/releases)\n\n### Nix/NixOS\n\nFor Nix users, a Flake is provided. It can be used to run the application\ndirectly or add the package to your configuration as flake input.\n\nIt also allows you to try out foto without permanent installation.\n\n```sh\nnix run github:waynezhang/foto\n```\n\nConsult the [Nix\nmanual](https://nix.dev/manual/nix/2.25/command-ref/new-cli/nix3-flake.html) for\ndetails.\n\n### Other platforms\n\nDownload the binary from [here](https://github.com/waynezhang/foto/releases)\n\n## Usage\n\n### Create a new site\n\n```bash\n~ $ foto create my_site\n~ $ tree my_site\nmy_site\n├── assets\n│   ├── icons\n│   │   ├── home.svg\n│   │   ├── instagram.svg\n│   │   └── twitter.svg\n│   └── style.css\n├── foto.toml # Configuration file, see below for more details.\n├── media\n│   └── avatar.jpg # Placeholder image for avatar.\n└── templates\n    └── template.html # Template file\n```\n\n### Preview\n\n```bash\n~/my_site $ foto preview\nCreating Preview...\nListening on 5000...\n```\n\nThe default port number is `5000`. It can be changed by `-p` flag.\n\n### Export\n\n```bash\n~/my_site $ foto export -o ~/site_docs\nExprorting sites to /Users/xxx/site_docs...\n```\n\n### Clear cache\n\n```bash\nfoto clear-cache\n```\n\n## Customization\n\n### Basic configuration with `foto.toml`\n\nSee [foto.toml](./fs/static/foto.toml)\n\n### Style customization\n\nTemplate and CSS styles can be modified without changing the `foto` binary.\n\nThe template file is located at `templates/template.html`.\n\nYou can also add additional settings in `foto.toml` ([ref](https://toml.io/en)) and reference them in the template file.\n`foto` uses the `html/template` package from Go. Please refer to [this link](https://pkg.go.dev/html/template) for more information. Besides, EXIF information is supported. Refer to [EXIF](https://exiftool.org/TagNames/EXIF.html) for all EXIF tags.\n\n## Changelogs\n\nSee [CHANGELOG](./CHANGELOG.md)\n\n## LICENSE\n \nSee [LICENSE](./LICENSE)\n\n## Credit\n\n`foto` is highly inspired by [moul](https://moul.app).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaynezhang%2Ffoto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaynezhang%2Ffoto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaynezhang%2Ffoto/lists"}