# Changelog All notable changes to the Strata framework will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- ## [Unreleased] ### Planned - Component imports (`{ s-imp "@components/Button" }`) - SCSS to CSS compilation pipeline - Production build optimizations - TypeScript type generation for templates - VSCode extension for syntax highlighting - Nested component slots --- ## [0.1.0] - 2026-01-16 ### Added #### Core Framework - **Static Compiler**: Build-time template resolution engine - Resolves all template syntax to pure HTML - Zero runtime framework overhead - Caches API responses during build - **STRC Design Pattern**: Static Template Resolution with Compartmentalized Layers - Clear separation between template, compiler, service, and API layers - Strict import hierarchy enforcement - File-type based responsibility assignment #### Template Syntax - **Variable Interpolation**: `{ variableName }` - Supports dot notation for nested properties (`{ user.name }`) - Handles strings, numbers, booleans, arrays, objects - **Loop Directive**: `{ s-for item in items }` ... `{ /s-for }` - Iterates over arrays - Optional index variable: `{ s-for item, index in items }` - Nested loops supported - **Conditional Directives**: `{ s-if }`, `{ s-elif }`, `{ s-else }`, `{ /s-if }` - Boolean evaluation - Negation with `!` - Comparison operators: `===`, `==`, `!==`, `!=`, `>`, `<`, `>=`, `<=` #### File Types - `.strata` - HTML template files - `.compiler.sts` - Build-time variable definitions - `.service.sts` - Business logic layer (build + runtime) - `.api.sts` - API contract definitions - `.sts` - Pure utility functions - `.scss` - Component/page styles #### CLI Tools - `strata-compile dev` - Development server with Hot Module Replacement (HMR) - `strata-compile build` - Production build - `strata-compile preview` - Preview production build - Generator commands: - `strata-compile gcomponent ` - `strata-compile gpage ` - `strata-compile gservice ` - `strata-compile gapi ` - `strata-compile gutil ` - `strata-compile gstore ` #### Project Scaffolding - `create-strata` CLI tool - Pokemon API example template - Index page with ASCII art branding - Pre-configured project structure #### Development Server - WebSocket-based Hot Module Replacement - Automatic rebuild on file changes - CSS hot reload without page refresh - Component change detection #### Parser - Custom Strata template parser - AST-based template processing - Balanced bracket extraction for complex structures - JavaScript-to-JSON conversion for data parsing ### Technical Details #### Compiler Implementation - Written in Go for maximum performance - Regex-based export extraction from `.compiler.sts` - Recursive template resolution - Property access chain support (`item.nested.value`) #### Build Process 1. Parse `.strata` template to AST 2. Load exports from `.compiler.sts` 3. Resolve all directives (for, if, interpolation) 4. Output pure HTML string 5. Bundle with optional runtime service code --- ## [0.0.1] - 2026-01-15 ### Added - Initial project structure - Basic Go compiler setup - Makefile for build automation - Development environment configuration --- ## Version History Summary | Version | Date | Highlights | |---------|------|------------| | 0.1.0 | 2026-01-16 | Core framework, STRC pattern, template syntax, CLI tools | | 0.0.1 | 2026-01-15 | Initial project setup | --- ## Migration Guides ### Migrating to 0.1.0 This is the first functional release. No migration required. --- ## Deprecations None yet. --- ## Security No security vulnerabilities reported. To report a security issue, please open an issue at https://github.com/CarGDev/strata/issues --- [Unreleased]: https://github.com/CarGDev/strata/compare/v0.1.0...HEAD [0.1.0]: https://github.com/CarGDev/strata/compare/v0.0.1...v0.1.0 [0.0.1]: https://github.com/CarGDev/strata/releases/tag/v0.0.1