How We Built a Faster Way to Share Our Work
We built a simple internal tool that turns our video library into curated client portfolios in seconds. Using Ghost as a backend and a custom Node/React frontend, our team can quickly assemble branded portfolio pages and share our work more easily.
Published
March 12, 2026
Author
Tiny Ark
Category
case study
Studio
Tiny Ark
At pretty much all companies, your work and reputation is what wins you the next job. So being able to quickly send the right examples to a client matters.
For a long time we did this using Vimeo collections. It worked, but it was always a bit clunky. Historically, before Frame.io, we used Vimeo as our review tool, and over time our library had filled up with not just final videos, but also work-in-progress cuts, review versions and alternate edits. Searching for the right video often meant digging through several versions of the same project. Because Vimeo truncates titles in search results, you sometimes couldn’t even see the version number at the end of the title.
Putting together a collection usually meant logging in, searching for the project, opening a few versions to confirm which one was the final cut, adding it to a collection, and repeating that process a few more times. Eventually you’d end up with a link you could send to a client, but it was still just a standard Vimeo page.We wanted something simpler and a bit more considered.
The goal was to make it really quick for anyone on the team to create a portfolio link, without having to dig around inside Vimeo. We also wanted the videos to live on our own domain and to have a bit more context around them. A short write-up, some stills from the piece, maybe a behind-the-scenes clip. Instead of a grid of embeds, each project would have a page that actually gave the work some space to live and breathe.

The solution we ended up with was surprisingly clever.
We installed Ghost CMS on our own server and started using it as a kind of internal catalogue of our finished projects. Ghost is usually used for blogs, but it works really well as a structured content database and it has a very clean API.
Each finished video now lives in Ghost as its own post. The post includes the embedded Vimeo video, a short write-up about the project, still images from the film, and any additional material we want to include. Because only final videos go into Ghost, we no longer have to worry about sorting through different revisions.
Ghost basically became the “brain” that stores all of our work.
From there we wrote our own custom frontend web app that pulls the content from Ghost using its API. Ghost essentially acts as the backend — a structured library of all our finished projects — while the frontend controls how everything is displayed and assembled into portfolios.

The app itself is built with Node, React and TypeScript, which gave us a flexible way to build both the public-facing portfolio pages and the internal tools the team uses. Ghost handles the content, and our app handles how that content is organised, filtered and presented.
Alongside the frontend we built a simple internal dashboard that lets anyone on the team log in and create a new portfolio in a few seconds.
The process is straightforward: create a portfolio, add a title and optional message for the client, then select the projects you want from our library. All the videos appear as thumbnails and can be searched or filtered by category, so finding the right work is quick. Once selected, the projects can be re-arranged by simply dragging and dropping them into the order you want, and you can also choose which project should provide the cover image for the portfolio header. Once everything looks right, the portfolio is generated instantly.

Each portfolio page has a header image, a personalised title and message, and a grid of the selected videos. When you hover over a project, a short preview plays automatically, and clicking into it opens the full project page with the video, still images and additional context about the piece.
One thing we noticed almost immediately was that people on the team started creating portfolios far more often. The old Vimeo workflow had just enough friction that it sometimes felt like a chore. Now that it takes less than half a minute, it’s become something people do all the time.
Another small benefit is how people interact with the project pages. Viewers often skim the short description and look through the stills before watching the video. That little bit of context seems to make them more interested in the work, and it turns the video from just a link into something that feels more like a case study.
In the end this wasn’t a huge technical project. It was simply a better way of organising and presenting the work we already had. But it’s made a noticeable difference to how easily we can share our portfolio and how the work is experienced when people see it. It’s also a good reminder that sometimes the best tools aren’t off-the-shelf products, but small custom solutions built around the way your team actually works.
You can see what one of these portfolios looks like here: Example Portfolio.
