Skip to content

Commit

Permalink
Add fund management page + update homepage and nav
Browse files Browse the repository at this point in the history
  • Loading branch information
devin-black committed Mar 18, 2024
1 parent a9afdf8 commit e9e4e30
Show file tree
Hide file tree
Showing 12 changed files with 607 additions and 5 deletions.
4 changes: 4 additions & 0 deletions config/links.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ export const links = {
forum: 'https://gov.centrifuge.io/',
prime: 'https://forms.gle/kt1GShLcWapMGzjs7',
primeBlogPost: 'https://centrifuge.mirror.xyz/KyrMWLKMccFCNfSlvjxe7uyhba7oLrUzlBuZ7GQTn6s',
fundManagement: 'https://example.com/fund-management',
fundManagementBlogPost: 'https://example.com/fundManagementBlogPost',
podcast: 'https://open.spotify.com/show/3mcy2eIFO9qUFlxhZeYMV4',
announcements: 'https://fixing.finance',
bis: 'https://www.bis.org/publ/work1116.htm',
hkma: 'https://www.hkma.gov.hk/media/eng/publication-and-research/research/research-memorandums/2023/RM04-2023.pdf'
}
14 changes: 12 additions & 2 deletions config/menu.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
import { links } from './links'

const menu = [

{
label: 'Prime',
href: '/prime',
label: 'Products',
items: [
{
label: 'Fund Management',
href: '/fund-management',
},
{
label: 'Centrifuge Prime',
href: '/prime',
},
]
},
{
label: 'News',
Expand Down
110 changes: 110 additions & 0 deletions data/fund.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
{
"slug": "/fund-management",
"seo": {
"title": "Onchain Fund Management\n",
"description": "Centrifuge's fund management platform brings the full power of onchain finance to asset managers and investment funds."
},
"hero_prime": {
"pretitle": "ONCHAIN FUND MANAGEMENT",
"title": "Asset Management, \nOnchain",
"body": "Centrifuge's fund management platform brings the full power of onchain finance to asset managers and investment funds. Capture your entire fund's onchain and offchain portfolio positions, transactions, and operations data in a secure, immutable, and reportable manner.",
"image": "./images/fund-management/fund1.png"
},
"prime_partners": {
"title": "Built from years of experience bringing RWAs to DeFi",
"items": [
{
"image": "./images/prime/partner/the-credit-group.svg",
"alt": "The Credit Group"
},
{
"image": "./images/prime/partner/steakhouse-financial.svg",
"alt": "Steakhouse Financial"
},
{
"image": "./images/prime/partner/rwa.svg",
"alt": "rwa.xyz"
},
{
"image": "./images/prime/partner/aave.svg",
"alt": "Aave"
},
{
"image": "./images/prime/partner/blocktower.svg",
"alt": "Blocktower"
},
{
"image": "./images/prime/partner/maker.svg",
"alt": "Maker"
},
{
"image": "./images/prime/partner/circle.svg",
"alt": "Circle"
}
]
},
"prime_targets": {
"title": "Your new central control panel",
"body": "Tokenize your funds and streamline access to all necessary service providers and investors, saving operational overhead and increasing liquidity. Key benefits of Centrifuge's Onchain Fund Management Platform include:",
"items": [
{
"title": "Reporting & Transparency",
"body": "All portfolio positions, transactions, fees, and operational data – from offchain and onchain sources – are captured and reported for trustless verification."
},
{
"title": "Operational Efficiency",
"body": "Fund operations are automated to improve reporting cadence and more easily integrate with third-party services to reduce operational overhead and cost."
},
{
"title": "Securitization",
"body": "Enables pooling of tokenized assets into tradable instruments with tranching, waterfall distributions, loan tape management and investor management for enhanced liquidity and risk distribution."
},
{
"title": "Programmability",
"body": "Funds can be more easily integrated with other programmable interfaces to dynamically interface with DeFi protocols with programmable constraints."
}
]
},
"rwa_yields": {
"title": "Streamline fund operations",
"body": "Easily construct portfolios that offer exactly the right risk profile and incorporate the unique complexities of markets. From single tranche liquid portfolios to multi-tranche asset-backed offerings, automatically manage loan tape, calculate distribution waterfalls, net-asset-valuations, and asset-performance. All onchain.",
"image": "./images/fund-management/fund-management-2.png"
},
"rwa_usp": {
"title": "Why build onchain?",
"body": "Save costs and create efficiencies with real-time, accurate access to holdings, fully integrated with the necessary service providers for operating an institutional-grade offering. ",
"items": [
"Reduce yield spreads by 25 bps",
"Improve liquidity by 5.3%",
"Save up to 150 bps running the fund"
],
"image": "./images/fund-management/fund2.png"
},
"prime_integration": {
"title": "The home for all things real-world assets",
"body": "Centrifuge Prime combines the infrastructure for the tokenization and management of real-world assets, with an ecosystem of critical partners and services, to provide the assets and opportunities that DAOs and DeFi protocols want to see.",
"items": [
{
"image": "./images/prime/integration-infrastructure.svg",
"title": "Infrastructure",
"body": "RWA tokenization, securitization, and a compliant out of the box legal framework"
},
{
"image": "./images/prime/integration-ecosystem.svg",
"title": "Ecosystem",
"body": "Decentralized and objective credit risk reporting and analysis functions for assets and portfolio"
},
{
"image": "./images/prime/integration-assets.svg",
"title": "Assets",
"body": "Diversified asset classes including US Treasury Bills, Asset Backed Securities, Real Estate, and more"
}
]
},
"prime_cta": {
"title": "Ready to launch \nyour fund onchain?",
"items": [
"Centrifuge's fund management platform is available now for funds and asset managers looking to launch tokenized investment products and strategies."
]
}
}
4 changes: 2 additions & 2 deletions data/home.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@
]
},
"prime_banner": {
"title": "Introducing Liquidity Pools:\nReal-World Assets Everywhere",
"body": "Centrifuge Liquidity Pools allow users on any supported chain — beginning with Ethereum, Arbitrum, and Base — to invest in Centrifuge’s pools of real-world assets"
"title": "Onchain Fund Management",
"body": "Centrifuge's fund management platform brings the power of onchain finance to asset managers and investment funds. Capture your fund's onchain and offchain portfolio positions, transactions, and operations data — all via one platform."
},
"news_section": {
"title": "Centrifuge News",
Expand Down
59 changes: 59 additions & 0 deletions src/components/BulletListFund.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import {Text, Stack, IconArrowRight} from '@centrifuge/fabric'
import * as React from 'react'
import styled from 'styled-components'
import ReactMarkdown from "react-markdown";
import {links} from '../../config/links'

type BulletListProps = {
items: string[]
}

const Icon = styled(IconArrowRight)`
vertical-align: middle;
width: 1em;
height: 1em;
margin-right: 0.5em;
transform: rotate(45deg);
`

export function BulletListFund({items}: BulletListProps) {
return items && items.length ? (
<Stack as="ul" gap={1}>
<Text as="li">
<Icon/>
Reduce yield spreads by 25 bps (
<Text
as="a"
href={links.bis}
rel="noopener noreferrer"
target="_blank"
variant="body1"
style={{textDecoration: 'underline'}}
>
BIS
</Text>
)
</Text>
<Text as="li">
<Icon/>
Improve liquidity by 5.3% (
<Text
as="a"
href={links.hkma}
rel="noopener noreferrer"
target="_blank"
variant="body1"
style={{textDecoration: 'underline'}}
>
HKMA
</Text>
)
</Text>
<Text as="li">
<Icon/>
Save up to 150 bps running the fund
</Text>
</Stack>
) : null;
}

57 changes: 57 additions & 0 deletions src/components/FundCta.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import * as React from 'react'
import { graphql } from 'gatsby'
import { AnchorButton, Box, Container, Divider, Grid, Stack, Text } from '@centrifuge/fabric'
import { Reveal, RevealWrapper } from './Reveal'
import { links } from '../../config/links'

export const query = graphql`
fragment PrimeCtaFragment on DataJsonPrime_cta {
title
items
}
`

export type FundCtaProps = {
title: string
items: string[]
}

export function FundCta({ title, items }: FundCtaProps) {
return (
<RevealWrapper>
<Box as="section" mb="1px" px={2} py={[10, 10, '150px']} backgroundColor="textPrimary">
<Container maxWidth="containerHeader">
<Stack gap={3}>
<Reveal>
<Text as="h2" variant="heading2b" color="textInverted" style={{ whiteSpace: 'pre' }}>
{title}
</Text>
</Reveal>

<Reveal staggerIndex={1}>
<Divider borderColor="textDisabled" />
</Reveal>

<Grid gridTemplateColumns={['1fr', '1fr', '2fr 1fr', '1fr 1fr']} gap={4}>
<Grid as="ul" columns={[1, 2]} equalColumns gap={[2, 6]}>
{items.map((entry, index) => (
<Reveal key={index} as="li" staggerIndex={index + 2}>
<Text as="p" color="textInverted">
{entry}
</Text>
</Reveal>
))}
</Grid>

<Reveal justifySelf={['start', 'start', 'end']} staggerIndex={4}>
<AnchorButton href={links.fundManagement} rel="noopener noreferrer" target="_blank">
Join Beta
</AnchorButton>
</Reveal>
</Grid>
</Stack>
</Container>
</Box>
</RevealWrapper>
)
}
81 changes: 81 additions & 0 deletions src/components/FundFeatures.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import * as React from 'react'
import {graphql} from 'gatsby'
import {AnchorButton, Container, Shelf, Stack, Text, Grid} from '@centrifuge/fabric'
import {links} from '../../config/links'
import {Reveal, RevealWrapper} from './Reveal'

export const query = graphql`
fragment PrimeTargetsFragment on DataJsonPrime_targets {
title
body
items {
title
body
}
}
`

export type FundFeaturesProps = {
title: string
body: string
items: {
title: string
body: string
}[]
}

export function FundFeatures({title, body, items}: FundFeaturesProps) {
return (
<RevealWrapper>
<Stack as="section" px={2} gap={[4, 4, 6, 10]}>
<Container>
<Stack gap={2}>
<Reveal as={Shelf} justifyContent="space-between" alignItems="center" gap={1}>
<Text as="h2" variant="heading2b">
{title}
</Text>

<AnchorButton
href={links.fundManagement}
rel="noopener noreferrer"
target="_blank"
variant="secondary"
style={{whiteSpace: 'nowrap'}}
small
>
Join Beta
</AnchorButton>
</Reveal>

<Reveal staggerIndex={1}>
<Text as="p" color="textSecondary" variant="body1">
{body}
</Text>
</Reveal>
</Stack>

<Grid as="ul" columns={[1, 2, 2]} gap={4} mt={[6, 6, 8, 10]}>
{items.map((entry, index) => (
<Reveal as="li" staggerIndex={index + 2} key={index}>
<Item {...entry} />
</Reveal>
))}
</Grid>
</Container>
</Stack>
</RevealWrapper>
)
}

type ItemProps = FundFeaturesProps['items'][number]

function Item({title, body}: ItemProps) {
return (
<Stack gap={1}>
<Text as="h3" variant="heading4b">
{title}
</Text>
<Text as="p">{body}</Text>
</Stack>
)
}
Loading

0 comments on commit e9e4e30

Please sign in to comment.