{"id":49453581,"url":"https://github.com/andyzg/gallery","last_synced_at":"2026-05-16T16:01:46.288Z","repository":{"id":18058229,"uuid":"74406346","full_name":"andyzg/gallery","owner":"andyzg","description":"Visual Portfolio Generator with no extra installation","archived":false,"fork":false,"pushed_at":"2022-10-29T16:02:07.000Z","size":134644,"stargazers_count":349,"open_issues_count":6,"forks_count":268,"subscribers_count":19,"default_branch":"gh-pages","last_synced_at":"2024-04-15T06:54:46.028Z","etag":null,"topics":["generator","photography","photography-portfolio","photography-site","photography-template"],"latest_commit_sha":null,"homepage":"http://andyzhang.net/gallery","language":"JavaScript","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/andyzg.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}},"created_at":"2016-11-21T21:14:28.000Z","updated_at":"2024-04-01T11:18:36.000Z","dependencies_parsed_at":"2023-01-11T20:27:56.996Z","dependency_job_id":null,"html_url":"https://github.com/andyzg/gallery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andyzg/gallery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyzg%2Fgallery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyzg%2Fgallery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyzg%2Fgallery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyzg%2Fgallery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andyzg","download_url":"https://codeload.github.com/andyzg/gallery/tar.gz/refs/heads/gh-pages","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyzg%2Fgallery/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33109461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["generator","photography","photography-portfolio","photography-site","photography-template"],"created_at":"2026-04-30T04:01:03.700Z","updated_at":"2026-05-16T16:01:46.282Z","avatar_url":"https://github.com/andyzg.png","language":"JavaScript","funding_links":[],"categories":["📦 Legacy \u0026 Inactive Projects"],"sub_categories":[],"readme":"# Gallery\nA visual portfolio generator with web hosting for your mockups and photo albums. Requires no 3rd party libraries or installations. A 🤑free🤑 Squarespace alternative for your photos. Live demo at http://andyzhang.net/gallery\n\n![demo](http://g.recordit.co/myz4N5iMzg.gif)\n\n*Gallery is a side project of mine to allow me to create a more curated version of my photography and mockup portfolio. It's intended to have a simple setup process that is accessible by anyone. If you have any feedback for Gallery, [drop me a line](mailto:andzhng@gmail.com?Subject=Hey!) :)*\n\n\n## Dependencies\n🔥 NONE 🔥\n\n## Making your own gallery in less than 5 minutes\n- Fork this repository🍴\n- Clone the repository through terminal by running\n`git clone git@github.com:{YOUR_USERNAME}/gallery.git`\n- Replace contents of `/photos` with all of your albums. For each of your albums, create a folder with the same name as your album name, and then put all of your photos in the folder. \n**Example**:\n```\n/photos\n  /mockups\n    IMG_0123.jpg\n    IMG_0124.jpg\n  /portrait\n    IMG_1234.jpg\n    IMG_1235.jpg\n```\n\n- Open the folder in finder and **double click** `setup.command`. This will go through all of your albums and create a `config.json` file for you. This file allows the generator to know which photos will be hosted on your website.✨\n- Personalize the contents at the bottom of `_config.yml`.\n- Commit all of your changes and then push all of your changes to Github by running\n```\n$ git checkout -B gh-pages  # This creates a branch that will be hosted at {username}.github.io/gallery\n$ git commit -am \"Create my first gallery\"  # This saves all of your changes\n$ git push origin gh-pages  # This pushes your gallery to be hosted!\n```\n- Check out your site at {username}.github.io/gallery 🎉✨!\n\n*Important notes:* To ⏭speed⏭ up the loading time of your gallery, please make sure to compress your images. If you're running this on a macOS system, this is done automatically for you using `sips`!\nIf you want Google Analytics, replace `_includes/ga.html` with your own snippet.\n\n\n\n## How It Works\nThere are two important pieces to gallery:\n\n### Album Generation\n`setup.command` goes through all of the folders in your `/photos/` directory. It collects all of the file paths of each photo in each album. It aggregates all of this data into one key file called `config.json`.\n\n### Client-side Generation\nOnce you've created your `config.json`, the website can now use that file to figure out which photos to show. It uses JavaScript(ES6🔥!) to layout your photos, grouping all of the photos per album.\n\n## Customizing your Gallery\nGallery supports 3 different kinds of layouts: rows, squares and columns. You can choose which type of layout you want to use by setting the `layout` variable in `script.js` to be either `SQUARES`, `ROWS` or `COLUMNS`.\n\nEach different layout has both its own and shared set of configuration options.\n\n### Shared\n- `spacing` (Integer): The vertical and horizontal distance that separates each photo from all adjacent photos. *Defaulted to 10*.\n- `shuffle` (Boolean): Toggle to shuffle or not to shuffle the photos. *Default is `false`*.\n\n### Column Configuration\n- `columns` (Integer): The number of columns for the layout. *Default is `3`*.\n\n### Square Configuration\n- `columns` (Integer): The number of columns for the layout. *Default is `3`*.\n- `maxHeight` (Integer): The max height in px for each photo. *Default is `400`*.\n\nColumns takes priority if both are set.\n\n### Row Configuration\n- `maxHeight` (Integer): The max height in px for each photo. *Default is `400`*.\n\n### Instagram\n- `instagram` (String): Your Instagram handle. If no string is passed, no footer\n  is rendered.\n\n\n## Fun Facts\n- No Bootstrap is used. AT ALL! 🔥🔥🔥\n- It uses ES6. NEW TECH! 🔥🔥🔥\n- It has no local dependencies. SAY WHAT! 🔥🔥🔥\n\n🔥🔥🔥\n\n---\n\nIf you enjoyed using Gallery, I'd love to see what you created with Gallery 🙌\n\nShare your gallery with me on this [thread](https://github.com/andyzg/gallery/issues/1)❤️!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyzg%2Fgallery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandyzg%2Fgallery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyzg%2Fgallery/lists"}