From 56dacb668a904760b0522daab05ee442b75530c1 Mon Sep 17 00:00:00 2001 From: Melinda Fekete Date: Thu, 24 Oct 2024 16:09:57 +0200 Subject: [PATCH] Update titles, descriptions, and slugs based on ercule feedback (#8509) --- ...mplementing-feature-flags-in-aws-lambda.md | 4 +- .../use-cases/a-b-testing.md | 2 +- .../use-cases/gradual-rollout.md | 2 +- .../how-to/how-to-create-feature-toggles.md | 2 + website/docs/quickstart.md | 4 +- ...practices-using-feature-flags-at-scale.mdx | 3 +- .../understanding-unleash/unleash-overview.md | 2 +- .../troubleshooting/flag-not-returned.md | 16 +++---- website/docs/welcome.md | 44 ++++++++++++------- website/docusaurus.config.js | 7 +-- website/sidebars.js | 1 - website/vercel.json | 7 ++- 12 files changed, 55 insertions(+), 39 deletions(-) diff --git a/website/docs/feature-flag-tutorials/serverless/implementing-feature-flags-in-aws-lambda.md b/website/docs/feature-flag-tutorials/serverless/implementing-feature-flags-in-aws-lambda.md index 456d2d4423..64ad8e8978 100644 --- a/website/docs/feature-flag-tutorials/serverless/implementing-feature-flags-in-aws-lambda.md +++ b/website/docs/feature-flag-tutorials/serverless/implementing-feature-flags-in-aws-lambda.md @@ -1,6 +1,6 @@ --- -title: How to Implement Feature Flags in a Serverless Environment using AWS Lambda -description: New to feature flags in serverless environments? This guide will walk you through a practical example using the Unleash Node.js SDK in AWS Lambda. +title: 'Serverless feature flags: How to' +description: 'Use the Unleash Node.js SDK with AWS Lambda to implement feature flags in a serverless environment.' slug: /feature-flag-tutorials/serverless/lambda --- diff --git a/website/docs/feature-flag-tutorials/use-cases/a-b-testing.md b/website/docs/feature-flag-tutorials/use-cases/a-b-testing.md index f929272667..791a2cc9aa 100644 --- a/website/docs/feature-flag-tutorials/use-cases/a-b-testing.md +++ b/website/docs/feature-flag-tutorials/use-cases/a-b-testing.md @@ -11,7 +11,7 @@ Feature flags are a great way to run A/B tests to decouple them from your code, ## How to Perform A/B Testing with Unleash -To follow along with this tutorial, you will need an Unleash instance. If you’d prefer to self-host Unleash, read our [Quick Start documentation](/quickstart). Alternatively, if you’d like your project to be hosted by Unleash, go to [www.getunleash.io](https://www.getunleash.io/pricing?_gl=1*1ytmg93*_gcl_au*MTY3MTQxNjM4OS4xNzIxOTEwNTY5*_ga*OTkzMjI0MDMwLjE3MDYxNDc3ODM.*_ga_492KEZQRT8*MTcyNzQzNTQwOS4yMzcuMS4xNzI3NDM1NDExLjU4LjAuMA). +To follow along with this tutorial, you will need an Unleash instance. If you’d prefer to self-host Unleash, read our [Quickstart guide](/quickstart). Alternatively, if you’d like your project to be hosted by Unleash, go to [www.getunleash.io](https://www.getunleash.io/pricing?_gl=1*1ytmg93*_gcl_au*MTY3MTQxNjM4OS4xNzIxOTEwNTY5*_ga*OTkzMjI0MDMwLjE3MDYxNDc3ODM.*_ga_492KEZQRT8*MTcyNzQzNTQwOS4yMzcuMS4xNzI3NDM1NDExLjU4LjAuMA). With Unleash set up, you can use your application to talk to Unleash through one of our SDKs. diff --git a/website/docs/feature-flag-tutorials/use-cases/gradual-rollout.md b/website/docs/feature-flag-tutorials/use-cases/gradual-rollout.md index 68dea0d7da..4e660492af 100644 --- a/website/docs/feature-flag-tutorials/use-cases/gradual-rollout.md +++ b/website/docs/feature-flag-tutorials/use-cases/gradual-rollout.md @@ -15,7 +15,7 @@ The key benefits of gradual rollouts are that you can experiment rapidly on a co ## How to Perform a Gradual Rollout with Unleash -To follow along with this tutorial, you will need an Unleash instance. If you’d prefer to self-host Unleash, read our [Quick Start documentation](/quickstart). Alternatively, if you’d like your project to be hosted by Unleash, go to [getunleash.io](https://www.getunleash.io/pricing). +To follow along with this tutorial, you will need an Unleash instance. If you’d prefer to self-host Unleash, read our [Quickstart guide](/quickstart). Alternatively, if you’d like your project to be hosted by Unleash, go to [getunleash.io](https://www.getunleash.io/pricing). With Unleash set up, you can use your application to talk to Unleash through one of our SDKs. diff --git a/website/docs/how-to/how-to-create-feature-toggles.md b/website/docs/how-to/how-to-create-feature-toggles.md index 3d1ce179df..1d283f8511 100644 --- a/website/docs/how-to/how-to-create-feature-toggles.md +++ b/website/docs/how-to/how-to-create-feature-toggles.md @@ -1,5 +1,7 @@ --- title: How to create a feature flag +description: 'This guide shows you how to create feature flags in Unleash and how to add constraints, segments, variants, and more.' +slug: /how-to-create-feature-flag --- [Feature flags](../reference/feature-toggles) are the foundation of Unleash. They are at the core of everything we do and are a fundamental building block in any feature management system. This guide shows you how to create feature flags in Unleash and how to add any optional constraints, segments, variants, and more. Links to learn more about these concepts will be scattered throughout the text. diff --git a/website/docs/quickstart.md b/website/docs/quickstart.md index 7f5735bf2a..f6df92a8e8 100644 --- a/website/docs/quickstart.md +++ b/website/docs/quickstart.md @@ -1,5 +1,5 @@ --- -title: Quick Start +title: Quickstart --- There are lots of options to get started with Unleash. If you're comfortable with Docker, this is the fastest way to get up and running. If that's not you, here are [some additional ways to try Unleash](#more-unleash). @@ -29,7 +29,7 @@ password: unleash4all 2. Click 'New feature flag' 3. Give it a unique name, and click 'Create feature flag' -For a detailed guide on how to create a flag through the UI, [you can follow this guide](/how-to/how-to-create-feature-toggles). +For a detailed guide on how to create a flag through the UI, [you can follow this guide](/how-to-create-feature-flag). ## 4a. Connect a client-side SDK {#connect-a-client-side-sdk} diff --git a/website/docs/topics/feature-flags/best-practices-using-feature-flags-at-scale.mdx b/website/docs/topics/feature-flags/best-practices-using-feature-flags-at-scale.mdx index c45d70cd46..29c766fc13 100644 --- a/website/docs/topics/feature-flags/best-practices-using-feature-flags-at-scale.mdx +++ b/website/docs/topics/feature-flags/best-practices-using-feature-flags-at-scale.mdx @@ -1,5 +1,6 @@ --- -title: "Feature flag management: Best practices for using feature flags at scale" +title: 'Feature flag management: Best practices for using feature flags at scale' +description: 'A feature flag is just an if statement, you say. When your organization has thousands of developers, those if statements can quickly become complex.' --- import Figure from '@site/src/components/Figure/Figure.tsx' diff --git a/website/docs/understanding-unleash/unleash-overview.md b/website/docs/understanding-unleash/unleash-overview.md index d8dcf7a7d9..05f09c1c46 100644 --- a/website/docs/understanding-unleash/unleash-overview.md +++ b/website/docs/understanding-unleash/unleash-overview.md @@ -23,7 +23,7 @@ Before you can connect your application to Unleash you need a Unleash server. Yo ![A visual overview of an Unleash system as described in the following paragraph.](/img/unleash-architecture-edge.png 'System Overview') - [**Unleash API**](/reference/api/unleash) - The Unleash instance. This is where you create feature flags, configure activation strategies, and parameters, etc. The service that contains all feature flags and their configurations. Configurations declare which activation strategies to use and which parameters they should get. -- **Unleash Admin UI** - The bundled web interface for interacting with the Unleash instance. Manage flags, define strategies, look at metrics, and much more. Use the UI to [create feature flags](how-to/how-to-create-feature-toggles), [manage project access roles](../how-to/how-to-create-and-assign-custom-project-roles), [create API tokens](how-to/how-to-create-api-tokens), and more. +- **Unleash Admin UI** - The bundled web interface for interacting with the Unleash instance. Manage flags, define strategies, look at metrics, and much more. Use the UI to [create feature flags](/how-to-create-feature-flag), [manage project access roles](../how-to/how-to-create-and-assign-custom-project-roles), [create API tokens](how-to/how-to-create-api-tokens), and more. - [**Unleash SDKs**](../reference/sdks) - Unleash SDKs integrate into your applications and get feature configurations from the Unleash API. Use them to check whether features are enabled or disabled and to send metrics to the Unleash API. [See all our SDKs](../reference/sdks) - [**Unleash Edge**](../reference/unleash-edge) - The Unleash Edge sits between front-end and native applications on one side and the Unleash API on the other. It can also sit between server-side SDKs and the Unleash API as well. You can scale it independently of the Unleash API to handle large request rates without causing issues for the Unleash API. Edge has all endpoints for the client API, frontend API, and proxy API. diff --git a/website/docs/using-unleash/troubleshooting/flag-not-returned.md b/website/docs/using-unleash/troubleshooting/flag-not-returned.md index 92df26442c..aa38826cb1 100644 --- a/website/docs/using-unleash/troubleshooting/flag-not-returned.md +++ b/website/docs/using-unleash/troubleshooting/flag-not-returned.md @@ -7,15 +7,15 @@ By default, these endpoints will not return feature flags that are not enabled. The first thing to look into is to validate that the feature is well configured and then check the token used from the SDK because it determines the set of accessible features. Last, verify that the context you're providing contains all the required data. 1. Check that the feature is properly enabled: - 1. Verify that the feature has a strategy associated to it that will return true for your context (ref: [add a strategy](/how-to/how-to-create-feature-toggles#step-2)) - 1. Verify that the feature has been enabled in the environment used by the client application (ref: [enabling a feature flag](/how-to/how-to-create-feature-toggles#step-3)) -1. Check that your token is of the right [type](/reference/api-tokens-and-client-keys.mdx). To connect to the Frontend API, Edge or Proxy, you need to use a [Front-end token](/reference/api-tokens-and-client-keys#front-end-tokens) -1. Check that your token has access to the feature flag. The **token access configuration is immutable post-creation** and defines the set of features that the token can access. The different [parts of a token](/reference/api-tokens-and-client-keys#version-2) determine what projects and environment can be accessed: + 1. Verify that the feature has a strategy associated to it that will return true for your context (ref: [add a strategy](/how-to-create-feature-flag#step-2)) + 2. Verify that the feature has been enabled in the environment used by the client application (ref: [enabling a feature flag](/how-to-create-feature-flag#step-3)) +2. Check that your token is of the right [type](/reference/api-tokens-and-client-keys.mdx). To connect to the Frontend API, Edge or Proxy, you need to use a [Front-end token](/reference/api-tokens-and-client-keys#front-end-tokens) +3. Check that your token has access to the feature flag. The **token access configuration is immutable post-creation** and defines the set of features that the token can access. The different [parts of a token](/reference/api-tokens-and-client-keys#version-2) determine what projects and environment can be accessed: 1. **Access to all projects (current and future)** - Tokens with a leading asterisk will provide access to all projects in a particular environment. For example, the token `*:production:xyz123etc...` will provide access to flags in the production environment of all projects. - 1. **Access to a discrete list of projects** - Tokens with a leading set of square brackets (empty) will be given access to a subset of projects in a particular environment. The token will look similar to the following: `[]:production:xyz123etc...`. Which projects the token has access to can be found on the API Tokens page in the Unleash admin UI. - 1. **Single project access** - Tokens that lead with a project name are bound to the specified project and environment. For example, `my_fullstack_app:production:xyz123etc...` will only have access to flags in the "my_fullstack_app" project as set in the production environment. -1. When using a **gradual rollout** strategy, be mindful of the **[stickiness](/reference/stickiness)** value. When evaluating a flag, if the provided context does not include the field used in the stickiness configuration, the gradual rollout strategy will be evaluated to `false` and therefore it will not be returned by the API. -1. Feature activation strategies can be combined in different ways, which may lead to complex scenarios. Try using the [Playground](/reference/playground.mdx) to verify that the feature is properly configured and responding as expected. + 2. **Access to a discrete list of projects** - Tokens with a leading set of square brackets (empty) will be given access to a subset of projects in a particular environment. The token will look similar to the following: `[]:production:xyz123etc...`. Which projects the token has access to can be found on the API Tokens page in the Unleash admin UI. + 3. **Single project access** - Tokens that lead with a project name are bound to the specified project and environment. For example, `my_fullstack_app:production:xyz123etc...` will only have access to flags in the "my_fullstack_app" project as set in the production environment. +4. When using a **gradual rollout** strategy, be mindful of the **[stickiness](/reference/stickiness)** value. When evaluating a flag, if the provided context does not include the field used in the stickiness configuration, the gradual rollout strategy will be evaluated to `false` and therefore it will not be returned by the API. +5. Feature activation strategies can be combined in different ways, which may lead to complex scenarios. Try using the [Playground](/reference/playground.mdx) to verify that the feature is properly configured and responding as expected. If you want to return a flag no matter if it's disabled or enabled you can move the disabled/enabled information into the [strategy variants](/reference/strategy-variants). diff --git a/website/docs/welcome.md b/website/docs/welcome.md index 5ef0d4f323..278954e8eb 100644 --- a/website/docs/welcome.md +++ b/website/docs/welcome.md @@ -1,30 +1,42 @@ --- -title: Welcome slug: / -sidebar_position: 1 +title: Feature Management Platform +description: 'Unleash is the largest open-source feature management platform. In our documentation, you’ll find everything from core Unleash concepts and feature flag best practices to detailed SDK and API guides—giving you all the resources you need to get the most out of Unleash.' +displayed_sidebar: documentation --- +# Unleash Documentation -Welcome to Unleash's documentation, your one-stop shop for everything Unleash. Whether you're just getting started or have been using Unleash for years, you should be able to find answers to all your questions here. +Unleash is a **private**, **secure**, and **scalable feature management platform** built to reduce the risk of releasing new features and accelerate software development. -- [Quick Start](/quickstart): Get up and running with Unleash in just a few steps. -- [Unleash Academy](/unleash-academy/introduction): Video Tutorials to onboard you to Unleash’s full suite of capabilities. -- [Feature Flag Best Practices](/topics): Maximize your effectiveness with feature flags, regardless of what technology you choose to use. -- [Feature Flag Tutorials](/feature-flag-tutorials): Our small but growing collection of tutorials on using feature flags with different technologies. -- [Understanding Unleash](/understanding-unleash): Get a high-level view of Unleash's architecture, core functionalities, and concepts to leverage our platform to its full potential. -- [Using Unleash](/using-unleash): Our comprehensive guides on APIs, SDKs, integrations, how-to guides, and troubleshooting will help you get things done with Unleash. -- [Contributing to Unleash](/contributing): Join our community and contribute to the ongoing growth of Unleash. +Whether you’re a small team or a large enterprise, Unleash enables you to **innovate faster** and make data-driven decisions that **enhance your user experience**. -Dive in and start exploring—great things await. If you need a hand, our team is just a click away. +With market-leading data governance, robust change and access controls, SaaS or self-hosted deployment options, multi-region support, and the flexibility of **open-source**, you have the freedom to choose the setup that works best for you while maintaining full control over your data. -## Getting help +## Quickstart -Have questions that you can't find the answer to in these docs? +[Get up and running](/quickstart) with Unleash in less than 5 minutes. -💬 If you've got questions or want to chat with the team and other Unleash users [join our Slack community](https://slack.unleash.run/) or a [GitHub Discussion](https://github.com/orgs/Unleash/discussions). Our Slack tends to be more active, but you're welcome to use whatever works best for you. +## Tutorials and guides -🤖 Ask our AI ‘intern’ (still in training, but not bad). The "Ask AI" button lives in the bottom right corner on every page. ↘ +Explore [best practices](/topics) and step-by-step [tutorials](/feature-flag-tutorials), organized by programming languages and frameworks, to help you integrate Unleash into your stack. -🐦 You can also follow us on [Twitter](https://twitter.com/getunleash 'Unleash on Twitter'), [LinkedIn](https://www.linkedin.com/company/getunleash/ 'Unleash on LinkedIn') and [visit our website](https://getunleash.io/) for ongoing updates and content. +## SDKs + +With over 30 [SDKs](/reference/sdks), we enable fast and secure feature flagging across all major programming languages so you can deploy confidently in any environment. + +## Unleash Academy + +Enroll in [Unleash Academy](/unleash-academy/introduction) to learn the core concepts and best practices, earn certifications, and gain the expertise needed to manage feature flags. + +## Integrations + +[Connect Unleash](/reference/integrations) to your existing workflows. Integrate with popular tools like GitHub, Slack, CI/CD pipelines, and more. + +## Get in touch + +Have questions or ideas? We’d love to hear from you! Join our active [Slack community](https://slack.unleash.run/), contribute on [GitHub](https://github.com/orgs/Unleash), or [schedule a conversation](https://www.getunleash.io/plans/enterprise) with our team. + +You can also follow us on [Twitter](https://twitter.com/getunleash 'Unleash on Twitter'), [LinkedIn](https://www.linkedin.com/company/getunleash/ 'Unleash on LinkedIn'), and [visit our website](https://getunleash.io/) for ongoing updates and content. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 8748a3c049..b33a9d5282 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -40,7 +40,7 @@ const addDocsRoutePrefix = ({ from, ...rest }) => { }; /** @type {import('@docusaurus/types').DocusaurusConfig} */ module.exports = { - title: 'Unleash', + title: 'Unleash Documentation', tagline: 'The enterprise ready feature flag service', url: 'https://docs.getunleash.io', baseUrl: '/', @@ -56,6 +56,7 @@ module.exports = { environment: process.env.NODE_ENV, }, themeConfig: { + titleTemplate: '%s', defaultMode: 'light', disableSwitch: true, respectPrefersColorScheme: false, @@ -528,10 +529,6 @@ module.exports = { ], to: '/reference/unleash-proxy', }, - { - to: '/how-to/how-to-create-feature-toggles', - from: '/user_guide/create_feature_toggle', - }, { to: '/reference/activation-strategies', from: [ diff --git a/website/sidebars.js b/website/sidebars.js index 7305dc5db8..10c455dad9 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -36,7 +36,6 @@ module.exports = { }, ], documentation: [ - 'welcome', 'quickstart', { label: 'Feature Flags Developer Guide', diff --git a/website/vercel.json b/website/vercel.json index 157b34ef2b..5292a60844 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -393,7 +393,7 @@ }, { "source": "/user_guide/create_feature_toggle", - "destination": "/how-to/how-to-create-feature-toggles", + "destination": "/how-to-create-feature-flag", "permanent": true }, { @@ -721,6 +721,11 @@ "destination": "/using-unleash/troubleshooting/feature-not-available", "permanent": true }, + { + "source": "/how-to/how-to-create-feature-toggles", + "destination": "/how-to-create-feature-flag", + "permanent": true + }, { "source": "/reference/deploy", "destination": "/using-unleash/deploy",