-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata.json
More file actions
378 lines (378 loc) · 15.3 KB
/
Copy pathdata.json
File metadata and controls
378 lines (378 loc) · 15.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
{
"site": {
"title": "fstache",
"tagline": "The Future of Static Site Generation",
"description": "Blazing fast mustache compiling with premium aesthetics and developer-first workflows."
},
"navigation": [
{ "name": "Features", "url": "#features" },
{ "name": "Architecture", "url": "#architecture" },
{ "name": "Testimonials", "url": "#testimonials" },
{ "name": "Sitemap", "url": "#sitemap" },
{ "name": "Comparison", "url": "#comparison" },
{ "name": "Blog", "url": "#blog" },
{ "name": "Changelog", "url": "#changelog" },
{ "name": "FAQs", "url": "#faqs" },
{ "name": "Plans", "url": "#pricing" }
],
"marketing_banner_html": "<span class=\"bg-primary/20 text-primary-hover border border-primary/30 px-2.5 py-0.5 rounded-full text-xs font-bold mr-2\">LAUNCH EVENT</span> fstache v2.0 Playgrounds are now live! Explore the compiler sandbox below. <a href=\"#architecture\" class=\"underline font-medium hover:opacity-80 transition-opacity ml-1\">Try simulator →</a>",
"announcements": [],
"hero": {
"gradient_text": "Blazing Fast Templating",
"subheading": "Compile complex mustache layouts in microseconds, zero overhead, pure performance.",
"cta_primary": "Get Started",
"cta_secondary": "View Docs"
},
"stats": [
{ "value": "1.2ms", "label": "Avg. Render Time" },
{ "value": "100%", "label": "Spec Compliant" },
{ "value": "Zero", "label": "JS Dependencies" }
],
"features": [
{
"icon": "⚡",
"title": "Microsecond Execution",
"description": "Engineered with maximum efficiency. Mustache templates render with minimal memory footprint and zero CPU waste."
},
{
"icon": "🧩",
"title": "Modular Partials",
"description": "Effortlessly compose complex layouts. Nest headers, footers, card grids, and custom wrappers with ease."
},
{
"icon": "🎨",
"title": "Aesthetic-First Design",
"description": "Includes fully responsive CSS custom properties, glassmorphism containers, and beautiful gradients out of the box."
}
],
"testimonials": [
{
"avatar": "⚡",
"quote": "Compiling our product catalog documentation went from 8 seconds to 12 milliseconds. fstache is an absolute game-changer for static site generation.",
"author": "Sarah Chen",
"role": "VP of Engineering at DocuFlow"
},
{
"avatar": "🌐",
"quote": "We integrated fstache into our edge workers. It renders heavily-nested static dashboards with zero latency spikes and under 2ms TTFB.",
"author": "Marcus Vance",
"role": "Principal Edge Architect at CDNify"
}
],
"docs_tree": [
{
"name": "Documentation Blueprint",
"has_children": true,
"children": [
{
"name": "Getting Started",
"has_children": true,
"children": [
{ "name": "Introduction", "children": [] },
{ "name": "Quick Installation", "children": [] },
{
"name": "Advanced Configuration",
"has_children": true,
"children": [
{ "name": "Docker Environments", "children": [] },
{ "name": "UV CLI Integrations", "children": [] },
{ "name": "Docker Swarm Configurations", "children": [] },
{ "name": "Kubernetes Sidecar Injectors", "children": [] }
]
}
]
},
{
"name": "Spec Compliance Guide",
"has_children": true,
"children": [
{ "name": "Core Interpolation", "children": [] },
{ "name": "Template Inheritance Layouts", "children": [] },
{ "name": "Delimiter Modifications", "children": [] },
{ "name": "Escaping Rules & Controls", "children": [] },
{ "name": "Implicit Iteration Scopes", "children": [] }
]
},
{
"name": "Performance Tuning",
"has_children": true,
"children": [
{ "name": "Pre-compilation Caching", "children": [] },
{ "name": "Minification Workflows", "children": [] },
{ "name": "Memory Overhead Analysis", "children": [] },
{ "name": "Static Code Elimination", "children": [] }
]
},
{
"name": "Integrations",
"has_children": true,
"children": [
{ "name": "Next.js Static Slots", "children": [] },
{ "name": "Vite Bundler Plugin", "children": [] },
{ "name": "Rust Cargo Bindings", "children": [] },
{ "name": "Webpack Loader Hooks", "children": [] }
]
},
{
"name": "API Specifications Reference",
"has_children": true,
"children": [
{ "name": "Compile Endpoint API", "children": [] },
{ "name": "Context Validation Rules", "children": [] },
{ "name": "Metadata Payload Format", "children": [] },
{ "name": "Rate Limiting Headers", "children": [] },
{ "name": "Error Response Handlers", "children": [] }
]
}
]
}
],
"comparison_matrix": [
{
"feature": "Static Compilation Speed",
"fstache": "1.2ms (Microseconds)",
"handlebars": "28ms",
"jinja2": "45ms",
"liquid": "82ms",
"pug": "110ms"
},
{
"feature": "JS Runtime Bloat",
"fstache": "Zero Dependencies",
"handlebars": "320KiB Bundled JS",
"jinja2": "Not Applicable",
"liquid": "210KiB Bundled JS",
"pug": "450KiB Bundled JS"
},
{
"feature": "Delimiter Customization",
"fstache": "Native Delimiter Switching",
"handlebars": "Configurable (Requires JS)",
"jinja2": "Configurable (Requires Python)",
"liquid": "Fixed syntax",
"pug": "Not supported"
},
{
"feature": "Logic-less Constraints",
"fstache": "Strict (Separates concerns)",
"handlebars": "Moderate (Helpers allowed)",
"jinja2": "None (Full logic code)",
"liquid": "None (Full logic tags)",
"pug": "None (Full JS execution)"
},
{
"feature": "Edge Worker Execution",
"fstache": "Highly optimized (Pure static)",
"handlebars": "Requires heavy polyfills",
"jinja2": "Unsupported",
"liquid": "Slow bootstrap",
"pug": "Unsupported"
},
{
"feature": "Recursive Partial Invocations",
"fstache": "Supported natively",
"handlebars": "Requires custom helpers",
"jinja2": "Supported via macros",
"liquid": "Supported",
"pug": "Supported via mixins"
}
],
"blog_posts": [
{
"badge": "COMPILER",
"title": "Unlocking Microsecond Render Times in Static Site Generators",
"teaser": "How we re-engineered string concatenation tokenizers to bypass standard engine bottlenecks, achieving rendering under 1.5ms for production dashboards.",
"author": "Sarah Chen",
"date": "June 15, 2026",
"read_time": "5 min read"
},
{
"badge": "AESTHETICS",
"title": "Designing Sleek Glassmorphism UIs with Tailwind CSS v4",
"teaser": "A comprehensive deep dive into new utility variables, backdrop-filters, and gradient borders in Tailwind v4 that compose modern dashboard environments.",
"author": "David Lin",
"date": "June 12, 2026",
"read_time": "4 min read"
},
{
"badge": "SPECIFICATION",
"title": "The Power of Delimiter Switching in Complex Markup",
"teaser": "Mustache delimiter switching enables literal syntax blocks for other templates (like Vue, Angular, or Django templates) without escape sequence issues.",
"author": "Elena Rostova",
"date": "June 08, 2026",
"read_time": "3 min read"
},
{
"badge": "PERFORMANCE",
"title": "Edge Worker Renders: Bypassing Cold Start Latencies",
"teaser": "Edge architectures require light, zero-dependency HTML pipelines. We demonstrate how eliminating bundle dependencies enables 2ms TTFB across regions.",
"author": "Marcus Vance",
"date": "May 30, 2026",
"read_time": "6 min read"
},
{
"badge": "CASE STUDY",
"title": "How CDNify Scaled Dashboards to 10M Monthly Readers",
"teaser": "A technical case study on how CDNify transitioned their analytics status panel to pre-rendered Mustache layouts, slashing server bills by 85%.",
"author": "Jessica Miller",
"date": "May 25, 2026",
"read_time": "8 min read"
},
{
"badge": "API REFERENCE",
"title": "Standardizing JSON Schema Layout Contracts",
"teaser": "Enforcing schema boundaries between data services and template presentation layers ensures safety, code cleanliness, and rapid UI iteration.",
"author": "Alex Mercer",
"date": "May 18, 2026",
"read_time": "4 min read"
},
{
"badge": "SECURITY",
"title": "Mitigating Template Injection Vulnerabilities in Static Sites",
"teaser": "Template injection occurs when untrusted user inputs are dynamically compiled. We analyze safety controls, sandboxed build nodes, and HTML escaping protocols in Mustache.",
"author": "Liam Vance",
"date": "May 10, 2026",
"read_time": "5 min read"
},
{
"badge": "EDGE COMPUTING",
"title": "Deploying Dynamic Static Pre-Renders to Cloudflare Workers",
"teaser": "By combining CDN edge logic with pre-compiled layout nodes, developers can achieve static generation speed with dynamic personalization parameters on the fly.",
"author": "Sophia Loren",
"date": "May 02, 2026",
"read_time": "7 min read"
}
],
"changelog": [
{
"version": "v2.0.0-beta",
"date": "June 2026",
"additions": [
"Added standard support for recursive partial templates.",
"Integrated Tailwind CSS v4 support in layouts.",
"Added Alpine.js interactivity slots."
],
"fixes": [
"Fixed context stack bubbling lookup on empty child collections.",
"Resolved whitespace stripping tags issue in nested delimiter shifts."
]
},
{
"version": "v1.4.2",
"date": "April 2026",
"additions": [
"Added implicit iterator syntax parsing.",
"Introduced layout slot parent template composition."
],
"fixes": [
"Resolved SVG rendering crash on Safari 16.4 browsers."
]
},
{
"version": "v1.3.0",
"date": "January 2026",
"additions": [
"Integrated CLI compilation pipeline.",
"Added triple-mustache unescaped variable injections."
],
"fixes": [
"Fixed HTML character escaping logic on ampersand tags."
]
}
],
"faqs": [
{
"id": "faq-1",
"question": "Why is Mustache called 'logic-less' templating?",
"answer": "Because it doesn't contain explicit conditional logic statements (like 'if/else' or loops). The rendering behavior is driven entirely by the structure of the data you pass in. This keeps templates highly readable, maintainable, and extremely performant."
},
{
"id": "faq-2",
"question": "What is the benefit of using unescaped HTML tags?",
"answer": "By default, variables are HTML-escaped to prevent XSS attacks. Using triple braces allows you to inject raw, styled HTML snippets directly into the layout from trusted CMS sources."
},
{
"id": "faq-3",
"question": "Can I nest partial templates dynamically?",
"answer": "Yes, Mustache supports nesting partial templates. Partials are loaded at compile time, which enables complex layout composition while maintaining maximum performance."
},
{
"id": "faq-4",
"question": "What is context stack bubbling and how is it resolved?",
"answer": "Mustache searches parent scopes if a variable is not found in the current object context. To prevent infinite loops during recursion, always specify empty termination properties (like 'children: []') on child records."
},
{
"id": "faq-5",
"question": "How does dynamic delimiter switching work?",
"answer": "Using the syntax '{{=<% %>=}}', you can temporarily redefine Mustache tags to '<%' and '%>'. This is highly useful when compiling content that naturally uses double curlies, like AngularJS or Vue markup."
},
{
"id": "faq-6",
"question": "Is there a production-ready CLI compiler for pipelines?",
"answer": "Yes. fstache compiles using Python's UV runner for sandbox Chevron builds, or can be packaged inside Docker containers to run standard Mustache compilers in CI/CD pipelines."
},
{
"id": "faq-7",
"question": "Can I style compiled HTML templates with Tailwind CSS?",
"answer": "Absolutely. By referencing a browser compilation script or incorporating the Tailwind compiler, you can style all templates using standard utility classes and responsive grids."
},
{
"id": "faq-8",
"question": "How does the implicit iterator work?",
"answer": "When looping over plain arrays of strings or numbers, the implicit iterator '{{.}}' acts as a placeholder representing the current array element, keeping your JSON files flat and lightweight."
},
{
"id": "faq-9",
"question": "Can I use Mustache templates for email generation?",
"answer": "Absolutely. Because Mustache outputs static HTML and does not require JavaScript engines or runtime dependencies, it is the industry standard for compiling transactional HTML email templates with embedded inline CSS."
},
{
"id": "faq-10",
"question": "What is the difference between Mustache and Handlebars?",
"answer": "Handlebars is a superset of Mustache. While Mustache enforces a strict logic-less standard without helpers or custom blocks, Handlebars extends the syntax to support custom registerHelper blocks, execution logic, and dynamic paths."
},
{
"id": "faq-11",
"question": "Does fstache support server-side rendering (SSR)?",
"answer": "Yes. Due to the high execution speed (under 1.5ms per render), fstache can be deployed inside Node.js, Go, or Python web servers to process server-side rendering for millions of requests with minimal memory overhead."
},
{
"id": "faq-12",
"question": "How do I secure Mustache template injection paths?",
"answer": "Template injection occurs when untrusted user input is directly evaluated as template source code. Always separate static layout structure from runtime data variables by pre-defining all compiled layouts and validating variables against JSON schemas before render execution."
}
],
"show_pricing": true,
"pricing_plans": [
{
"name": "Developer",
"price_monthly": "3 cookies",
"price_annual": "3 cookies",
"price_annual_billed": "free forever",
"popular": false,
"features": [
"Standard compiler",
"Local development mode",
"Community Discord access"
]
},
{
"name": "Professional",
"price_monthly": "7 cookies",
"price_annual": "7 cookies",
"price_annual_billed": "still free",
"popular": true,
"features": [
"Unlimited CLI compiles",
"Advanced partial resolution",
"Priority email support",
"Enterprise scale configs"
]
}
],
"author": {
"name": "fstache",
"url": "https://github.com/servletcloud/fstache"
},
"year": "2026"
}