Git Product home page Git Product logo

photo-grid's Introduction

Photo Grid

Dynamic JSON Badge License: MIT Netlify Status

Javascript based self host-able photography portfolio coupled with Sanity headless CMS for asset management.

Product image

Features

A full list of features is available in the wiki section.

Documentation

For detailed documentation, please see the wiki which contains a getting started guide as well as other useful information.

Examples

See our demo site and examples from the community.

Support

If you need any help or have general questions, please post them in our discussions page and we'd be happy to help!.

photo-grid's People

Contributors

kwickramasekara avatar

Stargazers

 avatar Shane avatar Madushan Siriwardena avatar Eric Wallace avatar Sandalots avatar Ava Gaiety Wroten avatar Eric McCormick avatar

Watchers

 avatar

photo-grid's Issues

Escape key functionality doesn't seem to work in Edge

Expected: On the photo preview page, pressing Esc key should navigate back to the grid.

Actual: On Edge browser, this works only at random.

Additional details: Only tested in Edge and Safari and no issues noted in Safari.

Update Node for ENV

Node 20.6 supports env variables.

This would help remove dotenv package and keep deps light

Netlify Lighthouse

Tried enabling Netlify Lighthouse plugin, which

  1. Runs Lighthouse after every build
  2. Defaults to mobile test
  3. Yields low score for SEO as Netlify runs it on deploy permalinks which has noindex for crawlers (known issue)

Some of this can be changed with a netlify.toml file, but it may not be ideal to commit a host specific file to the repository.

Solution for now is to use pagespeed.web.dev

Set up foundation

  • Setup Monorepo
  • Setup 11ty
  • Setup Tailwind
  • Setup Linters
  • Setup Githooks
  • Setup Browserslist
  • Setup Sanity Studio
  • Update Readme
  • npm-run-all
  • Create photo-grid config file in root

Vite dev server should forward admin to its path with trailing slash

Expected: Visiting localhost:3333/admin should automatically redirect me to localhost:3333/admin/.

Actual: Visiting localhost:3333/admin does nothing and stays in the home page. This also breaks post-login redirect where it ends up in the homepage with a token in the address bar as opposed to being in the admin page.

Create Github releases

  • Should not have a requirement on providing changesets when committing as this can negatively affect UX for consumers
  • Github has an option to only create release note
  • Create actions for releasing major, minor and patch releases
  • npm version bump minor
  • Test this on a separate repo to make sure

Ref:
https://www.youtube.com/watch?v=_ueJ3LrRqPU

Fix dependency warnings

During installation, there's dependency warning for Styled components coming from Sanity Media plugin.

Plugin has to fix this issue in order to resolve warnings.

Make cache optional

New Sanity free pricing model is pretty generous and won't need to be so frugal

Update 11ty cache location

Seems a lot of packages are standardizing on where cache files are stored and we should align with this by placing 11ty's fetch data inside node_modules/.cache/11ty

Don't use Netlify / sanity to host photo-grid

Thank you for photo-grid, which looks nice.

Is that possible to not use sanity and netlify to host it?

I tried to use it locally, but I need a Sanity account, even on localhost...

Simplify configuration

Issue:
Right now, the author would have to create a .env file to set values required for Sanity. This might introduce friction to getting things started.

Solution:
These values get bundled up in the Sanity JS and you would still need an authorized account to make any changes to the dataset. Therefore, move these settings to photo-grid.json config file and add a recommendation to use environment variables in the readme.

Wiki documentation

Create a Github Wiki for the following:

  • Local development
  • Contributing
    • Link to board with todos (create a separate view?)
  • Setting up Netlify deployments (serving admin in a subdirectory, Sanity CORS, ENV variables)
  • Design thinking - Sanity API calls during build to run it as cheaply as possible. Considered client side JS as well
  • Photo vs image naming
  • How to choose a hosting platform (should support build hooks)
  • Github board
  • Adding content and publishing

Embed Sanity Studio

Sanity Studio can embedded into an existing app. This would make things much simpler and reduce package dependencies.

Refactor the code to nix monorepo setup and just setup Photo Grid as a single project with Sanity embedded as a subdirectory (/admin).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.