- Static compiler with STRC pattern (Static Template Resolution with
Compartmentalized Layers)
- Template syntax: { } interpolation, { s-for }, { s-if/s-elif/s-else
}
- File types: .strata, .compiler.sts, .service.sts, .api.sts, .sts,
.scss
- CLI tools: strata-compile dev, strata-compile build, strata-compile
g (generators)
- create-strata-compile scaffolding CLI with Pokemon API example
- Dev server with WebSocket HMR (Hot Module Replacement)
- Documentation: README, ARCHITECTURE, CHANGELOG, CONTRIBUTING,
LICENSE
4.0 KiB
4.0 KiB
Changelog
All notable changes to the Strata framework will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
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
- Supports dot notation for nested properties (
-
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 buildstrata-compile preview- Preview production build- Generator commands:
strata-compile gcomponent <Name>strata-compile gpage <name>strata-compile gservice <name>strata-compile gapi <name>strata-compile gutil <name>strata-compile gstore <name>
Project Scaffolding
create-strataCLI 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
- Parse
.stratatemplate to AST - Load exports from
.compiler.sts - Resolve all directives (for, if, interpolation)
- Output pure HTML string
- 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