Repository navigation
flutter create page - #13981
Draft
abdallahshaban557 wants to merge 2 commits into
Draft
flutter create page#13981abdallahshaban557 wants to merge 2 commits into
abdallahshaban557 wants to merge 2 commits into
Conversation
Adds /flutter-create-2026, a landing page for the Flutter Create 2026 livestream. Visitors sign in with Google to create or update their Google Developer Program profile, opt in to event emails, and add Flutter as an interest. Also adds a reusable Developer Profiles API client to site_shared.
Collaborator
|
Staged preview of the updated docs.flutter.dev site (updated for commit 17fd23f): https://flutter-docs-prod--docs-pr13981-flutter-streaming-land-xj440ibi.web.app |
Collaborator
|
Staged preview of the updated flutter.dev site (updated for commit 17fd23f): https://flutter-dev-230821--www-pr13981-flutter-streaming-land-s9ck9oy3.web.app |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a landing page for Flutter Create 2026, Flutter's Q4 flagship livestream, at
/flutter-create-2026. Visitors sign in with Google to be notified about the stream. Signing in creates or updates their Google Developer Program (GDP) profile, opts them in to event emails, and adds Flutter to their profile interests.Important
Draft: the page currently targets the staging Developer Profiles API, and the event details shouldn't go live before the public announcement. Don't merge until launch.
Changes
New page:
sites/wwwcontent/flutter-create-2026.md: page entry (title, description, body tags) that renders<FlutterCreatePage />.lib/src/pages/flutter_create_page.dart: the page, with:flutter createterminal prompt and countdown.CTASection("Get started") on this page only.lib/src/components/pages/flutter_create_signup.dart(@client): Google sign-in and GDP integration, in two variants (compactfor the hero, the full panel for the sign-up section).devprofiles.full_controlscope. The library is preloaded so the popup opens within the click and isn't blocked.E-product-Flutterinterest.localStorage(flutter-create-2026-signup:createdflag and timestamp only, no PII) so it persists across visits, and is cleared after November 12, 2026. "Use a different account" resets it.flutterCreateSignupStateScript) setshtml.fc-signed-upbefore first paint, and CSS picks the visible state. Returning visitors never see the sign-in button, and switching states doesn't move the page.lib/src/components/pages/flutter_create_countdown.dart(@client): "N days to go" countdown, with a "November 11 · Online" fallback before hydration.lib/styles/pages/_flutter_create.scss: page styles following the Why Flutter page's visual language (gradient hero, tinted cards, chips), written mobile-first.lib/main.server.dartandlib/styles/styles.scss: register the page component and stylesheet.lib/main.client.options.dartandlib/main.server.options.dart: regenerated bybuild_runnerfor the new@clientcomponents.New shared GDP client:
packages/site_sharedlib/src/utils/developer_profiles_client.dart, exported fromlib/developer_profiles.dart: a small, reusable client for the Google Developer Profiles API (v1beta1), built onpackage:http.DeveloperProfilesEnvironment.staging(default) and.production.hasProfile,getProfile,createProfile,ensureProfile,addInterests(interests:batchUpdate).developerProfilesScopeandflutterInterestNodeIdconstants, plus a typedDeveloperProfilesException.google/developers/v1beta1(service.proto,profile.proto,profilepath.proto).Configuration
The OAuth client ID is supplied at build time and isn't committed:
--dart-define=GDP_API_KEY=<restricted-key>.http://localhost:8094for dev,https://flutter.devfor prod); no redirect URIs. Use separate dev and prod clients.Before launch
DeveloperProfilesEnvironment.productionand enabledevelopers.googleapis.comin the project.GDP_OAUTH_CLIENT_IDto the deploy configuration.devprofiles.full_controlscope.E-product-Flutterinterest node ID with the GDP team.script-src 'self', currently report-only) is enforced, allow the inline sign-up state script with a hash or nonce infirebase.json.Testing
dart analyzepasses forsites/wwwandpackages/site_shared, andjaspr buildsucceeds.