From a JSON file to 1,500 company pages in under two months.
Dialectica wanted a free, searchable version of their Origin database on their main site. It didn't fit in Webflow CMS, so I built it as an Astro app on Webflow Cloud, on the same domain.
- Client
- Dialectica · Financial data and intelligence
- Role
- Technical direction, Application development, Data import, Programmatic SEO, Webflow Code Components, Ongoing retainer
- Stack
- Webflow Cloud, Astro, React, Neon (Postgres), TypeScript

They asked for their company database inside the Webflow CMS
They needed a data product next to the site, on the same domain.
In this case
Dialectica runs Origin, a deal intelligence platform for private equity, venture capital and corporate strategy teams. They wanted part of it on the public web: a free, searchable version of the company database, on their main domain.
Their first question was whether the data could go into the Webflow CMS. I worked out quickly that it couldn’t, at least not properly.
Why not the Webflow CMS
Origin had more than 10,000 records, and the CMS limit for the project was 10,000 items, with Dialectica’s own content already using part of it. The data was also relational: industries, investors, ownership, financial ranges. And the public version needed search, filters and fields that are only partly visible.
Forcing that into a CMS would have made the project fragile from the first day.
Same domain, separate app
The domain mattered. A subdomain would have been easier, but it would have separated Origin from the rest of dialectica.io. The target was dialectica.io/origin.
My first plan was an Astro app on Cloudflare, with a proxy to make it appear under /origin. It would have worked, but it added infrastructure before the product had proved anything. Then Webflow Cloud launched, and it solved exactly that: Origin runs as an Astro app on the same domain, and the marketing site stays in Webflow.
Astro renders the pages, React handles the filters and forms, and the data lives in Postgres on Neon. Dialectica sent the companies as JSON exports, which I imported with Python scripts.
A prototype in days
With the first JSON export, I had a working prototype in a few days. AI tools helped with the TypeScript, the import scripts, the React components and the debugging on the edge runtime.
The work behind it was still real. Company, industry and filtered listing pages all render from database queries. The filters cover industry, location, ownership type, revenue range, growth, sorting and pagination. Every page has its own metadata, structured data and canonical URL, and a sitemap lists them all.
The SEO direction came from Samuel Olsson at Kurve. My part was turning it into a system that makes indexable pages out of structured data.
Useful, but not free
The public pages had to show what Origin knows without giving the dataset away. So the masking happens on the server: revenue figures, investor names and other gated fields are transformed before the HTML is sent. The blur on top is only visual.
Visitors see what kind of intelligence is there, and ask for access when they need the detail.
Launched, then kept growing
The MVP went live in under two months, with 1,500+ company pages. I worked directly with Panagiotis Papachristofilou, Dialectica’s Global Head of Marketing and Communications. Soon after launch, some Origin pages reached the first page of Google for relevant searches.
The architecture is built to pass 10,000 records without changing. Adding companies means importing data, and adding page types means adding Astro routes.
Dialectica kept me on a retainer. Since then I’ve built Webflow Code Components that bring Origin’s company cards into the marketing site, and their careers site.
What stood out most was the combination of responsiveness and quality. Deadlines were always met without the back-and-forth that typically slows projects down. The delivery was virtually bug-free, and required minimal revisions, which speaks volumes about the quality of work and attention to detail.
What changed
Four things that are different now.
01
Origin on the main domain
dialectica.io/origin runs as an Astro app on Webflow Cloud, next to the Webflow marketing site.
02
A database, not a CMS
1,500+ companies in Postgres, on an architecture built to pass 10,000 records without changes.
03
Valuable without giving it away
Gated fields are masked on the server before the page is sent. The blur is only the visual layer.
04
Pages Google can index
Company and industry pages with their own metadata, structured data and a sitemap. Some reached Google's first page soon after launch.
New website
