Repository navigation
v1.8.0
Better Fullstack v1.8.0
This is one of the biggest Better Fullstack releases yet. Elixir is now a first-class ecosystem, React Native has its own dedicated mobile path, and the generator now has much stronger CI coverage for real scaffolded apps.
The release spans the shared type system, CLI prompts, template generator, web builder, docs, smoke testing, and publish safety. It is a major expansion of what Better Fullstack can generate and verify.
Highlights
- Added Elixir as a first-class ecosystem with Phoenix and Phoenix LiveView support.
- Added React Native as a standalone mobile ecosystem for Expo-based apps.
- Added full-stack Phoenix templates with Ecto, PostgreSQL, auth, REST, GraphQL, realtime, jobs, email, caching, testing, Docker, and release setup.
- Added mobile scaffolds for Expo Router, React Navigation, Tamagui, Gluestack UI, Uniwind, Unistyles, MMKV, push notifications, OTA updates, deep linking, Maestro, and React Native Testing Library.
- Added stricter generated-app CI with PostgreSQL service containers, BEAM setup, strict smoke lanes, Playwright builder coverage, package-manager coverage, and richer failure artifacts.
- Updated docs, builder option references, tech icons, CLI help, generated commands, and compatibility rules for the expanded ecosystem surface.
- Cleaned up legacy Better T Stack naming in user-facing surfaces.
New: Elixir Ecosystem
Elixir projects can now be generated from both the CLI and the web builder using --ecosystem elixir.
Supported Elixir project shapes include:
- Phoenix web apps.
- Phoenix LiveView apps.
- Plain Elixir scaffolds where Phoenix-specific selections are not enabled.
- Mix-native project structure rather than the TypeScript monorepo layout.
Generated Phoenix projects now include:
mix.exsand standard Phoenix application structure.- Config for dev, test, runtime, and base application setup.
- Endpoint, router, telemetry, layouts, controllers, error views, and health checks.
.env.example, README output,.gitignore, and setup guidance.- ExUnit test scaffolding and connection test helpers.
Elixir option groups now include:
- Web framework:
phoenix,phoenix-live-view. - Persistence:
ecto-sql,none. - Auth:
phx-gen-auth,none. - API:
rest,absinthe,none. - Realtime:
channels,presence,pubsub,live-view-streams,none. - Jobs:
oban,quantum,none. - HTTP client:
req,finch,none. - JSON:
jason. - Email:
swoosh,none. - Caching:
cachex,none. - Observability:
telemetry,none. - Testing:
ex_unit. - Quality:
credo,dialyxir,sobelow,none. - Deploy:
docker,mix-release,none.
Phoenix, Ecto, and PostgreSQL
The Elixir generator now produces working Phoenix + PostgreSQL application code instead of dependency-only placeholders.
Ecto SQL selections generate:
- Repo setup.
- PostgreSQL config.
- Catalog schema and context files.
- Migrations for generated sample data.
- Seeds.
- Test database config.
Auth selections generate phx.gen.auth-style files, including:
- User schema.
- Accounts context.
- Session controller.
- User migration.
- JSON error handling paths for API-friendly scaffolds.
The generator also now enforces important compatibility rules:
phx-gen-authrequires Ecto SQL.- Oban requires Ecto SQL and PostgreSQL-backed projects.
- LiveView streams require Phoenix LiveView.
- Phoenix-only selections are rejected for plain Elixir apps.
- Dependency-only Elixir choices without real template support are disabled or rejected until matching generation exists.
Phoenix APIs, Realtime, and Background Work
The release adds real generated files for common Phoenix app needs:
- REST controller scaffolds.
- Absinthe GraphQL schema and resolver scaffolds.
- Phoenix Channels.
- Presence setup.
- PubSub-ready wiring.
- LiveView routes and LiveView item examples.
- Oban sample worker and migration support.
- Quantum scheduler setup.
- Req and Finch HTTP clients.
- Swoosh mailer setup.
- Cachex caching setup.
A final CI-discovered Phoenix router issue was also fixed before release: non-LiveView Phoenix apps now use fetch_flash, while LiveView apps use fetch_live_flash.
New: React Native Ecosystem
React Native is now its own ecosystem instead of being modeled as a TypeScript web frontend. This makes mobile stacks much cleaner in both the CLI and builder.
React Native projects are selected with --ecosystem react-native and generate Expo-compatible apps.
Supported mobile options include:
- Native frontend:
native-bare,native-uniwind,native-unistyles. - Navigation:
expo-router,react-navigation,none. - UI:
tamagui,gluestack-ui,uniwind,unistyles,none. - Storage:
mmkv,none. - Testing:
maestro,react-native-testing-library,maestro-react-native-testing-library,none. - Push:
expo-notifications,none. - OTA:
expo-updates,none. - Deep linking:
expo-linking,none.
Generated React Native projects can now include:
- Expo config with scheme and runtime settings.
- Expo Router route files or React Navigation entrypoints.
- UI provider and theme files for selected mobile styling systems.
- MMKV storage helpers.
- Expo Notifications registration helpers.
- Expo Updates helpers.
- Expo Linking/deep-linking helpers.
- Jest Expo and React Native Testing Library examples.
- Maestro flows.
- Mobile
.env.exampleconventions usingEXPO_PUBLIC_variables.
The builder and CLI now hide web-only categories when React Native is selected, keeping mobile choices focused and preventing invalid mixed stacks.
Builder and CLI Improvements
The builder and CLI both received broad ecosystem-aware updates:
- Added Elixir and React Native to shared schemas, defaults, metadata, and stack translation.
- Added CLI flags and prompts for Elixir and mobile option groups.
- Added stack display and reproducible command output for the new ecosystems.
- Added web builder URL state support for new ecosystem selections.
- Added compatibility rules for Phoenix, LiveView, Ecto, Oban, React Native UI modes, and mobile integrations.
- Fixed builder defaults for React Native and native frontend selections.
- Fixed prompt behavior so Elixir does not receive unrelated shared TypeScript email/service prompts.
- Fixed command/default detection for ecosystem-specific stacks.
- Added regression tests for plain Elixir validation and Phoenix-only option rejection.
Template Generator Improvements
The template generator now understands more standalone ecosystem shapes and emits richer project structures.
Major template additions include:
templates/elixir-basewith Phoenix, Ecto, auth, API, realtime, jobs, email, cache, Docker, release, and test files.templates/frontend/nativefor React Native and Expo app variants.- Native auth templates for mobile-compatible flows.
- Mobile storage, notifications, updates, deep-linking, navigation, and test templates.
- Improved generated README behavior for non-TypeScript ecosystems.
- Updated env var generation for mobile and Elixir conventions.
- Better template-handler routing for ecosystem-specific outputs.
Several template regressions were fixed while broadening the matrix, including Fresh/Deno config, React Native Jest dependencies, ModelFusion/Fets smoke coverage, and Phoenix auth/router edge cases.
Docs and Web Updates
This release expands the docs and builder reference to match the new generator surface:
- Added Elixir ecosystem docs.
- Added React Native ecosystem docs.
- Added React Native option reference docs.
- Updated TypeScript option docs for the new ecosystem split.
- Updated CLI create docs and roadmap content.
- Updated compatibility matrix rendering.
- Updated stack builder behavior for ecosystem-specific categories.
- Updated tech resource links and icon registry coverage.
- Added tech icon validation so broken or missing builder icons are caught in CI.
- Updated project stats and combination counts for the larger stack surface.
CI and Smoke Testing
Generated-app verification is much stronger in v1.8.0.
CI now includes:
- PostgreSQL service containers for smoke and E2E jobs.
- Erlang/OTP and Elixir setup through
erlef/setup-beam. - Java, Python/uv, Node, Bun, and other ecosystem setup in strict smoke paths.
- Strict Smoke Tests for core and broad generated-app presets.
- React Native and Elixir presets in generated-app smoke coverage.
- PR-stable smoke coverage separated from broader scheduled/runtime matrices.
- Playwright web builder tests for stack selection and command parity.
- Package-manager default matrix coverage.
- Web command round-trip coverage.
- Artifact uploads for smoke and E2E results.
- Step summaries that make generated-app failures easier to inspect.
The final v1.8.0 PR passed:
- Lint.
- Test.
- Build Check.
- Release Guard.
- Smoke Test.
- Strict Smoke Tests (Core).
- Strict Smoke Tests (Broad).
- Playwright Web Builder Tests.
- Web Command Roundtrip.
- Package Manager Default Matrix.
- CodeQL.
- Vercel preview.
Fixes and Cleanup
Also included in this release:
- Fixed plain Elixir smoke preset validation.
- Fixed Phoenix API router flash handling.
- Fixed Elixir shared prompt leakage from unrelated TypeScript categories.
- Fixed React Native Jest scaffold dependencies.
- Fixed mobile defaults in CLI, builder, and template tests.
- Fixed React Native compatibility and command default behavior.
- Fixed Fresh Deno runtime/config regressions found by smoke tests.
- Fixed smoke test coverage for generated templates across multiple ecosystems.
- Cleaned up legacy scaffold branding.
- Hardened release workflows around deterministic Bun usage and npm publishing.
Published Packages
create-better-fullstack@1.8.0create-bfs@1.8.0@better-fullstack/types@1.8.0@better-fullstack/template-generator@1.8.0
Links
- Compare: v1.7.1...v1.8.0
- Release: https://github.com/Marve10s/Better-Fullstack/releases/tag/v1.8.0
- Pull request: #200