Hackers love building projects! However, it requires way too much time and design knowledge to create a social preview image for every project. That's where Socialify comes into rescue!
What it does
Socialify let’s you easily create social preview images for GItHub projects with minimal effort to make sharing your projects easier. It comes with a ton of beautiful presets and options including custom logo, description, badges, and many handpicked fonts and backgrounds to choose from.
How We Built It
The frontend of the application is built on React with TS. The application uses Relay and GraphQL to communicate with GitHub API which is proxied through Lambda functions. Finally, the image service is also built on a Lambda function to dynamically serve images.
Open Source Tie-In
- Coding Style: ESLint, Prettier, Standard, Gitmoji
- Design Framework: ant-design
- Icons: devicon
- Project Management: GitHub Projects
- Code Review: GitHub Pull Request, VSCode Live Share
- CI: GitHub Actions
- CD/Hosting: Netlify
- Cloud Functions: Netlify
- CDN: CloudFlare
Challenges We Ran Into
One challenge we faced was setting up the image service, which can be quite resource intensive requiring a chromium instance to run. Instead of dealing with poor performance running chromium inside lambda, we opt to use Screenshotter - Screenshot as a service to handle image generation.
Another challenge we faced was performance degradation while maintaining certain application state inside url parameters which we resolved using a debouncer solution.
Accomplishments that We're Proud of
The simplicity of the application in its concept and design is definitely something to be proud off, it does one particular task and does it well.
What We've Learned
This project heavily leveraged open-source best principles in terms of Project Management, CI/CD, Code Review, Style Guidelines, etc. This was definitely a good learning experience in terms of open-source best practices and rapid development.
What's Next for Socialify?
Socialify in its core functionality is completed, there are definitely areas for growth and improvement especially on the image-service side to further improve loading speeds. Future growth on the Socialify will be based on community feedback
Pod 1.0.6 - Gull Requests
- Rahul Tarak
- Wei He