Now booking enterprise content platform builds for 2026. Contact us

All work Case study
01 Intro · Coinpaper · Crypto news & analytics

Coinpaper's crypto news platform runs on Strapi and Next.js and reached 100,000+ monthly users, with WAYF on the build, the brand, and the design.

Coinpaper is a real-time window into the crypto market: prices, trading volumes, market capitalisation, and the news and analysis around them, in one place. We built the content platform behind it. Editors write, schedule, and publish in a Strapi CMS we extended for a crypto newsroom, and readers get Next.js pages generated ahead of time and refreshed in the background. The work started with Coinpaper's brand and UX, and we still ship maintenance and new features for the platform.

Coinpaper Web3 · News · Analytics
Coinpaper — real-time crypto news and analytics platform

02 At a glance
100k+
Monthly users on the platform
3
Developers on the first release
Ongoing
Maintenance and new features we still ship
  • Strapi CMS
  • Next.js front end
  • Custom rich-text editor
  • Version history with restore
  • Scheduled publishing
  • Algolia search

03 In the client's words

WAYF's partnership has been instrumental in realising our vision for Coinpaper. Their expert branding, UX/UI design, and technical prowess led to the creation of a user-centric platform that's rapidly become a trusted source for cryptocurrency insights.

Jacob Kozakiewicz Chief Product Officer Coinpaper

04 The challenge

A trustworthy, real-time source for Web3 asset data. Groundwork for the future of decentralised media.

Coinpaper set out to be the place people go for current data and insight on Web3 asset prices, and to lay groundwork for the future of decentralised media.

Coinpaper is also a publisher. Articles have to go out on time, sit next to live market data, and turn up in search. Editors need to drop a price chart or a tweet into an article, schedule it, and check how it looks before it goes live. Readers need pages that load fast and a site they trust enough to come back to.


05 How we approached it

Brand and UX came first, then an MVP scoped around four requirements. Swift page loads, an intuitive CMS, live content updates, and a solid developer experience.

  1. Business analysis and branding.

    We opened with Coinpaper's idea for a curated online magazine and worked through branding directions and customer-oriented benchmarks together.

  2. UX and UI design.

    We settled the communication approach, then finalised a high-fidelity set of web and mobile screens that established the product's voice.

  3. MVP scoping.

    We scoped the first version around those four requirements, and three developers built it. Page speed and live updates set the shape of the Next.js front end. The CMS requirement drove the custom work inside Strapi, because the editors would work in it for every article.


06 Picking the right tech for the job

Strapi for the newsroom, Next.js for the readers. PostgreSQL, Redis, Cloudinary, and Algolia around them.

We built the CMS on Strapi 3 with PostgreSQL. It gave Coinpaper's editors a working admin panel from the first release, with draft and publish on every editorial content type. Where the newsroom needed more than the defaults, we built on Strapi's plugin system, lifecycle hooks, and custom endpoints.

Redis sits in front of the API and caches content for 24 hours, search results for 10 seconds, and prices for 60. Cloudinary stores uploads, and Algolia indexes each article as it publishes.

The front end is Next.js with React and TypeScript. Article and subcategory pages share one catch-all route that Next.js generates statically and regenerates in the background every ten minutes. A new article URL renders on its first request and is cached from then on, so publishing never waits for a site rebuild. The homepage, search, collections, and ranked lists render on each request.

Data comes over REST. Strapi's documentation plugin publishes an OpenAPI spec, and Open API Generator turns it into a typed client, so the front end codes against the CMS's own field names and types. react-query manages fetching. Styling runs on styled-components, Tailwind, and twin.macro, and images go through next/image with a Cloudinary loader.

We deployed the CMS to Fly.io, with separate staging and production environments and Redis as its own app, and shipped every change through GitHub Actions.


07 What we built for the editors

Editors drop live price charts, tweets, and related articles straight into the text. Every save is a snapshot they can restore, and articles publish on schedule.

  1. A rich-text editor built for crypto coverage.

    We built a custom Slate editor as a Strapi plugin. Besides links, emoji, and images from the media library, editors can insert tables, tweet embeds, a related-article block, and an inline price chart for a tracked asset.

  2. Version snapshots editors can restore.

    A versioning plugin stores a snapshot of the entry on every save. The Snapshots card in the edit view lists them, and an editor can bring back any earlier version.

  3. Scheduling and draft preview.

    Editors set a publish time on the article, and a job that runs every minute publishes it when that time arrives. Drafts open in Next.js Preview Mode, so an editor reads the article in the site's own layout before it goes out. Once it is live, the admin links straight to the published page.

  4. Flags that lay out the homepage.

    Each article carries Editors' Pick, Hot, Featured, and Sponsored flags. The homepage fills four Editors' Picks, three Hot slots, and two Featured slots from them. A Featured article never repeats in the Picks or Hot lists, and Sponsored adds a badge to the article itself. Editors reorder the navbar's categories and subcategories by drag and drop, and choose which coins appear in the homepage price ticker.

  5. What happens on save and publish.

    Lifecycle hooks assign the author from the logged-in writer, calculate read time, and validate the article before it publishes. They also keep the URL routing table in sync, add or remove the article in Algolia, generate its text-to-speech audio version, and clear the homepage, routing, and feed caches. In the edit view, the admin warns when a description runs past its limit and shows the last publication date.


08 What we built for the readers

Top articles re-ranked every morning from 30 days of pageviews. Live CoinGecko prices and Algolia search alongside them.

At 06:00 each day the CMS pulls 30 days of pageviews from the GA4 Data API and ranks the top articles and top subcategories. The homepage shows the leading subcategories with three articles each, so its layout follows what readers open. The same job refreshes the top 100 assets from CoinGecko.

CoinGecko also supplies current prices with 24-hour change and the market charts behind the price blocks in articles. Prices stay in the cache for 60 seconds.

Search queries several Algolia indexes at once and returns a count for each facet, so readers can narrow the results. Every article ends with related articles, which the CMS scores for relevance, and a link to the next one. Readers can also listen to the article through its audio player.

For search engines, every page carries a canonical tag, Open Graph data, and a large Twitter card. The CMS regenerates the sitemap every hour and produces the RSS feed, and the site serves both from its own domain. Article URLs follow a short /{id}/{slug} pattern, external links carry nofollow, and robots.txt keeps crawlers off staging.


Coinpaper — real-time crypto prices, news, and market analysis.

09 Keeping the editor and the site in step

Editors see charts, tables, and tweets rendered by the same React components readers get. One private package serves the CMS and the site.

We split the shared UI out of the front end into a private package on GitHub Packages. It holds the theme and typography, headings, quotes, tables, tweets, links, tabs, and the price chart with its range tabs, built on recharts. The Next.js site and the Strapi editor both install it, so a table or chart in the editor renders with the code readers see.

The package has a 20 KB size budget for its ESM build and publishes through semantic releases, which took it from v0.2.0 to v0.10.2. Its components, and the front end's, go through Storybook with visual review in Chromatic.


10 The team behind Coinpaper

Founders who came out of Student Coin. Building crypto media on a fintech track record.

Coinpaper's founders know this market from the build side. Daniel Bihun had led go-to-market and brand across STC Ventures portfolio companies; Cezary Tabota had been COO at Student Coin through its growth years and has founded ventures of his own. Together they built Coinpaper into a crypto news platform reaching more than 100,000 monthly users.

  • Daniel Bihun, Co-Founder & Co-CEO of Coinpaper
    Daniel Bihun Co-Founder & Co-CEO

    Previously CMO across STC Ventures portfolio companies, leading global go-to-market and brand strategy in fintech.

  • Cezary Tabota, Co-Founder of Coinpaper
    Cezary Tabota Co-Founder

    Previously COO at Student Coin (2019–2024), scaling its blockchain-finance platform. Also founder of Adept Games.


11 The result

Coinpaper's editors can set the homepage, the navigation, and the publishing schedule from the CMS. 100k+ monthly users, and a partnership that continues.

Those changes need no developer and no deploy, because the homepage renders on each request and article pages regenerate in the background.

Coinpaper publishes real-time Web3 prices, news, and analysis, and it reached more than 100,000 monthly users. We still maintain the platform and ship new features for it.

A Strapi CMS, a Next.js front end, and one component package shared between them. Three developers built the first release.

We're booking content platform
engagements for 2026.

Twenty-five minutes to walk through the work and decide if we're the right team for it. Scoping and a fixed price come after.