The app becomes a Rails 8 application; the Vue frontend moves to app/frontend and is served through vite_rails. - Without an account documents stay in the browser (IndexedDB). Sign-in is by magic link or the 6-digit code from the same mail; afterwards local documents can be uploaded into the account. - Server documents (/d/<id>) with versioned saves and a single-editor lock per browser tab; others see them read-only and follow by polling. - Sharing via link (works without an account) and via e-mail invitation, roles viewer/editor; the owner manages links and people. - Store gains a read-only mode that blocks all content changes. - Solid Queue, Cache and Cable share the one PostgreSQL database. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 lines
331 B
TypeScript
11 lines
331 B
TypeScript
import { createApp } from 'vue';
|
|
import App from '../App.vue';
|
|
import { useLibrary } from '../store/library';
|
|
import '../styles/main.css';
|
|
|
|
// open the document (from IndexedDB) before the first render, so the app
|
|
// never flashes an empty document first
|
|
void useLibrary()
|
|
.init()
|
|
.finally(() => createApp(App).mount('#app'));
|