Urengi is built for products that have to be explained before they are bought. The site is a full narrative funnel rather than a landing page with a blog bolted on: the homepage runs hero, problem stats, how-it-works, differentiators, testimonial, an animated integrations orbit, pricing and an objections section, and it continues into a product page, a pricing matrix, an about page, a customer-story library, a filterable integrations directory, a blog, contact, sign-in and sign-up. It pairs warm amber on cream in light mode with stone in dark mode, Host Grotesk throughout, hand-built SVG product graphics instead of fake screenshots, and a CSS-first token architecture where a rebrand is one alias block. Twenty-five route files build seventy-two pages, and there is not one client-side island in the tree.
It is ideal for SaaS and B2B software companies, security, compliance and vendor-risk platforms, developer tools, fintech and insurtech products, data and analytics platforms, AI products, integration-heavy platforms, internal platform teams publishing externally, agencies building client product sites, seed and Series A company sites, and any team that wants a finished, fast, accessible product marketing site without assembling one from a component library.
Features
- Eight-section homepage funnel with hero, problem stats, how-it-works, differentiators, testimonial, integrations orbit, pricing and objections
- Product page with capability grid, risk heatmap, device-framed product mock and differentiator panels
- Pricing page with plan cards, a full feature matrix and an included-in-every-plan band
- About page with story, principles, milestones, team and careers sections
- Blog with pagination, category archives, author bylines, related posts, share row, reading aside and token-aware syntax highlighting
- Customer stories with industry archives, results bands, story asides and related-story navigation
- Integrations directory with category filtering, featured entries, per-integration detail pages, setup steps, permissions, an API band and a request form
- Sign-in and sign-up pages, legal pages driven by config, a custom 404, and a dev-only UI catalog at /examples/ui
- Four Zod-validated content collections (blog, authors, case studies, integrations) so bad frontmatter fails the build with the entry named
- Cross-entry invariants enforced at build time, not left to review: category labels, a single featured post, and four integration relationships Zod cannot express
- Forty-four UI primitives — button, dialog, dropdown, mega-menu, combobox, advanced select, tabs, table, pagination, the full form set, four motion primitives and the rest — each token-based and zero-JS unless interaction demands otherwise
- Six Resend-backed forms (newsletter, contact, sales enquiry, reference call, integration request, trial sign-up) with schema validation, spam gates and self-checked server code, shipping inert with a four-step connect walkthrough in each file
- Sign-in deliberately points at whichever identity provider you add rather than mailing a credential
- Typed per-page config in src/config/ — rebrand and re-copy most of the site without opening a component
- Config self-checks that verify every internal link points at a route that ships and that values repeated across files still agree
- CSS-first Tailwind v4 token architecture: palette aliases feed semantic runtime variables, which feed the utilities
- Light and dark modes with the theme set pre-paint, so there is no flash on load
- Motion catalog with scroll-driven extensions, a global prefers-reduced-motion guard and a master animation switch
- View transitions behind a config flag, with scripts that re-initialise through one shared contract
- Inlined SVG icon registry behind a typed <Icon /> — build-time only, nothing lands in client JS
- Owned SEO layer: canonical URLs, Open Graph, Twitter/X cards, JSON-LD from typed helpers, RSS, sitemap, robots.txt and llms.txt, with no SEO package
- Production build gate that fails if the site URL is still the placeholder, so the demo domain cannot reach a live site
- Redirects for designed-but-unbuilt routes, so a live demo never dead-ends on a link the design intends
- Responsive images through astro:assets and sharp
- Accessible skip link, semantic landmarks, labelled controls, visible focus states, keyboard-operable dialogs and a11y linting in CI
- Framework-free self-checks that run every *.test.ts under src/ and fail if they find none
- Strict TypeScript, ESLint, Prettier and astro check wired as one verification command
- Maintained wiki with a citation linter that fails when the docs drift out from under the code
- No runtime dependencies beyond Astro and Tailwind, no deploy adapter, and 100% static HTML that picks no host for you
Best Used For
- SaaS marketing websites
- B2B software product sites
- Security and compliance platforms
- Vendor risk and GRC tools
- Developer tools and API products
- Fintech and insurtech products
- Data and analytics platforms
- AI and machine learning products
- Integration-heavy platforms
- Infrastructure and DevOps products
- HR, legal and procurement software
- Startup launch and funding-round sites
- Product-led growth websites
- Agency-built client product sites
- Enterprise sales sites that need case studies and reference calls
- Product sites that need strong SEO, accessible design and fast static performance






