All Projects β†’ chrisvxd β†’ Puppeteer Social Image

chrisvxd / Puppeteer Social Image

Licence: mit
Create dynamic social share images using HTML + CSS via puppeteer 🎁

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Puppeteer Social Image

Social Links
Simple library to count shares and generate share buttons
Stars: ✭ 91 (-35.46%)
Mutual labels:  opengraph, twitter, facebook
Socialmanagertools Gui
πŸ€– πŸ‘» Desktop application for Instagram Bot, Twitter Bot and Facebook Bot
Stars: ✭ 293 (+107.8%)
Mutual labels:  twitter, facebook, puppeteer
Ultimate Metatags
A large snippet for your page's <head> that includes all the meta tags you'll need for OPTIMAL sharing and SEO. Extensive work has been put into ensuring you have the optimal images for the most important social media platforms.
Stars: ✭ 24 (-82.98%)
Mutual labels:  opengraph, twitter, facebook
Easylogin
Login effortlessly with different social networks like Facebook, Twitter or Google Plus
Stars: ✭ 90 (-36.17%)
Mutual labels:  twitter, facebook
Daily Coding Problem
Series of the problem πŸ’― and solution βœ… asked by Daily Coding problemπŸ‘¨β€πŸŽ“ website.
Stars: ✭ 90 (-36.17%)
Mutual labels:  twitter, facebook
Django Graphql Social Auth
Python Social Auth support for Graphene Django
Stars: ✭ 90 (-36.17%)
Mutual labels:  twitter, facebook
Network Avatar Picker
A npm module that returns user's social network avatar. Supported providers: facebook, instagram, twitter, tumblr, vimeo, github, youtube and gmail
Stars: ✭ 74 (-47.52%)
Mutual labels:  twitter, facebook
Socialcount
Unmaintained (see the README): Simple barebones project to show share counts from various social networks.
Stars: ✭ 1,382 (+880.14%)
Mutual labels:  twitter, facebook
Socialauthhelper
Easy social network authorization for Android. Supports Facebook, Twitter, Instagram, Google+, Vkontakte. Made by Stfalcon
Stars: ✭ 94 (-33.33%)
Mutual labels:  twitter, facebook
Socialcounters
jQuery/PHP - Collection of Social Media APIs that display number of your social media fans. Facebook Likes, Twitter Followers, Instagram Followers, YouTube Subscribers, etc..
Stars: ✭ 104 (-26.24%)
Mutual labels:  twitter, facebook
Flutter auth buttons
Flutter buttons for social platforms
Stars: ✭ 114 (-19.15%)
Mutual labels:  twitter, facebook
React Share Button
πŸ“± React share button component with web-share api and fallback modal with native intent urls
Stars: ✭ 89 (-36.88%)
Mutual labels:  twitter, facebook
Social Login Helper Deprecated
A simple android library to easily implement social login into your android project
Stars: ✭ 81 (-42.55%)
Mutual labels:  twitter, facebook
Spam Bot 3000
Social media research and promotion, semi-autonomous CLI bot
Stars: ✭ 79 (-43.97%)
Mutual labels:  twitter, facebook
Spring Webmvc Pac4j
Security library for Spring Web MVC: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 110 (-21.99%)
Mutual labels:  twitter, facebook
Faitagram
(Doesn't work anymore)
Stars: ✭ 117 (-17.02%)
Mutual labels:  twitter, facebook
Learning Social Media Analytics With R
This repository contains code and bonus content which will be added from time to time for the book "Learning Social Media Analytics with R" by Packt
Stars: ✭ 102 (-27.66%)
Mutual labels:  twitter, facebook
Assent
Multi-provider framework in Elixir
Stars: ✭ 126 (-10.64%)
Mutual labels:  twitter, facebook
Fb Delete
Delete your Facebook content by year and category
Stars: ✭ 72 (-48.94%)
Mutual labels:  facebook, puppeteer
Skraper
Kotlin/Java library and cli tool for scraping posts and media from various sources with neither authorization nor full page rendering (Facebook, Instagram, Twitter, Youtube, Tiktok, Telegram, Twitch, Reddit, 9GAG, Pinterest, Flickr, Tumblr, IFunny, VK, Pikabu)
Stars: ✭ 72 (-48.94%)
Mutual labels:  twitter, facebook

puppeteer-social-image

Build Status NPM JavaScript Style Guide

Create dynamic social share images using HTML + CSS via puppeteer. For a hosted version, see OGIMPACT.

img

Installation

npm i puppeteer-social-image --save

Usage

Render "basic" template

import renderSocialImage from "puppeteer-social-image";

renderSocialImage({
  template: "basic",
  templateParams: {
    imageUrl:
      "https://images.unsplash.com/photo-1557958114-3d2440207108?w=1950&q=80",
    title: "Hello, world"
  },
  output: "image.png",
  size: "facebook"
});

Render custom template

import renderSocialImage from "puppeteer-social-image";

renderSocialImage({
  templateBody: '<div class="Main">Hello, {{name}}!</div>',
  templateStyles: ".Main { color: blue; }",
  templateParams: {
    name: "Jane"
  },
  output: "image.png",
  size: "facebook"
});

Render on a serverless function

Add the puppeteer-serverless package, and pass it to the render function via the browser option:

import puppeteer from "puppeteer-serverless";
import renderSocialImage from "puppeteer-social-image";

export default async () => {
  await renderSocialImage({
    template: "basic",
    templateParams: {
      imageUrl:
        "https://images.unsplash.com/photo-1557958114-3d2440207108?w=1950&q=80",
      title: "Hello, world"
    },
    browser: await puppeteer.launch({})
  });
};

API

renderSocialImage

Returns Promise<Buffer>.

Type: function (opts): Promise

  • opts (object) Configuration options
  • opts.template (string) Name of a prebuilt template. One of:
    • basic (default)
    • article
    • fiftyfifty
  • opts.templateParams (object) Params to be passed to the template. If using prebuilt templates, see below for APIs.
  • opts.templateBody (string?) Handlebars template to render in the body for a custom template. Populated with templateParams.
  • opts.templateStyles (string?) CSS to use for a custom template. Passed to the head.
  • opts.customTemplates (object?) Define multiple custom templates
    • opts.customTemplates[key] (string) Name for the customTemplate
    • opts.customTemplates[key].templateBody(string) Handlebars template to render in the body for this custom template. Populated with templateParams.
    • opts.customTemplates[key].templateStyles(string) CSS to use for this custom template. Passed to the head
  • opts.output (string?) Path to write image
  • opts.type (string?) Type of the output image. Overwritten by output path extension. One of:
    • jpeg (default)
    • png
  • opts.jpegQuality (number, default 90) JPEG image quality
  • opts.size (string?) Preset size for the image. One of:
    • facebook
    • twitter (default)
    • ig-landscape
    • ig-portrait
    • ig-square
    • ig-story
    • WIDTHxHEIGHT Any width, height pairing
  • opts.browser (Browser?) Instance of puppeteer's Browser to use instead of the internal version. Useful for serverless functions, which may require chrome-aws-lambda. This browser instance will not be automatically closed.
  • opts.preview (boolean?) Render the image with a chrome, as it would look on Twitter

Templates

basic

A basic template to show some short text overlaying an image.

basic template preview

API

  • title (string) Title text for the image
  • logo (string?) URL to a logo to render above the text
  • imageUrl (string?) URL for the background image
  • unsplashId (string?) Unsplash ID for the background image
  • unsplashKeywords (string?) Unsplash keywords to use for the background image
  • backgroundImageAnchor (string?, default "C") Anchor point for the background image. Valid options are C, N, NE, E, SE, S, SW, W or NW.
  • backgroundImageOverlay (boolean?, default true) Add a dark overlay on top of the background image
  • background (string?) CSS background prop. Prefer imageUrl if using image.
  • color (string?, default "white") Color for the title
  • googleFont (string?) Name for Google font to load
  • fontFamily (string?, default '"Lato", "Helvetica Neue", sans-serif') Font family
  • fontSize (string?, default "128px") Font size
  • watermark (string?) Watermark text to render at the bottom of the image.

article

A template for an article, with an eyebrow that can be used for dates

article template preview

API

  • title (string) Title text
  • subtitle (string?) Subtitle text
  • eyebrow (string) Eyebrow text, rendered above the title, like a date
  • logo (string?) URL to a logo to render above the text
  • imageUrl (string?) URL for the background image
  • unsplashId (string?) Unsplash ID for the background image
  • unsplashKeywords (string?) Unsplash keywords to use for the background image
  • backgroundImageAnchor (string?, default "C") Anchor point for the background image. Valid options are C, N, NE, E, SE, S, SW, W or NW.
  • backgroundImageOverlay (boolean?, default true) Add a dark overlay on top of the background image
  • background (string?) CSS background prop. Prefer imageUrl if using image.
  • color (string?, default "white") Color for the text
  • googleFont (string?) Name for Google font to load
  • fontFamily (string?, default '"Lato", "Helvetica Neue", sans-serif') Font family
  • watermark (string?) Watermark text to render at the bottom of the image.

fiftyfifty

A multiuse template for an array of content

fiftyfifty template preview

API

  • title (string) Title text
  • subtitle (string?) Subtitle text
  • footer (string) Footer text
  • split (straight | diagonal | diagonal-reverse, default straight) Style of split between content and image
  • logo (string?) URL for the logo image
  • imageUrl (string?) URL for the background image
  • unsplashId (string?) Unsplash ID for the background image
  • unsplashKeywords (string?) Unsplash keywords to use for the background image
  • googleFont (string?) Name for Google font to load
  • fontFamily (string?, default '"Lato", "Helvetica Neue", sans-serif') Font family
  • watermark (string?) Watermark text to render in the bottom left. Same as footer.

License

MIT Β© Chris Villa

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].