Skip to content

Prepare Flet 1.0 announcement, migration guide, and website updates - #6842

Merged
FeodorFitsner merged 35 commits into
mainfrom
flet-1-0-announcement
Sep 15, 2026
Merged

FeodorFitsner merged 35 commits into
mainfrom
flet-1-0-announcement

Conversation

@FeodorFitsner

@FeodorFitsner FeodorFitsner commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Description

Prepare the website and documentation for Flet 1.0, with a celebratory release announcement and a migration path for existing users.

  • Add the 1.0 announcement, project statistics, and static logos for light and dark themes.
  • Add a 0.28 to 1.0 migration guide and refresh concurrency, automatic updates, authentication, and storage documentation.
  • Update the 2026–2027 roadmap, homepage and getting-started content, mobile Gallery screenshot and store QR codes, and links to Flet Studio across package READMEs.
  • Configure pub.dev publishing credentials only for release publishing, after dependency resolution and tests, and publish with Flutter's bundled Dart SDK.

Test code

Documentation and website changes; no new reproduction script. Verified the announcement's MDX syntax and logo asset paths. The logo's light and dark variants were visually checked in the local preview. Commit hooks passed for the final logo commit.

The full documentation build and CI workflow execution were not rerun for this PR.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • This change requires a documentation update

Checklist

  • I signed the CLA.
  • I have performed a self-review of my own code.
  • My code follows the style guidelines of this project.
  • My changes generate no new warnings.
  • New and existing tests pass locally with my changes.
  • I have made corresponding documentation changes, if applicable.
  • I have updated release guide pages and website/sidebars.yml for breaking changes, removals, and deprecations, if applicable.

Additional details

Includes all existing commits on flet-1-0-announcement. The announcement uses a static themed SVG logo; the experimental fireworks animation is not included.

Summary by Sourcery

Prepare Flet’s website, documentation, package messaging, and release workflow for the Flet 1.0 launch.

New Features:

  • Add a Flet 1.0 release announcement with themed logo assets, project statistics, upgrade instructions, and future plans.
  • Add a comprehensive migration guide for upgrading applications from Flet 0.28 to 1.0.
  • Add browser-based Flet Studio calls to action and examples throughout the website and package READMEs.
  • Add QR codes and updated Gallery imagery to mobile getting-started documentation.

Bug Fixes:

  • Correct documentation for Flet 1.0 authentication and client storage APIs.
  • Clarify current concurrency, automatic update, background task, and platform behavior in the documentation.

Enhancements:

  • Refresh the homepage, introductory content, terminology, roadmap, and mobile guidance for the Flet 1.0 experience.
  • Expand async-app and auto-update documentation with guidance for yielding, offloading work, CPU-bound tasks, and platform differences.

CI:

  • Restrict pub.dev OIDC credential setup to production release publishing and publish with Flutter's bundled Dart SDK.

Documentation:

  • Publish the Flet 1.0 announcement and reorganize release and migration documentation around the 0.28-to-1.0 upgrade path.

Update the main READMEs and the app bar example to use a shorter, clearer description of Flet as a Python framework for building web, desktop, and mobile apps.
Replace the user-facing "multi-platform" slogan with "cross-platform" in the web app manifest and Docusaurus site config so the product messaging stays consistent.
Update the project roadmap to cover 2026-2027 priorities across the Flet platform. This replaces the older Flet 1.0, website, testing, AI, community, and packaging milestones with a clearer split into Flet Framework, Flet Studio, and Fletbase, emphasizing Flutter ecosystem work, UI libraries, developer tooling, Studio integrations, and backend services for packaging, publishing, hosting, storage, and authentication.
Document Python 3.15 as part of the Flet Framework roadmap.
Update the 1.0 announcement blog post to emphasize Flet's growth and adoption. This adds links to the awesome-flet showcase, key GitHub and PyPI milestones, the growing Discord community, and the convenience of Flet Studio and the Flet MCP server for getting started.
Migration links previously pointed at GitHub issue #5238, an unstructured
bullet list. The 0.28 to 1.0 jump spans the whole 0.70 - 0.86 pre-release
series, so it needs a guide of its own rather than a per-release breaking
change page.

Adds website/docs/updates/migrate-to-1-0.md, organized as eight steps in
migration order. The largest covers the single-threaded model: 0.28
dispatched sync event handlers onto a thread pool, so blocking code never
froze the UI, while 1.0 calls them directly on the event loop. That is why
an otherwise-working migrated app feels unresponsive, and it was documented
nowhere.

cookbook/async-apps.md still asserted the 0.28 behavior and documented
run_task() under a "Threading" heading without mentioning run_thread(), so
it is rewritten as the current-behavior reference. The #threading anchor is
preserved for the multiprocessing and subinterpreters pages.

Verified every API named in the guide against the installed SDK, which
caught four errors carried over from issue #5238: NavigationDrawer.position
and Chip.press_elevation do not exist, Theme.divider_color was not removed,
and Padding.symmetric() still exists as a classmethod. It also surfaced two
changes that fail silently rather than raising - SafeArea's edge flags
became avoid_intrusions_*, while left/top/right/bottom remain as Stack
positioning properties, and Tabs split into Tabs/TabBar/TabBarView - both
now documented.

Also fixes client-storage.md and authentication.md, which used the
page.shared_preferences accessor removed in 1.0.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 13, 2026

Copy link
Copy Markdown

Deploying flet-website-v2 with  Cloudflare Pages  Cloudflare Pages

Latest commit: b09e083
Status: ✅  Deploy successful!
Preview URL: https://9b41ec00.flet-website-v2.pages.dev
Branch Preview URL: https://flet-1-0-announcement.flet-website-v2.pages.dev

View logs

Refined both `flet_1_0.svg` and `flet_1_0_dark.svg` by replacing the original standalone text paths with grouped, transformed path sets for the main wordmark. The new geometry adjusts coordinates and stroke widths for cleaner proportions and keeps light/dark variants in sync while preserving the existing icon elements.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved critical workflow permission scope and multiple moderate documentation and example issues remain.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Prepares Flet’s website, documentation, package messaging, and release workflow for Flet 1.0.

Changes:

  • Adds the 1.0 announcement, themed logos, roadmap, homepage updates, and mobile guidance.
  • Adds migration and refreshed concurrency, auto-update, authentication, storage, and breaking-change documentation.
  • Updates Studio links, package metadata, changelog content, and pub.dev publishing configuration.
File summaries
File Reviewed change and final review notes
website/static/img/blog/flet-1-0/flet_1_0.svg Adds the light-theme announcement logo.
website/static/img/blog/flet-1-0/flet_1_0_dark.svg Adds the dark-theme announcement logo.
website/static/docs/assets/getting-started/testing-on-mobile/ios/qr-code.svg Adds the iOS App Store QR code.
website/src/pages/styles.module.css Updates homepage button styling.
website/src/pages/roadmap.md Refreshes the 2026–2027 roadmap.
website/src/pages/index.js Updates homepage messaging and Studio CTA.
website/sidebars.yml Adds migration documentation navigation.
website/docusaurus.config.js Updates website navigation links.
website/docs/updates/migrate-to-1-0.md Adds migration guidance. Moderate: define and add selection before use (2 votes); correct the 0.28 thread-pool description (nit, 1 vote); publish intermediate progress after to_thread and future completion (moderate, 2 and 1 votes); await SharedPreferences.set() and apply the pattern to other async services (moderate, 1 vote); narrow the service-reference warning (nit, 1 vote).
website/docs/updates/index.md Links migration resources.
website/docs/updates/breaking-changes/index.md Reorganizes breaking-change documentation.
website/docs/index.md Updates getting-started content.
website/docs/getting-started/testing-on-mobile.md Adds mobile testing instructions. Nit: provide iOS-specific steps or make shared instructions platform-neutral (1 vote).
website/docs/cookbook/client-storage.md Documents the client storage service API.
website/docs/cookbook/auto-update.md Documents automatic updates. Moderate: the to_thread example needs explicit updates or yielding for intermediate progress (2 votes).
website/docs/cookbook/authentication.md Refreshes authentication examples. Moderate: await Page.login() (2 votes) and replace obsolete .token access with await page.auth.get_token() (1 vote).
website/docs/cookbook/async-apps.md Refreshes async and concurrency guidance. Moderate: update or yield after each completed future so progress is published (1 vote).
website/blog/2026-09-14-flet-1-0.md Adds the Flet 1.0 announcement. Nit: remove the duplicated “been” (3 votes).
sdk/python/packages/flet/README.md Adds Flet Studio messaging.
sdk/python/packages/flet-webview/README.md Adds a Flet Studio link.
sdk/python/packages/flet-web/README.md Adds a Flet Studio link.
sdk/python/packages/flet-video/README.md Adds a Flet Studio link.
sdk/python/packages/flet-spinkit/README.md Adds a Flet Studio link.
sdk/python/packages/flet-secure-storage/README.md Adds a Flet Studio link.
sdk/python/packages/flet-rive/README.md Adds a Flet Studio link.
sdk/python/packages/flet-platform-assets/README.md Adds a Flet Studio link.
sdk/python/packages/flet-permission-handler/README.md Adds a Flet Studio link.
sdk/python/packages/flet-mcp/README.md Adds a Flet Studio link.
sdk/python/packages/flet-map/README.md Adds a Flet Studio link.
sdk/python/packages/flet-lottie/README.md Adds a Flet Studio link.
sdk/python/packages/flet-local-auth/README.md Adds a Flet Studio link.
sdk/python/packages/flet-geolocator/README.md Adds a Flet Studio link.
sdk/python/packages/flet-flashlight/README.md Adds a Flet Studio link.
sdk/python/packages/flet-desktop/README.md Adds a Flet Studio link.
sdk/python/packages/flet-datatable2/README.md Adds a Flet Studio link.
sdk/python/packages/flet-color-pickers/README.md Adds a Flet Studio link.
sdk/python/packages/flet-code-editor/README.md Adds a Flet Studio link.
sdk/python/packages/flet-cli/README.md Adds a Flet Studio link.
sdk/python/packages/flet-charts/README.md Adds a Flet Studio link.
sdk/python/packages/flet-camera/README.md Adds a Flet Studio link.
sdk/python/packages/flet-audio/README.md Adds a Flet Studio link.
sdk/python/packages/flet-audio-recorder/README.md Adds a Flet Studio link.
sdk/python/packages/flet-ads/README.md Adds a Flet Studio link.
sdk/python/examples/controls/material/app_bar/theme_mode_toggle/main.py Updates the theme-mode toggle example.
README.md Adds project-level Studio messaging.
packages/flet/README.md Updates Flutter package metadata and Studio messaging.
client/web/manifest.json Updates the web theme color.
CHANGELOG.md Adds Flet 1.0 release notes.
.github/workflows/ci.yml Configures release publishing. Critical: the job still grants id-token: write on non-release and pull-request runs; scope the permission to a tag-only release job or environment (1 vote).
Review details

Suppressed comments (7)

website/docs/cookbook/async-apps.md:264

  • Because auto-update runs only after the handler returns, changing progress.value alone will not publish each completed future. Add progress.update() after the assignment (as the other progress examples do), or make this an async generator and yield.
    website/docs/cookbook/authentication.md:151
  • The current Authorization contract no longer exposes page.auth.token; token retrieval is asynchronous via await page.auth.get_token(). This migration bullet and the other .token references in the page will fail with AttributeError; update the token examples and their surrounding async context before publishing this guide.
    website/docs/getting-started/testing-on-mobile.md:23
  • The new iOS tab feeds into shared instructions that say to open Camera on an Android device and to try updates on Android. An iOS reader following this path is not given the corresponding iOS steps; make the shared instructions platform-neutral or add separate iOS and Android instructions.
    website/docs/updates/migrate-to-1-0.md:156
  • This contradicts the preceding explanation that 0.28 dispatched sync handlers to a thread pool. Describe the 0.28 behavior as running CPU-bound work on a pool thread, otherwise the table suggests that it blocked the UI in the old version.
    website/docs/updates/migrate-to-1-0.md:294
  • await future only resumes the coroutine; assigning progress.value does not send a patch until the handler finishes. Call progress.update() after each completed future (or yield from an async generator) so this example actually reports progress.
    website/docs/updates/migrate-to-1-0.md:424
  • SharedPreferences.set() is async, so this replacement creates an unawaited coroutine and performs no storage operation; the other service-method rows below have the same issue. Show a retained service instance and await the call, e.g. await prefs.set(k, v), and apply the same pattern to the remaining async services.
    website/docs/updates/migrate-to-1-0.md:417
  • This warning is too broad and contradicts the one-shot example immediately below: a temporary service is valid for a single awaited call because the service remains referenced while that call is running. The warning should only require a retained reference when the service will be reused by later calls or handlers.
  • Files reviewed: 46/51 changed files
  • Comments generated: 6
  • Review effort level: Lite

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml Outdated
# Register publishing credentials only after dependency resolution and tests.
# Branch and PR builds must access public pub.dev packages anonymously.
- name: Setup Dart (OIDC for pub.dev)
if: ${{ github.ref_type == 'tag' && !contains(github.ref_name, '.dev') }}
Comment thread website/docs/cookbook/authentication.md Outdated
Comment thread website/docs/cookbook/auto-update.md Outdated
Comment on lines +48 to +49
Async handlers can yield too, and `await` has the same effect - anything the
handler awaits gives the loop an opportunity to send queued updates:
Comment on lines +279 to +281
await asyncio.to_thread(do_chunk, i)
progress.value = (i + 1) / 100
```
Comment thread website/docs/updates/migrate-to-1-0.md Outdated
Comment thread website/blog/2026-09-15-flet-1-0.md Outdated

Since then, that idea has grown through the [apps you've built](https://github.com/flet-dev/awesome-flet), the feedback you've shared, and the contributions you've made.

Today, Flet has more than [16,700 stars on GitHub](https://github.com/flet-dev/flet), [100 contributors](https://github.com/flet-dev/flet/graphs/contributors) and has been been downloaded from PyPI more than [9,000,000 times](https://pepy.tech/projects/flet?timeRange=threeMonths&category=version&includeCIDownloads=true&granularity=weekly&viewType=line&versions=Total%2C0.*)! We've merged over [1,000 pull requests](https://github.com/flet-dev/flet/pulls?q=is%3Apr+is%3Amerged), closed [2,800 issues](https://github.com/flet-dev/flet/issues?q=is%3Aissue%20state%3Aclosed) and our [Discord community](https://discord.gg/dzWXP8SHG8) has grown to more than 6,000 members.
Reduce padding, margins, and gaps in the website footer to make the layout more compact on both desktop and mobile while keeping the existing structure intact.
The uv flow documented a pip-shaped sequence (mkdir, uv init, uv venv,
activate, uv add flet, uv run flet create) that nobody would run, and that
contradicted itself: the create page needed a danger admonition warning that
`flet create` overwrites the pyproject.toml `uv init` had just made.

With uv, no install step is needed at all:

    uvx --with flet-cli flet create my-app
    cd my-app
    uv run flet run

Installation is restructured to "set up your package manager" (install uv, or
create a venv for pip), a table of what flet/flet-cli/flet-desktop/flet-web
each do, adding Flet to an existing project, installing a pre-release build,
and upgrading. The pre-release section is new: uv and pip skip dev builds
unless asked, and a project scaffolded by a pre-release CLI additionally needs
`--prerelease allow` (or `[tool.uv] prerelease = "allow"`) because
flet-platform-assets is only reachable transitively.

Also drops an unrendered MkDocs-style prose annotation on the Python version
line, and repoints a testing-on-mobile link at a section that still exists.
Update the Flet 1.0 blog post filename to reflect the correct publication date. This is a file rename only; the content remains unchanged.
# Conflicts:
#	CHANGELOG.md
#	website/src/css/custom.css
Simplify the website homepage hero copy by removing the extra introductory sentence and leaving a more direct product value statement.
Update the Flet 1.0 blog post closing section to feel more personal and appreciative. This adds a heart and gratitude emoji to the thank-you message for contributors, bug reporters, and users who helped make the release possible.
@FeodorFitsner
FeodorFitsner merged commit 59f759c into main Sep 15, 2026
18 of 23 checks passed
@FeodorFitsner
FeodorFitsner deleted the flet-1-0-announcement branch September 15, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants