Skip to content
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 website/.validationignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
/docs/advanced/team-management/saml/identity-providers/okta.mdx
/docs/advanced/team-management/saml/identity-providers/onelogin.mdx
/docs/advanced/team-management/saml/overview.mdx
/docs/advanced/team-management/scim/identity-providers/entra-id.mdx
/docs/advanced/team-management/scim/identity-providers/okta.mdx
/docs/advanced/team-management/scim/identity-providers/onelogin.mdx
/docs/advanced/team-management/scim/overview.mdx
/docs/advanced/team-management/single-sign-on-sso.mdx
/docs/advanced/team-management/team-management-basics.mdx
/docs/advanced/troubleshooting.mdx
Expand Down
2 changes: 1 addition & 1 deletion website/docs/advanced/caching.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: caching
title: Polling modes & Caching
title: Polling Modes & Caching
description: This section describes how to use the SDK's caching feature. There are three different polling modes available in the ConfigCat SDKs.
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: auto-assign-users
title: Auto-assign Users
title: Auto-Assign Users
description: New users will be automatically added to your organization if you have a verified domain. Here is how to set it up.
---

Expand Down
2 changes: 1 addition & 1 deletion website/docs/advanced/team-management/scim/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: scim-overview
title: User provisioning (SCIM) Overview
title: User Provisioning (SCIM) Overview
description: This section is a step-by-step guide on how to configure User provisioning (SCIM) for your Organization in ConfigCat.
---

Expand Down
2 changes: 1 addition & 1 deletion website/docs/advanced/variation-id-for-analytics.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: variation-id-for-analytics
title: Variation ID for analytics
title: Variation ID for Analytics
description: Learn about how to utilize the Variation ID to enrich feature flag evaluation events.
---

Expand Down
2 changes: 1 addition & 1 deletion website/docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ const config: Config = {
items: [
{
type: 'docSidebar',
label: 'Docs',
label: 'Product Docs',
sidebarId: 'docs',
position: 'left',
},
Expand Down
52 changes: 26 additions & 26 deletions website/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,7 @@ const docs: SidebarConfig = [
items: [
'getting-started',
'main-concepts',
'purchase',
'requests',
'network-traffic',
'organization',
],
},
{
label: 'Guides',
type: 'category',
collapsed: false,
collapsible: true,
className: 'icon guides-icon',
items: [
{
label: 'Config V2',
type: 'category',
link: { type: 'doc', id: 'advanced/config-v2' },
items: [
'advanced/config-v2-migration-guide',
'advanced/config-v2-sdk-compatibility',
],
},
'advanced/data-governance',
'advanced/predefined-variations',
{
label: 'Targeting',
type: 'category',
Expand All @@ -59,9 +36,22 @@ const docs: SidebarConfig = [
'targeting/feature-flag-evaluation',
],
},
'advanced/variation-id-for-analytics',
'advanced/predefined-variations',
],
},
{
label: 'Guides',
type: 'category',
collapsed: false,
collapsible: true,
className: 'icon guides-icon',
items: [
'purchase',
'requests',
'network-traffic',
'advanced/caching',
'advanced/troubleshooting',
'advanced/data-governance',
'advanced/variation-id-for-analytics',
'zombie-flags',
{
label: 'Migration from LaunchDarkly',
Expand All @@ -75,6 +65,16 @@ const docs: SidebarConfig = [
},
],
},
{
label: 'Config V2',
type: 'category',
link: { type: 'doc', id: 'advanced/config-v2' },
items: [
'advanced/config-v2-migration-guide',
'advanced/config-v2-sdk-compatibility',
],
},
'advanced/troubleshooting',
],
},
{
Expand Down Expand Up @@ -136,7 +136,7 @@ const docs: SidebarConfig = [
],
},
{
label: 'User provisioning (SCIM)',
label: 'User Provisioning (SCIM)',
type: 'category',
link: {
type: 'doc',
Expand Down
157 changes: 106 additions & 51 deletions website/src/pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,67 +8,105 @@ import styles from './styles.module.css';

const features = [
{
column: 0,
title: 'Basics',
description: <>Familiarize with ConfigCat basics.</>,
description: <>Learn the fundamentals of ConfigCat.</>,
links: [
{ url: 'getting-started', title: 'Getting started' },
{ url: 'getting-started', title: 'Getting Started' },
{ url: 'main-concepts', title: 'Main Concepts' },
{ url: 'organization', title: 'Organization & Roles' },
{ url: 'targeting/targeting-overview', title: 'Targeting' },
{ url: 'advanced/predefined-variations', title: 'Predefined Variations vs Free‑Form Values' },
],
},
{
column: 0,
cssClass: "last-on-mobile",
title: 'Plans & Usage',
description: <>The financial side of feature flagging.</>,
links: [
{ url: 'purchase', title: 'Plans, Purchase & Billing' },
{ url: 'requests', title: 'What is a config JSON download?' },
{ url: 'network-traffic', title: 'Network Traffic' },
{ url: 'purchase', title: 'Plans, Purchase & Billing' },
{ url: 'organization', title: 'Organization & Roles' },
],
},
{
column: 0,
cssClass: "last-on-mobile",
title: 'Further Reading',
description: <>Additional useful information.</>,
links: [
{ url: 'advanced/config-v2-migration-guide', title: 'Config V2 Migration Guide' },
{ url: 'news', title: 'News & Product Updates' },
{ url: 'faq', title: 'FAQ' },
{ url: 'advanced/troubleshooting', title: 'Troubleshooting' },
{ url: 'glossary', title: 'Glossary' },
],
},
{
title: 'Advanced Guides',
description: <>API, CLI, SAML, Webhooks...</>,
column: 1,
title: 'Advanced Features', // This list should be in alphabetical order
description: <>Boost your feature flagging efficiency.</>,
links: [
{ url: 'api/reference/configcat-public-management-api', title: 'Public Management API' },
{ url: 'advanced/data-governance', title: 'Data Governance - CDN' },
{ url: 'advanced/predefined-variations', title: 'Predefined Variations vs Free‑Form Values' },
{ url: 'advanced/variation-id-for-analytics', title: 'Variation ID for analytics' },
{ url: 'advanced/caching', title: 'Polling modes & Caching' },
{
url: 'advanced/team-management/team-management-basics',
title: 'Team Management',
},
{ url: 'advanced/cli', title: 'Command Line Interface (CLI)' },
{
url: 'advanced/team-management/saml/saml-overview',
title: 'SAML Single Sign-On',
url: 'advanced/proxy/proxy-overview',
title: 'ConfigCat Proxy',
},
{ url: 'advanced/data-governance', title: 'Data Governance - CDN' },
{
url: 'advanced/team-management/scim/scim-overview',
title: 'User provisioning (SCIM)',
url: 'advanced/migration-from-launchdarkly',
title: 'Migration from LaunchDarkly',
},
{ url: 'advanced/mcp-server', title: 'MCP Server' },
{
url: 'advanced/notifications-webhooks',
title: 'Notifications - Webhooks',
},
{ url: 'advanced/troubleshooting', title: 'Troubleshooting' },
{ url: 'advanced/cli', title: 'Command Line Interface (CLI)' },
{ url: 'api/reference/configcat-public-management-api', title: 'Public Management API' },
{
url: 'advanced/code-references/overview',
title: 'Scan & Upload Code References',
},

{ url: 'advanced/variation-id-for-analytics', title: 'Variation ID for Analytics' },
{ url: 'zombie-flags', title: 'Zombie Flags' },
],
},
{
column: 1,
title: 'Team Management',
description: <>Grant your team access to ConfigCat.</>,
links: [
{
url: 'advanced/proxy/proxy-overview',
title: 'ConfigCat Proxy',
url: 'advanced/team-management/team-management-basics',
title: 'Team Management Basics',
},
{
url: 'advanced/migration-from-launchdarkly',
title: 'Migration from LaunchDarkly',
url: 'advanced/team-management/single-sign-on-sso',
title: 'SSO (Single Sign-On)',
},
{
url: 'advanced/team-management/auto-assign-users',
title: 'Auto-Assign Users',
},
{
url: 'advanced/team-management/saml/saml-overview',
title: 'SAML Single Sign-On',
},
{
url: 'advanced/team-management/scim/scim-overview',
title: 'User Provisioning (SCIM)',
},
{
url: 'advanced/team-management/domain-verification',
title: 'Domain Verification',
},
{ url: 'advanced/mcp-server', title: 'MCP Server' },
{ url: 'zombie-flags', title: 'Zombie Flags' },
// { url: 'advanced/config-v2-migration-guide', title: 'Config V2 Migration Guide' },
],
},
{
title: 'SDK references', // This list should be in alphabetical order
column: 2,
title: 'SDK References', // This list should be in alphabetical order
description: <>Let's do some coding.</>,
links: [
{ url: 'sdk-reference/dotnet', title: '.NET' },
Expand Down Expand Up @@ -101,9 +139,11 @@ const features = [
{ url: 'sdk-reference/ios', title: 'Swift (iOS)' },
{ url: 'sdk-reference/unity', title: 'Unity' },
{ url: 'sdk-reference/unreal', title: 'Unreal Engine' },
{ url: 'sdk-reference/openfeature', title: 'OpenFeature Providers' },
],
},
{
column: 3,
title: 'Integrations', // This list should be in alphabetical order
description: <>Get connected to increase productivity.</>,
links: [
Expand Down Expand Up @@ -135,29 +175,44 @@ const features = [
},
];

function Feature({ imageUrl, title, description, links }) {
const imgUrl = useBaseUrl(imageUrl);
const featuresByColumn = features.reduce((acc, feature) => {
let group = acc[feature.column];
if (!group) acc[feature.column] = group = [];
group.push(feature);
return acc;
}, []);

function Feature({ features }) {
return (
<div className={clsx('col col--3', styles.feature)}>
{imgUrl && (
<div className="text--center">
<img className={clsx('no-auto-height', styles.featureImage)} src={imgUrl} alt={title} />
</div>
)}
<h3>{title}</h3>
<p>{description}</p>
{FeatureItems(links)}
{features
.map(({ cssClass, imageUrl, title, description, links }, idx) => {
const imgUrl = useBaseUrl(imageUrl);
return (
<div key={idx} className={clsx(cssClass, styles.featureSection)}>
{imgUrl && (
<div className="text--center">
<img className={clsx('no-auto-height', styles.featureImage)} src={imgUrl} alt={title} />
</div>
)}
<h3>{title}</h3>
<p>{description}</p>
<FeatureItems links={links} />
</div>
);
})
}
</div>
);
}

function FeatureItems(links) {
function FeatureItems({ links }) {
return (
<ul class="feature-list">
{links.map(({ url, title, items }) => (
<li>
<ul className="feature-list">
{links.map(({ url, title, items }, idx) => (
<li key={idx}>
<Link to={useBaseUrl(url)}>{title}</Link>
{items?.length && FeatureItems(items)}
{items?.length && <FeatureItems links={items} />}
</li>
))}
</ul>
Expand Down Expand Up @@ -189,24 +244,24 @@ function Home() {
)}
to={useBaseUrl('getting-started')}
>
Open Docs
Get started
</Link>
</div>
</div>
</header>
<main>
{features && features.length > 0 && (
<section className={styles.features}>
<div className="container">
<h2 className="text--center">Quick links</h2>
<div className="row">
{features.map((props, idx) => (
<Feature key={idx} {...props} />
))}
{featuresByColumn
.filter(group => group.length)
.map((group, idx) => (
<Feature key={idx} features={group} />
))
}
</div>
</div>
</section>
)}
</main>
</Layout>
);
Expand Down
Loading
Loading