# What's New Welcome to OSW Studio! This page highlights the latest features and updates. **First time here?** Start with the **[Overview](?doc=overview)** or jump straight to **[Getting Started](?doc=getting-started)** to build your first website in 5 minutes. --- ## v1.20.0 - Admin Dashboard for server mode A new dashboard is now the landing page after login, giving you a quick overview of your server: - **System** - OSWS version, Node.js version, uptime, memory usage - **Content** - Projects, templates, skills, and total files - **Hosting** - Published sites, sites with databases, storage used - **Traffic** - Requests per hour/day, error counts, top sites, recent errors Traffic is logged server-side with automatic 7-day retention. --- ## v1.19.0 - Server Mode Backend Features This release adds complete backend functionality for published sites, including edge functions, database management, server functions, secrets, and AI integration. ### Edge Functions Create serverless JavaScript endpoints for your published sites: - **REST API endpoints** - GET, POST, PUT, DELETE, or ANY method - **Database access** - Query your site's SQLite database via `db.query()` and `db.run()` - **External requests** - Use `fetch()` to call external APIs - **Sandboxed execution** - Safe VM-based runtime with configurable timeouts (1-30 seconds) - **Secrets access** - Use `secrets.get()`, `secrets.has()`, `secrets.list()` for API keys ```javascript // Example: GET /api/sites/{siteId}/functions/get-users const users = db.query('SELECT * FROM users LIMIT 10'); Response.json({ users }); ``` ### Server Functions (Helpers) Create reusable JavaScript helpers callable from edge functions: - **Code reuse** - Define shared logic once, use across all edge functions via `server.functionName()` - **Same security model** - Runs in the same sandboxed VM as edge functions - **Full access** - Helpers have access to `db`, `fetch`, and `console` ```javascript // Server function "validateAuth" const [apiKey] = args; const users = db.query('SELECT * FROM users WHERE api_key = ?', [apiKey]); return users.length > 0 ? { valid: true, user: users[0] } : { valid: false }; ``` ### Secrets Management Encrypted storage for API keys and tokens: - AES-256-GCM encryption with unique IVs per secret - Admin-only access, values never logged or exposed - AI can create secret placeholders, user sets values in admin UI ### Database Tools - **SQL Editor** - Execute raw SQL queries with Monaco editor and query history - **Schema Viewer** - Browse database structure with expandable table/column tree - **Execution Logs** - Monitor function invocations with status, duration, timestamps ### Server Context Integration The AI can now understand and work with your site's server features! When you select a site: - **Site Selector** dropdown in workspace header to choose site context - **`/.server/` hidden folder** with transient files containing server context - AI receives edge functions, database schema, server functions, and secret names #### The `/.server/` Folder A hidden folder appears in the file explorer (right-click → "Show Hidden Files"): - `db/schema.sql` - Database schema (read-only, use sqlite3 for DDL) - `edge-functions/*.json` - Edge functions (editable) - `server-functions/*.json` - Server functions (editable) - `secrets/*.json` - Secret placeholders (editable - AI creates, user sets values) ### AI Read-Write Access to Server Features The AI can create, modify, and delete server features: #### SQL Queries with `sqlite3` ``` sqlite3 "SELECT * FROM products" sqlite3 -json "SELECT * FROM users WHERE active = 1" sqlite3 "CREATE TABLE orders (id INTEGER PRIMARY KEY, total REAL)" ``` System tables are protected from modification. #### Creating Functions Ask the AI to create endpoints or helpers: ``` Create an edge function called "list-products" that returns all products ``` Functions are stored as JSON files: ```json { "name": "list-products", "method": "GET", "enabled": true, "timeoutMs": 5000, "code": "Response.json(db.query('SELECT * FROM products'));" } ``` ### Edge Function Routing for Published Sites Published sites can call edge functions using simple paths like `/submit-contact` instead of the full API URL. A lightweight interceptor script (~1.5KB) is injected into published HTML that: - Intercepts `fetch()` and `XMLHttpRequest` calls - Detects paths without file extensions (e.g., `/submit-contact`, not `/styles.css`) - Routes them to `/api/sites/{siteId}/functions/{path}` - Handles form submissions automatically ```javascript // Your frontend code - simple and clean! const response = await fetch('/submit-contact', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John', email: 'john@example.com' }) }); ``` Forms work automatically too: ```html
``` Custom events for response handling: ```javascript document.addEventListener('edge-function-response', (e) => { console.log('Result:', e.detail.result); }); document.addEventListener('edge-function-error', (e) => { console.error('Error:', e.detail.error); }); ``` ### Preview Edge Function Support The live preview now supports edge function routing when a site is selected. Test your edge functions directly in the preview without publishing first. **[Server Features Guide →](?doc=server-features)** | **[Server Mode Guide →](?doc=server-mode)** | **[Edge Functions Guide →](?doc=edge-functions)** --- ## v1.18.0 ### SQLite Migration - Simpler Server Mode Server Mode now uses SQLite instead of PostgreSQL. This means: - **Zero database setup** - No need to install or configure PostgreSQL - **Just run it** - `npm install && npm start` is all you need - **Portable** - All data stored in local files, easy to backup and move ### Per-Site Databases Each published site now has its own SQLite database containing its files, settings, and analytics. This keeps sites isolated from each other. **Storage structure:** - `data/osws.sqlite` - Your projects, templates, and skills - `sites/{siteId}/site.sqlite` - Each site's files and analytics ### Breaking Change PostgreSQL is no longer supported. If you have an existing Server Mode deployment with PostgreSQL, you'll need to migrate your data manually. **[Server Mode Guide →](?doc=server-mode)** --- ## v1.17.0 ### Reasoning Token Support See what the AI is thinking! Models with reasoning capabilities now display their thought process in a collapsible "reasoning" block in the chat panel. - **Anthropic extended thinking** - Claude models with thinking enabled - **DeepSeek reasoning models** - DeepSeek v3.2 and other reasoning-capable models - **Gemini thinking models** - Gemini Pro 3 with thinking enabled ### Reasoning Toggle Enable or disable reasoning on a per-model basis directly from the model selector. The toggle appears for models that support it. ### Malformed Tool Call Detection The AI now auto-detects when a model accidentally writes tool syntax as text instead of properly invoking functions, and automatically prompts it to retry correctly. ### UI Improvements - Renamed "Thinking..." indicator to "Waiting for response..." for clarity - Fixed indicator sometimes persisting after the response completed --- ## v1.16.0 ### Server Mode Self-host OSW Studio for a complete web publishing platform. Server Mode adds: - **Admin authentication** - Password-protected admin area - **Project sync** - Push projects to the server, pull them back to any browser - **Static site publishing** - Publish projects directly at `/sites/{siteId}/` with clean URLs - **Site settings** - Configure scripts, analytics, SEO meta tags, and compliance (cookie consent, GDPR) - **Built-in analytics** - Privacy-focused tracking, or integrate Google Analytics, Plausible, and more - **Auto-generated files** - Sitemap.xml and robots.txt created on publish Server Mode is optional and requires setup. It's still being actively developed - expect improvements to authentication, publishing, and site management in future releases. **[Server Mode Guide →](?doc=server-mode)** ### In-App Documentation Browse all documentation without leaving OSW Studio. Access guides from the sidebar under Docs. ### Gemini Thinking Model Support Full compatibility with Gemini thinking models via OpenRouter. ### Skills System Enhancements - Split `osw-workflow` into focused skills: `osw-planning` (multi-page sites) and `osw-one-shot` (landing pages) - Skills now appear in the project structure shown to AI ### Debug Panel Terminal The Debug panel now includes a terminal for testing VFS shell commands directly. --- ## v1.15.0 - **Skills System** - Create, import, and export AI skills with markdown-based editor - **Built-in skills** - OSW Workflow, Handlebars Advanced, Accessibility (WCAG 2.1 AA) - **Skills tab** - New tab alongside Projects and Templates --- ## v1.14.0 - **Event-driven chat** - Real-time event streaming with improved UI responsiveness - **Debug panel** - Real-time event monitoring with filtering and auto-scroll - **Handlebars subdirectories** - Organize templates in `/templates/components/`, `/templates/partials/`, etc. --- ## v1.13.0 - **Templates system** - Create, export, and import reusable project templates - **Template browser** - Grid/list views, search, and sorting - **Project screenshots** - Automatic preview captures --- ## v1.12.0 - Rebranded from DeepStudio to OSW Studio - Dual mode system: Chat mode (read-only) and Code mode (full editing) - Consolidated IndexedDB architecture --- ## v1.0.0 - 8 AI providers (OpenRouter, OpenAI, Anthropic, Google, Groq, Ollama, LM Studio, SambaNova) - Virtual file system with project management - Live preview with real-time updates - Multi-tab Monaco editor - Export to ZIP for deployment --- **Ready to go?** Head back to **[Projects](?nav=projects)** or **[browse all docs](?doc=overview)**.