Skip to content

Wizard to allow 'steps' #3226

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

Closed
bruno-garcia opened this issue Mar 10, 2021 · 6 comments
Closed

Wizard to allow 'steps' #3226

bruno-garcia opened this issue Mar 10, 2021 · 6 comments

Comments

@bruno-garcia
Copy link
Member

One of the goal of the wizard is to present the minimum information required to get a user started.

As Sentry adds more features and more integrations, exposing the user to such things in the wizard can be in conflict with this principle.

Take for example the React Native wizard:

https://github.com/getsentry/sentry-docs/blob/c61af7ca914ec343ab4c451985bfa636d2e1aecd/src/wizard/react-native/index.md

It's a short as it can be to get crashes and release health (which is enabled by default) working.

At the end of it, we could offer a Next step (optional):

Want to measure performance? Click Next.

Then provide the user with options:

  1. Using React Navigation v4 router?
    • Show the RN router v4 instructions
  2. Using React Navigation v5 router?
    • Show the RN router v5 instructions
  3. Using a different router?
  • Show the "manual" instrumentation as an example to start/finish transactions
  • Would be nice to get feedback so we can learn from users

Other use cases include:
Spring, Spring Boot, ASP.NET, ASP.NET Core all are often used in tandem with a logging integration.
The wizard could present the user the option to chose a logging library (we support many) and present the instructions.

Android users often use Timber as a logging library. We're working on OkHttp integration for HTTP requests.

Bottom line is that with the current architecture of a single logo/title/page we're limited in how we can guide the users through the best setup for them, and also learn from potential integrations they are looking and we don't support.

Relates to #2719

@PeloWriter
Copy link
Contributor

Yes, I was just discussing this with @jeremybourque. We want folks to get up and running quickly, but we need to balance this with ensuring we're providing the correct information (if you're using JS, are you using React; if you're using Java, are you using SpringBoot, and so forth).

A smarter wizard would ensure users are getting to the right content.

In addition, a smarter wizard would automatically reflect changes made to the code samples in the core docs (would also be useful if these changes were automatically reflected in our marketing sites).

@github-actions
Copy link
Contributor

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@bruno-garcia
Copy link
Member Author

Another use case that came up is Kotlin. Users look for it in the wizard, but we don't have one.
To add one, we'd need to direct the user to either a JVM setup or an Android setup. In the future there'll be Kotlin Multiplatform. We'd like to have a Kotlin wizard, that'll have options for the user to choose from.

@bruno-garcia
Copy link
Member Author

Some other use cases:

Ionic wizard

Select a JS framework:

  • Angular
  • Vue
  • React

Select a runtime:

  • Capacitor
  • Cordova

React Native

  • Basic install steps
  • (required for performance monitoring) Select a routing integration
    • React Navigation 4
    • React Navigation 4
    • ...

Then we can show appropriate install instructions for performance montoring for those libraries

.NET

This could be a façade wizard that calls to another depending on user options:

Select a framework

  • ASP.NET (could invoke another wizard passing the language which was alre
  • WPF
  • WinForms
  • Xamarin
  • Other: Show raw C#/F# example (can we get input from the user to help us priortize new integrations?)

Select a language:

  • F#
  • C#

Add a logging library?

  • Serilog
  • NLog
  • log4net

Spring

Select a language

  • Kotlin
  • Java

It's not just a code snippet change, if Kotlin: Additional package and steps to get Coroutines working

Framework

  • Spring
  • Spring Boot
  • Servlet

Logging

  • logback
  • log4j2

Android

Select language

  • Java
  • Kotlin

If Kotlin, additional info (see above)

Using OkHttp? - Steps to install and get spans
Using Timber? -> Steps to install and get crumbs and error events

@bruno-garcia
Copy link
Member Author

Relates to: #2719

Another reason this came up: On Android we want to prioritize installing with the Android Gradle Plugin so we can automate installing extra packages and configure them via bytecode manipulations when needed.
The problem is that a non trivial amount of users won't be able to leverage this because they are still stuck on a version of AGP we don't support. Ideally we'd ask the user first: "Do you use AGP v7 or higher?" and lead them to the right install steps.

@Jesse-Box
Copy link
Contributor

@bruno-garcia

Since, the telemetry experience has started a major refactor as to how our wizards are being generated. A few SDK teams are already asking how this refactor can benefit the end-user experience because it allows us to render instructions specific to your language, framework, package manager etc.

Here are some example tickets that are on our radar.

  1. Spring Boot Getting Started guide improvements sentry#50226
  2. Simplify iOS Onboarding Wizard sentry#51586

cc: @matejminar @ale-cota

@github-actions github-actions bot locked and limited conversation to collaborators Jul 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants