free-framework 4.8.7 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -9
- package/cli/commands/make.js +21 -12
- package/compiler/generator.js +11 -3
- package/package.json +1 -1
- package/runtime/cluster.js +5 -5
- package/runtime/middleware/firewall.js +38 -0
- package/runtime/server.js +6 -2
- package/templates/app-template/.free/app.js +1555 -0
- package/templates/app-template/app/controllers/ProductController.free +31 -0
- package/templates/app-template/app/models/Product.free +12 -0
- package/templates/app-template/public/free-runtime.js +1 -0
- package/templates/app-template/resources/components/ProductCard.free +16 -0
- package/templates/app-template/resources/views/docs.free +186 -16
- package/templates/app-template/resources/views/home.free +80 -55
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product Controller (v5.0.0 [Convergence])
|
|
3
|
+
* Unified Logic for API and Web
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
action index {
|
|
7
|
+
// Laravel-style Collection logic
|
|
8
|
+
const data = await ORM.all('Product');
|
|
9
|
+
return { success: true, data };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
action show {
|
|
13
|
+
const item = await ORM.find('Product', { id: params.id });
|
|
14
|
+
return { success: !!item, data: item };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
action store {
|
|
18
|
+
// Validation logic here
|
|
19
|
+
const newItem = await ORM.create('Product', body);
|
|
20
|
+
return { success: true, id: newItem.id };
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
action update {
|
|
24
|
+
await ORM.update('Product', { id: params.id }, body);
|
|
25
|
+
return { success: true };
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
action delete {
|
|
29
|
+
await ORM.delete('Product', { id: params.id });
|
|
30
|
+
return { success: true };
|
|
31
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Free Ultra Enterprise Model: Product
|
|
2
|
+
// Optimized for SQLite / ORM v5.0.0
|
|
3
|
+
|
|
4
|
+
model Product {
|
|
5
|
+
id integer primary_key autoincrement
|
|
6
|
+
uuid string unique
|
|
7
|
+
name string index
|
|
8
|
+
email string unique
|
|
9
|
+
status string default('active')
|
|
10
|
+
created_at timestamp default(now)
|
|
11
|
+
updated_at timestamp default(now)
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{var _=(s,i)=>()=>(i||s((i={exports:{}}).exports,i),i.exports);var g=_(()=>{(function(){console.log("\u{1F48E} Free Ultra Engine Activated");let s=document.getElementById("free-app-root"),i=document.createElement("div");i.id="free-loader",Object.assign(i.style,{position:"fixed",top:"0",left:"0",height:"3px",width:"0%",backgroundColor:"#00ff88",zIndex:"10000",transition:"width 0.3s ease, opacity 0.3s ease",boxShadow:"0 0 10px #00ff88"}),document.body.appendChild(i);function f(o){i.style.opacity="1",i.style.width=o+"%",o>=100&&setTimeout(()=>{i.style.opacity="0",setTimeout(()=>i.style.width="0%",300)},300)}async function d(o,t=!0){f(30);try{let e=await fetch(o,{headers:{"X-Free-Partial":"true"}});if(f(70),!e.ok)throw new Error("Navigation failed");let r=await e.json();s.style.opacity="0",s.style.transform="translateY(10px)",s.style.transition="opacity 0.2s ease, transform 0.2s ease",setTimeout(()=>{s.innerHTML=r.content,document.title=r.title,t&&history.pushState({url:o},r.title,o),u(),s.style.opacity="1",s.style.transform="translateY(0)",f(100),window.scrollTo(0,0)},200)}catch(e){console.error("SPA Error:",e),window.location.href=o}}function u(){document.querySelectorAll(".free-component[data-component]").forEach(t=>{if(t.getAttribute("data-hydrated"))return;let e=t.getAttribute("data-component"),r=JSON.parse(t.getAttribute("data-state")||"{}"),a=t.getAttribute("data-free-on-mount"),n=t.getAttribute("data-free-on-destroy");if(a&&window.__free_actions&&window.__free_actions[e]&&window.__free_actions[e][a])try{window.__free_actions[e][a](r)}catch(c){console.error(`[onMount] ${e}:`,c)}if(t.querySelectorAll("*").forEach(c=>{for(let l of c.attributes)if(l.name.startsWith("data-on-")){let w=l.name.replace("data-on-",""),m=l.value;c.addEventListener(w,h=>{let y=l.value;if(window.__free_actions&&window.__free_actions[e]&&window.__free_actions[e][y])try{window.__free_actions[e][y](r,h),t.setAttribute("data-state",JSON.stringify(r))}catch(p){console.error(`[Action] ${e} (${w}):`,p)}else console.warn(`Missing action handler for ${y} on ${w}`)})}}),t.setAttribute("data-hydrated","true"),n){let c=new MutationObserver(l=>{l.forEach(w=>{w.removedNodes.forEach(m=>{if(m===t){if(window.__free_actions&&window.__free_actions[e]&&window.__free_actions[e][n])try{window.__free_actions[e][n](r)}catch(h){console.error(`[onDestroy] ${e}:`,h)}c.disconnect()}})})});c.observe(t.parentNode,{childList:!0})}})}document.addEventListener("click",o=>{let t=o.target.closest("a");if(t&&t.href&&t.href.startsWith(window.location.origin)){let e=new URL(t.href);(e.pathname!==window.location.pathname||e.search!==window.location.search)&&(o.preventDefault(),d(t.href))}}),document.addEventListener("submit",async o=>{let t=o.target;if(t&&t.action&&t.action.startsWith(window.location.origin)){o.preventDefault(),f(30);let e=new FormData(t),r=Object.fromEntries(e.entries());try{let a=await fetch(t.action,{method:t.method||"POST",headers:{"Content-Type":"application/json","X-Free-Partial":"true"},body:JSON.stringify(r),redirect:"follow"});if(f(70),a.redirected){d(a.url);return}if(!a.ok){let n="An error occurred";try{n=(await a.json()).error||n}catch{}t.action.includes("/api/login")?d("/login?error="+encodeURIComponent(n)):d(window.location.pathname+"?error="+encodeURIComponent(n));return}try{let n=await a.json();n&&n.content?(s.style.opacity="0",setTimeout(()=>{s.innerHTML=n.content,n.title&&(document.title=n.title),u(),s.style.opacity="1",f(100)},200)):n&&n.success&&d(window.location.pathname+window.location.search)}catch{window.location.reload()}}catch(a){console.error("Form submit failed:",a),t.submit()}}},!0),window.addEventListener("popstate",o=>{o.state&&o.state.url&&d(o.state.url,!1)}),window.Free={navigate:d,async call(o,t={}){let e=document.querySelector('meta[name="csrf-token"]')?.getAttribute("content");try{let r=await fetch(`/_free/action/${o}`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":e},body:JSON.stringify(t)}),a=await r.json();if(!r.ok)throw new Error(a.error||"Action failed");return a}catch(r){throw console.error(`\u274C Action Error [${o}]:`,r.message),r}}},document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u()})()});g();})();
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component: ProductCard
|
|
3
|
+
* High-performance Interactive Island
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
component ProductCard {
|
|
7
|
+
let status = state("idle");
|
|
8
|
+
|
|
9
|
+
div class="p-4 border border-zinc-800 rounded-xl" {
|
|
10
|
+
span { text "Status: " + status }
|
|
11
|
+
button class="ml-4 px-3 py-1 bg-white text-black text-xs font-bold"
|
|
12
|
+
onClick={() => status = "active"} {
|
|
13
|
+
text "Activate"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,30 +1,200 @@
|
|
|
1
1
|
component Docs {
|
|
2
|
-
div class="
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
text "
|
|
2
|
+
div class="min-h-screen bg-black text-zinc-300 font-sans selection:bg-white selection:text-black" {
|
|
3
|
+
// Navigation / Header Space
|
|
4
|
+
div class="container-pro pt-32 pb-20" {
|
|
5
|
+
span class="badge-pro mb-4 animate-pulse" { text "v4.8.10 | Cloud Docs" }
|
|
6
|
+
h1 class="text-6xl md:text-8xl font-black text-white tracking-tighter mb-8 leading-none" {
|
|
7
|
+
text "Free Ultra"
|
|
8
|
+
br;
|
|
9
|
+
span class="text-zinc-700" { text "Documentation" }
|
|
10
|
+
}
|
|
11
|
+
p class="text-xl md:text-2xl text-zinc-500 max-w-2xl leading-relaxed mb-12" {
|
|
12
|
+
text "The complete 'A to Z' guide to mastering the world's fastest Islands Architecture framework."
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
div class="flex flex-wrap gap-4" {
|
|
16
|
+
a href="#philosophy" class="btn-pro" { text "Core Philosophy" }
|
|
17
|
+
a href="#cli" class="btn-outline" { text "CLI Commands" }
|
|
18
|
+
a href="#vscode" class="btn-outline" { text "VS Code Setup" }
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Content Sections
|
|
23
|
+
div class="container-pro space-y-32 pb-40" {
|
|
24
|
+
|
|
25
|
+
// 1. Core Philosophy
|
|
26
|
+
section id="philosophy" {
|
|
27
|
+
div class="grid md:grid-cols-2 gap-16 items-start" {
|
|
28
|
+
div {
|
|
29
|
+
h2 class="text-4xl font-bold text-white mb-6 tracking-tight" { text "1. Core Philosophy" }
|
|
30
|
+
p class="mb-6 leading-relaxed" {
|
|
31
|
+
text "Free Ultra isn't just another framework. It's a high-performance engine built on the principle of "
|
|
32
|
+
strong class="text-white" { text "Zero-JS by Default" }
|
|
33
|
+
text ". We use "
|
|
34
|
+
strong class="text-white" { text "Islands Architecture" }
|
|
35
|
+
text " to ensure your pages load instantly while remaining fully interactive."
|
|
36
|
+
}
|
|
37
|
+
ul class="space-y-4 text-sm" {
|
|
38
|
+
li class="flex gap-3" { span class="text-white" { text "•" } text "Blazing-fast SSR powered by HyperExpress." }
|
|
39
|
+
li class="flex gap-3" { span class="text-white" { text "•" } text "Selective Hydration: Only JavaScript that's needed enters the browser." }
|
|
40
|
+
li class="flex gap-3" { span class="text-white" { text "•" } text "Unified Syntax: The .free language unifies HTML, CSS, and Logic." }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
div class="card-pro bg-zinc-900/20" {
|
|
44
|
+
pre {
|
|
45
|
+
code {
|
|
46
|
+
text "// Pure Performance\n"
|
|
47
|
+
text "component Fast \{ \n"
|
|
48
|
+
text " h1 \{ text 'Zero Delay' \}\n"
|
|
49
|
+
text " // Static by default\n"
|
|
50
|
+
text "\}\n"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// 2. The Free Language
|
|
58
|
+
section id="language" {
|
|
59
|
+
h2 class="text-4xl font-bold text-white mb-12 tracking-tight" { text "2. The .free Language" }
|
|
60
|
+
div class="grid md:grid-cols-3 gap-8" {
|
|
61
|
+
div class="card-pro" {
|
|
62
|
+
h3 class="text-xl font-bold text-white mb-4" { text "Components" }
|
|
63
|
+
p class="text-sm leading-relaxed" {
|
|
64
|
+
text "Components are the heart of Free. Defined with the "
|
|
65
|
+
code class="text-white" { text "component" }
|
|
66
|
+
text " keyword, they encapsulate structure and scoped styling."
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
div class="card-pro" {
|
|
70
|
+
h3 class="text-xl font-bold text-white mb-4" { text "State Management" }
|
|
71
|
+
p class="text-sm leading-relaxed" {
|
|
72
|
+
text "Use "
|
|
73
|
+
code class="text-white" { text "onMount" }
|
|
74
|
+
text " and "
|
|
75
|
+
code class="text-white" { text "onDestroy" }
|
|
76
|
+
text " to manage lifecycle. Logic is handled in actions that bridge server and client."
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
div class="card-pro" {
|
|
80
|
+
h3 class="text-xl font-bold text-white mb-4" { text "Partial Rendering" }
|
|
81
|
+
p class="text-sm leading-relaxed" {
|
|
82
|
+
text "The SPA engine uses partial rendering (X-Free-Partial) to update only the content area, keeping transitions smooth as silk."
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
8
86
|
}
|
|
9
87
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
88
|
+
// 3. Routing & ORM
|
|
89
|
+
section id="orm" {
|
|
90
|
+
div class="grid md:grid-cols-2 gap-16" {
|
|
91
|
+
div {
|
|
92
|
+
h2 class="text-4xl font-bold text-white mb-6 tracking-tight" { text "3. Routing & Logic" }
|
|
93
|
+
p class="mb-6" {
|
|
94
|
+
text "Routes are separated into "
|
|
95
|
+
code class="text-white" { text "web.free" }
|
|
96
|
+
text " for HTML pages and "
|
|
97
|
+
code class="text-white" { text "api.free" }
|
|
98
|
+
text " for JSON endpoints. All logic is handled via high-speed action handlers."
|
|
99
|
+
}
|
|
100
|
+
div class="card-pro border-zinc-800" {
|
|
101
|
+
h4 class="text-white font-bold mb-2" { text "Built-in ORM" }
|
|
102
|
+
p class="text-sm" {
|
|
103
|
+
text "Zero-config SQLite integration. Run "
|
|
104
|
+
code class="text-white" { text "ORM.migrate()" }
|
|
105
|
+
text " and your models are ready. No complex drivers or boilerplate needed."
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
div class="card-pro bg-zinc-950" {
|
|
110
|
+
pre {
|
|
111
|
+
code {
|
|
112
|
+
text "get \"/dashboard\" -> Dashboard\n\n"
|
|
113
|
+
text "post \"/api/login\" \{ \n"
|
|
114
|
+
text " const user = await ORM.find('User', \{ email: body.email \});\n"
|
|
115
|
+
text " return \{ success: !!user \};\n"
|
|
116
|
+
text "\}"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
14
120
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// 4. CLI Power-user
|
|
124
|
+
section id="cli" {
|
|
125
|
+
h2 class="text-4xl font-bold text-white mb-12 tracking-tight" { text "4. CLI Power-user Guide" }
|
|
126
|
+
div class="grid grid-cols-1 md:grid-cols-2 gap-4" {
|
|
127
|
+
div class="flex justify-between p-4 border border-zinc-800 rounded-lg hover:border-zinc-600 transition-colors" {
|
|
128
|
+
code class="text-white" { text "free serve" }
|
|
129
|
+
span class="text-zinc-600 truncate" { text "Ignites development server with HMR" }
|
|
130
|
+
}
|
|
131
|
+
div class="flex justify-between p-4 border border-zinc-800 rounded-lg hover:border-zinc-600 transition-colors" {
|
|
132
|
+
code class="text-white" { text "free make:crud <name>" }
|
|
133
|
+
span class="text-zinc-600 truncate" { text "Generates full MVC scaffold" }
|
|
134
|
+
}
|
|
135
|
+
div class="flex justify-between p-4 border border-zinc-800 rounded-lg hover:border-zinc-600 transition-colors" {
|
|
136
|
+
code class="text-white" { text "free doctor" }
|
|
137
|
+
span class="text-zinc-600 truncate" { text "Audits and repairs environment" }
|
|
138
|
+
}
|
|
139
|
+
div class="flex justify-between p-4 border border-zinc-800 rounded-lg hover:border-zinc-600 transition-colors" {
|
|
140
|
+
code class="text-white" { text "free bench" }
|
|
141
|
+
span class="text-zinc-600 truncate" { text "Runs load tests on your routes" }
|
|
142
|
+
}
|
|
143
|
+
div class="flex justify-between p-4 border border-zinc-800 rounded-lg hover:border-zinc-600 transition-colors" {
|
|
144
|
+
code class="text-white" { text "free route:list" }
|
|
145
|
+
span class="text-zinc-600 truncate" { text "Displays all registered endpoints" }
|
|
146
|
+
}
|
|
18
147
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// 5. IDE Extensions
|
|
151
|
+
section id="vscode" {
|
|
152
|
+
div class="bg-zinc-900/10 border border-zinc-800 rounded-3xl p-12" {
|
|
153
|
+
h2 class="text-4xl font-bold text-white mb-8 tracking-tight" { text "5. IDE Ecosystem" }
|
|
154
|
+
|
|
155
|
+
div class="grid md:grid-cols-2 gap-12" {
|
|
156
|
+
div {
|
|
157
|
+
h3 class="text-2xl font-bold text-white mb-4" { text "Visual Studio Code" }
|
|
158
|
+
p class="mb-6 text-sm" { text "Get syntax highlighting, auto-completion, and deep linting for .free files." }
|
|
159
|
+
div class="space-y-4" {
|
|
160
|
+
a href="https://marketplace.visualstudio.com/items?itemName=dev-omartolba.free-vscode" class="block text-zinc-400 hover:text-white transition-colors flex items-center gap-2" {
|
|
161
|
+
text "→ Install from VS Marketplace"
|
|
162
|
+
}
|
|
163
|
+
a href="https://open-vsx.org/extension/dev-omartolba/free-vscode" class="block text-zinc-400 hover:text-white transition-colors flex items-center gap-2" {
|
|
164
|
+
text "→ Install from Antigravity / Open VSX"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
div {
|
|
169
|
+
h3 class="text-2xl font-bold text-white mb-4" { text "Manual Installation" }
|
|
170
|
+
p class="mb-4 text-xs font-mono uppercase tracking-widest text-zinc-600" { text "Air-gapped Setup" }
|
|
171
|
+
div class="card-pro bg-black border-zinc-800 p-6" {
|
|
172
|
+
ol class="text-sm space-y-3" {
|
|
173
|
+
li { text "1. Download the .vsix file from GitHub." }
|
|
174
|
+
li { text "2. Open VS Code." }
|
|
175
|
+
li { text "3. Run 'Extensions: Install from VSIX...' command." }
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
22
180
|
}
|
|
23
181
|
}
|
|
24
182
|
}
|
|
183
|
+
|
|
184
|
+
// Footer
|
|
185
|
+
footer class="border-t border-zinc-900 py-20" {
|
|
186
|
+
div class="container-pro text-center" {
|
|
187
|
+
p class="text-sm text-zinc-600" {
|
|
188
|
+
text "Free Ultra Framework © 2026. Built for professionals. "
|
|
189
|
+
a href="https://omar-fathy.xyz/free-docs/guide.php" class="text-zinc-400 hover:text-white" { text "Official Encyclopedia" }
|
|
190
|
+
}
|
|
191
|
+
</div>
|
|
192
|
+
}
|
|
25
193
|
}
|
|
26
194
|
|
|
27
195
|
style {
|
|
196
|
+
html { scroll-behavior: smooth; }
|
|
28
197
|
.hero-title { background: linear-gradient(to right, #fff, #555); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
|
|
198
|
+
.badge-pro { display: inline-block; }
|
|
29
199
|
}
|
|
30
200
|
}
|
|
@@ -1,67 +1,92 @@
|
|
|
1
1
|
component Home {
|
|
2
|
-
main class="
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
h1 class="hero-title" {
|
|
11
|
-
text "The Engine for"
|
|
12
|
-
br { }
|
|
13
|
-
span class="text-zinc-600" { text "High-Performance." }
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
p class="text-xl md:text-2xl text-zinc-500 max-w-3xl mx-auto mb-12 leading-relaxed font-medium" {
|
|
17
|
-
text "Experience the future of SSR with Islands Architecture, built-in Reactive state, and Enterprise-grade security. Small footprint, infinite power."
|
|
18
|
-
}
|
|
2
|
+
main class="min-h-screen bg-black text-white selection:bg-primary/30" {
|
|
3
|
+
|
|
4
|
+
// Taskfy-themed Aura Background
|
|
5
|
+
div class="fixed inset-0 pointer-events-none opacity-20 overflow-hidden" {
|
|
6
|
+
div class="absolute -top-1/4 -left-1/4 w-1/2 h-1/2 bg-primary blur-[160px] rounded-full animate-pulse" { }
|
|
7
|
+
div class="absolute -bottom-1/4 -right-1/4 w-1/2 h-1/2 bg-blue-600 blur-[160px] rounded-full" { }
|
|
8
|
+
}
|
|
19
9
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
10
|
+
// Navigation Header
|
|
11
|
+
header class="fixed top-0 w-full z-50 px-8 py-6 backdrop-blur-md border-b border-white/5" {
|
|
12
|
+
div class="max-w-7xl mx-auto flex justify-between items-center" {
|
|
13
|
+
div class="text-xl font-black italic tracking-tighter" {
|
|
14
|
+
text "FREE "
|
|
15
|
+
span class="text-primary" { text "ULTRA" }
|
|
16
|
+
}
|
|
17
|
+
div class="flex gap-8 items-center text-[10px] font-bold uppercase tracking-widest text-zinc-500" {
|
|
18
|
+
a href="#" class="hover:text-white transition-colors" { text "Engine" }
|
|
19
|
+
a href="#" class="hover:text-white transition-colors" { text "Ecosystem" }
|
|
20
|
+
a href="https://omar-fathy.xyz/free-docs/guide.php" class="px-5 py-2 bg-white text-black rounded-lg hover:bg-primary hover:text-white transition-all shadow-xl shadow-white/5" {
|
|
21
|
+
text "Read Encyclopedia"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
29
24
|
}
|
|
30
|
-
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Hero Section: The Taskfy Portal Entrance
|
|
28
|
+
section class="relative pt-48 pb-32 px-8 overflow-hidden" {
|
|
29
|
+
div class="max-w-5xl mx-auto text-center relative z-10" {
|
|
30
|
+
div class="inline-block px-4 py-1 rounded-full bg-primary/20 border border-primary/30 mb-8" {
|
|
31
|
+
span class="text-[9px] font-black tracking-[.4em] uppercase text-primary" { text "Aura v5.0.0 High-Octane" }
|
|
32
|
+
}
|
|
33
|
+
h1 class="text-7xl md:text-9xl font-black tracking-tighter leading-none mb-10" {
|
|
34
|
+
text "The Taskfy"
|
|
35
|
+
br { }
|
|
36
|
+
span class="italic text-transparent bg-clip-text bg-gradient-to-r from-primary to-blue-400" { text "Ecosystem." }
|
|
37
|
+
}
|
|
38
|
+
p class="text-xl md:text-2xl text-zinc-500 max-w-3xl mx-auto mb-16 font-medium leading-relaxed" {
|
|
39
|
+
text "Welcome to the future of high-performance engineering. Free Ultra merges Laravel's elegance, React's reactivity, and Node.js speed into one world-class engine."
|
|
40
|
+
}
|
|
31
41
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
div class="flex flex-wrap justify-center gap-6" {
|
|
43
|
+
a href="/taskfy" class="px-10 py-5 bg-primary text-white font-black uppercase tracking-widest text-xs rounded-2xl shadow-2xl shadow-primary/40 hover:scale-105 transition-all" {
|
|
44
|
+
text "Enter Portal"
|
|
45
|
+
}
|
|
46
|
+
a href="https://github.com/dev-omartolba" class="px-10 py-5 border border-white/10 text-zinc-500 font-bold uppercase tracking-widest text-xs rounded-2xl hover:bg-white/5 transition-all" {
|
|
47
|
+
text "Signal Terminal"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
36
50
|
}
|
|
37
|
-
}
|
|
38
51
|
}
|
|
39
52
|
|
|
40
|
-
//
|
|
41
|
-
section class="
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
// Infrastructure Visualizer
|
|
54
|
+
section class="py-32 px-8 relative" {
|
|
55
|
+
div class="max-w-7xl mx-auto grid md:grid-cols-3 gap-12" {
|
|
56
|
+
div class="p-10 rounded-3xl bg-zinc-950 border border-white/5 group hover:border-primary/50 transition-all" {
|
|
57
|
+
div class="text-primary text-4xl mb-6" { text "⚙️" }
|
|
58
|
+
h3 class="text-2xl font-black mb-4 italic tracking-tighter" { text "Convergence Core" }
|
|
59
|
+
p class="text-zinc-500 leading-relaxed" {
|
|
60
|
+
text "A unified runtime that automatically optimizes your components using industry-standard patterns from the Big Three."
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
div class="p-10 rounded-3xl bg-zinc-950 border border-white/5 group hover:border-primary/50 transition-all transform md:translate-y-12" {
|
|
64
|
+
div class="text-primary text-4xl mb-6" { text "🛡️" }
|
|
65
|
+
h3 class="text-2xl font-black mb-4 italic tracking-tighter" { text "Aura Firewall" }
|
|
66
|
+
p class="text-zinc-500 leading-relaxed" {
|
|
67
|
+
text "Real-time threat detection and surgical request filtering embedded directly into the framework's heartbeat."
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
div class="p-10 rounded-3xl bg-zinc-950 border border-white/5 group hover:border-primary/50 transition-all" {
|
|
71
|
+
div class="text-primary text-4xl mb-6" { text "🚀" }
|
|
72
|
+
h3 class="text-2xl font-black mb-4 italic tracking-tighter" { text "Hyper Speed" }
|
|
73
|
+
p class="text-zinc-500 leading-relaxed" {
|
|
74
|
+
text "Native Brotli compression and uWebSockets.js integration deliver sub-millisecond response times under heavy load."
|
|
75
|
+
}
|
|
76
|
+
}
|
|
49
77
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
p class="text-base text-zinc-500 leading-relaxed" { text "Partial hydration logic that ships minimal JavaScript for maximum SEO benefits." }
|
|
56
|
-
}
|
|
57
|
-
div class="card-pro" {
|
|
58
|
-
div class="w-10 h-10 rounded-lg bg-zinc-900 border border-border flex items-center justify-center mb-6" {
|
|
59
|
-
text "🛡️"
|
|
60
|
-
}
|
|
61
|
-
h3 class="text-xl font-bold mb-3" { text "Security" }
|
|
62
|
-
p class="text-base text-zinc-500 leading-relaxed" { text "Built-in DDoS protection, CSRF guards, and secure-by-default environment." }
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
footer class="py-20 border-t border-white/5 text-center" {
|
|
81
|
+
p class="text-[10px] font-black uppercase tracking-[.6em] text-zinc-700" {
|
|
82
|
+
text "FREE ULTRA © 2026. ALL PROTOCOLS VERIFIED."
|
|
63
83
|
}
|
|
64
|
-
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
style {
|
|
87
|
+
h1 { text-shadow: 0 20px 80px rgba(59, 130, 246, 0.2); }
|
|
88
|
+
.bg-primary { background-color: #3b82f6; }
|
|
89
|
+
.text-primary { color: #3b82f6; }
|
|
65
90
|
}
|
|
66
91
|
}
|
|
67
92
|
}
|