A photographer centric stock photography website
Photoland is a complimentary stock photography platform designed to showcase photographers both online and offline. The objective was to develop a website that allows users to download high-resolution images at no cost while providing photographers with various options to monetize their work. Although the project was halted before the implementation of most monetization features, it continues to serve many users seeking unique images that are not available elsewhere.
Regarding the challenges faced, the technical requirements included: 1. Allowing photographers to register, upload images, and manage their availability. 2. Supporting a high volume of simultaneous uploads. 3. Ensuring quick access for users searching and downloading images. 4. Making the site localized and optimized for search engines. 5. Creating a back office for image approvals and labeling.
We addressed these requirements by utilizing Amplify, Cognito, and S3, which facilitated photographer sign-ups and assigned each user an IAM role for direct S3 uploads, ensuring optimal speed and scalability without barriers. The platform could handle numerous photographers uploading simultaneously, as S3 accommodates this. We developed the user interface with React and NextJS, enabling server-side rendering (SSR) to enhance SEO. Additionally, we integrated the Strapi headless CMS to support multilingual blog content. Profile edits for photographers were managed through Lambda and API Gateway. We implemented a Lambda trigger that labeled images using AWS Rekognition upon upload and generated thumbnails for them. A React-based back office was created for image approvals, with each approved image indexed in Elasticsearch along with its approved labels. We developed a microservice to retrieve images from Elasticsearch. Finally, we added CloudFront to ensure users could access images from the nearest geographical location.