Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add fund management page + update homepage and nav #734

Merged
merged 7 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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://docs.google.com/forms/d/e/1FAIpQLSdoKKJkb8RDKJrSnWTnsb3VLkK-zDWWgXTX9q65qF8wcO9Aew/viewform',
fundManagementBlogPost: 'https://centrifuge.mirror.xyz/pn5NlZ5UY5pdtOy_FFZ1cNWr0Dn1QBk2yCeJ6ZXQQoc',
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_fund": {
"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/prime/hero-prime.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"
}
]
},
"fund_features": {
"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/fund1.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"
}
]
},
"fund_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
Binary file added data/images/fund-management/fund1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added data/images/fund-management/fund2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added data/images/posts/fund-management-blog.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions data/posts/posts.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
[
{
"date": "2024/03/18",
"outlet": "Centrifuge Blog",
"title": "Centrifuge Launches Onchain Fund Management Platform",
"body": "Announcing the launch of Centrifuge's fund management platform designed to onboard credit funds to public blockchains.",
"image": "../images/posts/fund-management-blog.png",
"alt": "",
"href": "https://centrifuge.mirror.xyz/pn5NlZ5UY5pdtOy_FFZ1cNWr0Dn1QBk2yCeJ6ZXQQoc"
},
{
"date": "2024/03/06",
"outlet": "Centrifuge Blog",
Expand Down
58 changes: 58 additions & 0 deletions src/components/BulletListFund.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import {Text, Stack, IconArrowRight} from '@centrifuge/fabric'
import * as React from 'react'
import styled from 'styled-components'
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 FundCtaFragment on DataJsonFund_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 FundFeaturesFragment on DataJsonFund_features {
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
Loading