Skip to content

chore: delete Alpine editor remnants and Phase 0 spike - #290

Merged
ViewFromTheBox merged 1 commit into
add/phase-onefrom
enhancement/276-delete-alpine-editor-phase-0-spike
Apr 14, 2026
Merged

ViewFromTheBox merged 1 commit into
add/phase-onefrom
enhancement/276-delete-alpine-editor-phase-0-spike

Conversation

@ViewFromTheBox

@ViewFromTheBox ViewFromTheBox commented Apr 14, 2026 •

Copy link
Copy Markdown
Member

Description

Phase 1.14 — the final Phase 1 issue. Deletes the Phase 0 React spike and the Phase 1 dnd-kit spike harness. After this lands, the visual editor tree contains no Alpine-era or spike-era scaffolding and Phase 1 of the React migration is complete.

Closes: #276

Type of Change

  • Enhancement (improves existing functionality)

Related Issue

Issue: #276

Motivation and Context

Issue #276 is the cleanup milestone that closes out Phase 1 of the Alpine→React editor migration. The Alpine stores, canvas, block renderers, and editor-shell blade were already gone by the time this branch was cut, so the remaining work was deleting the Phase 0 editor-spike/ tree and the Phase 1 __dnd-kit-spike__ harness (which depended on @spike/richtext/useTiptap and would not compile without it), then consolidating the Vite/TS/Vitest configs around the single canonical editor entrypoint.

Changes Made

  • Deleted resources/js/editor-spike/ and its route, blade view, root index.html, and visual-editor-spike-assets publish tag in VisualEditorServiceProvider
  • Deleted resources/js/visual-editor/editor/__dnd-kit-spike__/ (Phase 1 dnd-kit harness — its follow-up Phase 1.9: dnd-kit integration in production BlockList (top-level) #271 is the production integration, and it can't build without the @spike alias)
  • Consolidated vite.editor.config.ts into the root vite.config.ts, dropped the spike-only vite.config.ts, and simplified package.json scripts (dev/build are now the editor)
  • Dropped the @spike path alias from tsconfig.json and vitest.config.ts, and narrowed the test include
  • Moved the Tiptap/jsdom test setup to resources/js/visual-editor/editor/test-setup.ts (still required for Tiptap tests)
  • Updated EditorMountViewTest to assert /editor-spike is absent from routes/web.php
  • Removed public/editor-spike/ from .gitignore
  • Marked Phase 1 as landed in REACT-MIGRATION.md

PHASE-0-FINDINGS.md and docs/phase-1-dnd-kit-findings.md are kept as historical reference per the issue's "decide whether to archive" note.

How Has This Been Tested?

Testing Environment:

  • Operating System: macOS (Darwin 25.3.0)
  • PHP Version: 8.4.3
  • Project Version: 1.0.0-spike

Tests Performed:

  1. npm test — 196 vitest tests pass (22 files)
  2. composer test — 25 Pest tests pass (69 assertions)
  3. npm run build — editor bundle builds cleanly (dist/editor/main.js 478 kB)
  4. Manual end-to-end verification of /editor/{id} in the dev app — confirmed working

Accessibility Tests Run

  • N/A — this PR only deletes dead code and config plumbing; no user-facing UI changes.

Tests Added

  • Unit tests updated (EditorMountViewTest route assertion)
  • All tests passing

Documentation

  • REACT-MIGRATION.md status line updated to "Phase 1 landed. Phase 2 next."

Pre-Submission Checklist

  • Code passes all tests
  • CodeRabbit review run against add/phase-one — no findings
  • Self-review completed
  • No new warnings generated

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Chores
    • Removed experimental editor spike prototype and associated build scripts. Consolidated editor configuration for improved build efficiency.
    • Updated migration phase progression from Phase 1 to Phase 2.

Phase 1.14 — completes the React migration's Phase 1 goal. After this
lands, the visual editor tree contains no Alpine-era or spike-era
scaffolding.

- Remove resources/js/editor-spike/ (Phase 0 architecture spike)
- Remove resources/js/visual-editor/editor/__dnd-kit-spike__/ (Phase 1
  dnd-kit harness that depended on @spike/richtext/useTiptap)
- Remove editor-spike route, blade view, index.html entry, and the
  visual-editor-spike-assets publish tag
- Consolidate vite.editor.config.ts into the root vite.config.ts and
  drop the spike-only vite.config.ts; simplify npm scripts
- Drop the @spike path alias from tsconfig.json and vitest.config.ts
- Move the Tiptap/jsdom test setup into
  resources/js/visual-editor/editor/test-setup.ts
- Update EditorMountViewTest route assertion and remove
  public/editor-spike/ from .gitignore
- Mark Phase 1 as landed in REACT-MIGRATION.md

Closes #276

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Apr 14, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR removes the entire Phase 0 editor spike implementation (resources/js/editor-spike/) and associated infrastructure including experimental dnd-kit components, spike-specific routes, build scripts, tests, and configuration references. The cleanup consolidates the codebase to Phase 1 React-based editor only, updating related configs and documentation accordingly.

Changes

Cohort / File(s) Summary
Spike Core React App
index.html, resources/js/editor-spike/App.tsx, resources/js/editor-spike/main.tsx, resources/js/editor-spike/index.css
Removed spike root HTML entrypoint, React App component, DOM mount/initialization logic, and global styles for the spike application.
Spike Block Implementations
resources/js/editor-spike/blocks/paragraph/*, resources/js/editor-spike/blocks/post-title/*, resources/js/editor-spike/blocks/query-loop/*
Removed all three custom block types (paragraph, post-title, query-loop) with their edit components, registration functions, and block-specific logic (TipTap editor, context providers, mock API bindings).
Spike Primitive Contexts & Hooks
resources/js/editor-spike/primitives/*.tsx, resources/js/editor-spike/registry.ts, resources/js/editor-spike/richtext/useTiptap.ts
Removed reactive contexts (BlockContext, BlockTreeContext, ReadOnlyContext), block preview/inner-blocks hooks, block registry, and TipTap editor wrapper.
Spike Mock Data & Tests
resources/js/editor-spike/mocks/*.ts, resources/js/editor-spike/__tests__/*.test.tsx
Removed mock posts/API, block tree definitions, and all test suites covering spike blocks, contexts, hooks, and integration behavior.
DnD Kit Spike Harness
resources/js/visual-editor/editor/__dnd-kit-spike__/*
Removed experimental drag-and-drop spike implementation including DndKitSpike component, SpikeBlock sortable element, HTML entrypoint, and related test/styling.
Build & Config Cleanup
vite.editor.config.ts, package.json, tsconfig.json, vitest.config.ts, vite.config.ts
Removed dedicated spike Vite config file, spike npm scripts (dev:editor, build:editor), TypeScript path alias (@spike), and test discovery globs; updated main Vite config to consolidate editor build strategy; retargeted Vitest setup to visual-editor paths.
Routes & Blade Templates
routes/web.php, resources/views/editor-spike.blade.php
Removed /editor-spike route registration and its corresponding Blade mount view template.
Service Provider & Asset Publishing
src/VisualEditorServiceProvider.php
Removed asset publishing registration for spike build output under visual-editor-spike-assets tag.
Documentation & Metadata
.gitignore, REACT-MIGRATION.md, tests/Feature/EditorMountViewTest.php
Removed .gitignore entry for public/editor-spike/ build output, updated migration status to "Phase 1 landed. Phase 2 next", and inverted test assertion to verify spike route no longer exists.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

This PR involves deletions across diverse file types and configuration updates requiring verification across multiple domains (build config, routing, tests, TypeScript setup). While individual file deletions are straightforward, the breadth of affected areas and the need to validate config consolidation (especially Vite/Vitest changes) warrants moderate review effort.

Possibly related PRs

Poem

🐰 Hop! The spike hath served its noble quest,
Mock blocks and context dance to rest,
Phase Zero fades to memory's keep,
While Phase One's editor runs swift and deep. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'chore: delete Alpine editor remnants and Phase 0 spike' accurately summarizes the main objective: removing legacy Alpine editor and Phase 0 spike scaffolding to complete Phase 1 of React migration.
Linked Issues check ✅ Passed The PR comprehensively addresses all coding requirements from issue #276: Phase 0 spike deletion (editor-spike directory, views, routes, configs), Alpine editor removal references, build/test config consolidation, test setup migration, and REACT-MIGRATION.md status update.
Out of Scope Changes check ✅ Passed All changes align with issue #276 scope: removing Alpine/spike remnants, consolidating configs, and completing Phase 1. No unrelated refactoring or Phase 2 scope introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch enhancement/276-delete-alpine-editor-phase-0-spike

Comment @coderabbitai help to get the list of available commands and usage tips.

@ViewFromTheBox ViewFromTheBox moved this from Backlog to In Review in ArtisanPack UI Overview Apr 14, 2026
@ViewFromTheBox ViewFromTheBox linked an issue Apr 14, 2026 that may be closed by this pull request
@ViewFromTheBox
ViewFromTheBox marked this pull request as ready for review April 14, 2026 21:39

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@vite.config.ts`:
- Around line 7-24: Add the Laravel Vite plugin to the Vite configuration so the
Blade `@vite` directive is processed: install laravel-vite-plugin as a dev
dependency, import the plugin in vite.config.ts (from 'laravel-vite-plugin'),
and include it at the start of the plugins array passed into defineConfig (i.e.,
add the laravel/vite plugin entry before react() in the plugins list used by
defineConfig).
- Around line 27-33: The vite.config.ts contains an external: [...] block
listing 'react', 'react/jsx-runtime', 'react/jsx-dev-runtime', 'react-dom',
'react-dom/client' which causes those packages to be treated as externals and
leaves unresolved bare imports when dist/editor/main.js is loaded; remove the
external property (or at least these React-related entries) so Vite bundles
React into the editor build; update any comments if present and verify main.tsx
imports resolve correctly after rebuilding.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 01430f32-0fe4-4842-9bd1-96c6765e82b9

📥 Commits

Reviewing files that changed from the base of the PR and between 5574051 and eda1a96.

📒 Files selected for processing (46)
  • .gitignore
  • REACT-MIGRATION.md
  • index.html
  • package.json
  • resources/js/editor-spike/App.tsx
  • resources/js/editor-spike/__tests__/BlockContext.test.tsx
  • resources/js/editor-spike/__tests__/mocks.test.ts
  • resources/js/editor-spike/__tests__/paragraph.test.tsx
  • resources/js/editor-spike/__tests__/postTitle.test.tsx
  • resources/js/editor-spike/__tests__/queryLoop.test.tsx
  • resources/js/editor-spike/__tests__/smoke.test.tsx
  • resources/js/editor-spike/__tests__/useBlockPreview.test.tsx
  • resources/js/editor-spike/__tests__/useInnerBlocksProps.test.tsx
  • resources/js/editor-spike/blocks/paragraph/edit.tsx
  • resources/js/editor-spike/blocks/paragraph/index.ts
  • resources/js/editor-spike/blocks/post-title/edit.tsx
  • resources/js/editor-spike/blocks/post-title/index.ts
  • resources/js/editor-spike/blocks/query-loop/edit.tsx
  • resources/js/editor-spike/blocks/query-loop/index.ts
  • resources/js/editor-spike/index.css
  • resources/js/editor-spike/main.tsx
  • resources/js/editor-spike/mocks/blockTree.ts
  • resources/js/editor-spike/mocks/mockApi.ts
  • resources/js/editor-spike/mocks/posts.ts
  • resources/js/editor-spike/primitives/BlockContext.tsx
  • resources/js/editor-spike/primitives/BlockTreeContext.tsx
  • resources/js/editor-spike/primitives/ReadOnlyContext.tsx
  • resources/js/editor-spike/primitives/useBlockPreview.tsx
  • resources/js/editor-spike/primitives/useInnerBlocksProps.tsx
  • resources/js/editor-spike/registry.ts
  • resources/js/editor-spike/richtext/useTiptap.ts
  • resources/js/visual-editor/editor/__dnd-kit-spike__/DndKitSpike.tsx
  • resources/js/visual-editor/editor/__dnd-kit-spike__/SpikeBlock.tsx
  • resources/js/visual-editor/editor/__dnd-kit-spike__/__tests__/DndKitSpike.test.tsx
  • resources/js/visual-editor/editor/__dnd-kit-spike__/index.html
  • resources/js/visual-editor/editor/__dnd-kit-spike__/main.tsx
  • resources/js/visual-editor/editor/__dnd-kit-spike__/spike.css
  • resources/js/visual-editor/editor/test-setup.ts
  • resources/views/editor-spike.blade.php
  • routes/web.php
  • src/VisualEditorServiceProvider.php
  • tests/Feature/EditorMountViewTest.php
  • tsconfig.json
  • vite.config.ts
  • vite.editor.config.ts
  • vitest.config.ts
💤 Files with no reviewable changes (41)
  • .gitignore
  • package.json
  • resources/js/editor-spike/tests/smoke.test.tsx
  • resources/js/editor-spike/tests/BlockContext.test.tsx
  • index.html
  • resources/js/editor-spike/App.tsx
  • resources/js/editor-spike/main.tsx
  • resources/js/editor-spike/mocks/blockTree.ts
  • resources/js/editor-spike/index.css
  • src/VisualEditorServiceProvider.php
  • resources/js/visual-editor/editor/dnd-kit-spike/main.tsx
  • resources/js/editor-spike/mocks/posts.ts
  • resources/js/editor-spike/blocks/post-title/index.ts
  • resources/js/editor-spike/tests/paragraph.test.tsx
  • routes/web.php
  • resources/js/editor-spike/tests/queryLoop.test.tsx
  • resources/js/editor-spike/blocks/paragraph/edit.tsx
  • resources/js/editor-spike/tests/postTitle.test.tsx
  • resources/js/editor-spike/blocks/paragraph/index.ts
  • resources/js/editor-spike/blocks/post-title/edit.tsx
  • vite.editor.config.ts
  • resources/js/visual-editor/editor/dnd-kit-spike/index.html
  • tsconfig.json
  • resources/js/visual-editor/editor/dnd-kit-spike/tests/DndKitSpike.test.tsx
  • resources/js/editor-spike/primitives/ReadOnlyContext.tsx
  • resources/js/editor-spike/tests/useBlockPreview.test.tsx
  • resources/js/editor-spike/blocks/query-loop/index.ts
  • resources/js/visual-editor/editor/dnd-kit-spike/SpikeBlock.tsx
  • resources/js/editor-spike/mocks/mockApi.ts
  • resources/js/visual-editor/editor/dnd-kit-spike/DndKitSpike.tsx
  • resources/views/editor-spike.blade.php
  • resources/js/editor-spike/primitives/BlockContext.tsx
  • resources/js/editor-spike/tests/mocks.test.ts
  • resources/js/editor-spike/blocks/query-loop/edit.tsx
  • resources/js/editor-spike/primitives/BlockTreeContext.tsx
  • resources/js/editor-spike/tests/useInnerBlocksProps.test.tsx
  • resources/js/editor-spike/richtext/useTiptap.ts
  • resources/js/editor-spike/registry.ts
  • resources/js/editor-spike/primitives/useBlockPreview.tsx
  • resources/js/visual-editor/editor/dnd-kit-spike/spike.css
  • resources/js/editor-spike/primitives/useInnerBlocksProps.tsx

Comment thread vite.config.ts
Comment on lines +7 to +24
export default defineConfig(({ command }) => ({
plugins: [react()],
root: command === 'serve' ? editorRoot : __dirname,
resolve: {
alias: {
'@spike': resolve(__dirname, 'resources/js/editor-spike'),
'@editor': editorRoot,
},
},
server: {
port: 5175,
strictPort: false,
},
build: {
target: 'esnext',
outDir: 'public/editor-spike',
outDir: resolve(__dirname, 'dist/editor'),
emptyOutDir: true,
manifest: false,
sourcemap: true,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Find server-rendered `@vite` usages:"
rg -n "@vite\\(" resources/views tests routes || true

echo
echo "2) Confirm whether Laravel Vite plugin is configured in vite.config.ts:"
rg -n "laravel\\s*\\(" vite.config.ts || true
rg -n "plugins\\s*:\\s*\\[" vite.config.ts

Repository: ArtisanPack-UI/visual-editor

Length of output: 436


🏁 Script executed:

cat vite.config.ts

Repository: ArtisanPack-UI/visual-editor

Length of output: 1226


🏁 Script executed:

rg -i "laravel-vite-plugin" package.json package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null || echo "Not found in lock files"

Repository: ArtisanPack-UI/visual-editor

Length of output: 95


Add Laravel Vite plugin to vite.config.ts to enable @vite directive processing.

resources/views/editor/mount.blade.php (Line 8) uses the @vite directive, which requires laravel-vite-plugin to be installed and configured in vite.config.ts. The current config loads only react() without the Laravel plugin, causing asset resolution and HMR to fail for the editor mount route.

Install laravel-vite-plugin as a dev dependency and add it to the plugins array in vite.config.ts before the React plugin.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@vite.config.ts` around lines 7 - 24, Add the Laravel Vite plugin to the Vite
configuration so the Blade `@vite` directive is processed: install
laravel-vite-plugin as a dev dependency, import the plugin in vite.config.ts
(from 'laravel-vite-plugin'), and include it at the start of the plugins array
passed into defineConfig (i.e., add the laravel/vite plugin entry before react()
in the plugins list used by defineConfig).

Comment thread vite.config.ts
Comment on lines +27 to +33
external: [
'react',
'react/jsx-runtime',
'react/jsx-dev-runtime',
'react-dom',
'react-dom/client',
],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Check for import-map/CDN React provisioning in server-rendered templates:"
rg -n "importmap|react-dom/client|unpkg\\.com/react|esm\\.sh/react|jsdelivr.*react" resources/views || true

echo
echo "If dist/editor/main.js exists, check for unresolved bare React imports:"
if [ -f dist/editor/main.js ]; then
  rg -n "from ['\\\"]react|from ['\\\"]react-dom/client" dist/editor/main.js || true
else
  echo "dist/editor/main.js not present in repo checkout."
fi

Repository: ArtisanPack-UI/visual-editor

Length of output: 268


🏁 Script executed:

# Get the full vite.config.ts file
cat -n vite.config.ts

Repository: ArtisanPack-UI/visual-editor

Length of output: 1520


🏁 Script executed:

# Check what the editor entry point actually imports
head -30 resources/js/visual-editor/editor/main.tsx

Repository: ArtisanPack-UI/visual-editor

Length of output: 944


🏁 Script executed:

# Look for how React is provided in the build/install
cat -n package.json | grep -A 20 '"dependencies"'

Repository: ArtisanPack-UI/visual-editor

Length of output: 1070


🏁 Script executed:

# Check if there are other entry points that might handle React differently
rg -n "input:" vite.config.ts -A 2

Repository: ArtisanPack-UI/visual-editor

Length of output: 181


🏁 Script executed:

# Search for how the editor bundle is loaded/imported
rg -n "dist/editor|editor/main|ve-root" --type php --type html --type js --type ts

Repository: ArtisanPack-UI/visual-editor

Length of output: 1152


🏁 Script executed:

# Check if there's documentation about bundle usage
cat -n README.md 2>/dev/null | head -100 || echo "No README"

Repository: ArtisanPack-UI/visual-editor

Length of output: 737


🏁 Script executed:

# Look for a loader or integration script in the resources directory
find resources -type f \( -name "*.php" -o -name "*.blade.php" \) | head -10

Repository: ArtisanPack-UI/visual-editor

Length of output: 110


🏁 Script executed:

# Check package.json scripts to understand build/serve workflow
cat -n package.json | grep -A 10 '"scripts"'

Repository: ArtisanPack-UI/visual-editor

Length of output: 497


🏁 Script executed:

cat -n resources/views/editor/mount.blade.php

Repository: ArtisanPack-UI/visual-editor

Length of output: 609


🏁 Script executed:

# Search for any manifest or import map setup in views
rg -n "importmap|manifest|script.*type.*module" resources/views -A 2

Repository: ArtisanPack-UI/visual-editor

Length of output: 54


🏁 Script executed:

# Check if there's a app.blade.php or layout that might provide React globally
find resources/views -name "*.blade.php" -type f | xargs ls -lh

Repository: ArtisanPack-UI/visual-editor

Length of output: 158


Remove the external block to bundle React with the editor.

The entry point (main.tsx) directly imports React and React DOM, and the package lists them as dependencies rather than peer dependencies. Marking them as external without providing an import map or CDN means the built dist/editor/main.js will have unresolved bare imports when loaded via Laravel's @vite() directive. This will cause a module resolution failure in the browser.

Suggested change
         rollupOptions: {
             input: resolve(editorRoot, 'main.tsx'),
-            external: [
-                'react',
-                'react/jsx-runtime',
-                'react/jsx-dev-runtime',
-                'react-dom',
-                'react-dom/client',
-            ],
             output: {
                 format: 'es',
                 entryFileNames: 'main.js',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
external: [
'react',
'react/jsx-runtime',
'react/jsx-dev-runtime',
'react-dom',
'react-dom/client',
],
output: {
format: 'es',
entryFileNames: 'main.js',
dir: resolve(editorRoot, '../../public/dist/editor'),
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@vite.config.ts` around lines 27 - 33, The vite.config.ts contains an
external: [...] block listing 'react', 'react/jsx-runtime',
'react/jsx-dev-runtime', 'react-dom', 'react-dom/client' which causes those
packages to be treated as externals and leaves unresolved bare imports when
dist/editor/main.js is loaded; remove the external property (or at least these
React-related entries) so Vite bundles React into the editor build; update any
comments if present and verify main.tsx imports resolve correctly after
rebuilding.

@ViewFromTheBox
ViewFromTheBox merged commit 38fbf63 into add/phase-one Apr 14, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from In Review to Done in ArtisanPack UI Overview Apr 14, 2026
@ViewFromTheBox
ViewFromTheBox deleted the enhancement/276-delete-alpine-editor-phase-0-spike branch April 14, 2026 21:55
@coderabbitai coderabbitai Bot mentioned this pull request Apr 20, 2026
9 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

Phase 1.14: Delete Alpine editor + Phase 0 spike cleanup

1 participant