
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
tinyzap
Advanced tools
The easiest way to make Rails applications look great in Apple Messages, Facebook, LinkedIn, Twitter, and any other website that use Open Graph.
From the root of your Rails application, run:
$ bundle add "tinyzap"
Then run:
$ rails generate tinyzap:install
This creates a app/views/layout/application.opengraph.erb file and adds include TinyZap::OpenGraph to ApplicationController.
Add to your app/views/layouts/application.html.erb file:
<head>
<%= opengraph_meta_tags %>
</head>
That's it for the bare minimum! A screenshot of the top part of the webpage will appear by default for all open graph images. Custom badges are where its at though, so read on my friend.
Open graph data can be set from the view or controller via the opengraph method.
Here's a few ways to set opengraph data from a controller.
class PostsController < ApplicationController
before_action: :assign_opengraph_data
def edit
# This overrides the title that's set from `assign_opengraph_data`
opengraph.title = "Editing #{@post.title}"
end
protected
def assign_opengraph_data
opengraph.title = @post.title
opengraph.description = @post.summary
# Displays the first image of a blog post, instead of a screenshot, for the opengraph image.
# Assumes the image was managed via ActiveStorage.
opengraph.image = url_for(@post.images.first)
end
end
OpenGraph data may also be set from the view:
<%
opengraph.title = @post.title
opengraph.description = @post.summary
%>
<h1><%= @post.title %></h1>
<article><%= @post.body %></article>
The real power in TinyZap Open Graph is creating custom badges via the opengraph format in your rails views. For the example below, we'll create an Open Graph badge for a blog post. Assuming a blog application has a /posts/:id with a view at app/views/posts/show.html.erb, we'd create a new view with the opengraph format:
$ touch ./app/views/posts/show.opengraph.erb
Open the file and add something like:
<h1><%= @post.title %></h1>
<article><%= truncate @post.body, length: 100 %></article>
<p>This article will take <%= time_to_read @post.body %> minutes to read</p>
The TinyZap screenshot service will take a screenshot of the content at this URL and use it for the Open Graph image.
The gem is available as open source under the terms of the MIT License.
FAQs
Unknown package
We found that tinyzap demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.