<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: @venelouis</title>
    <description>The latest articles on DEV Community by @venelouis (@venelouis).</description>
    <link>https://dev.to/venelouis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1272370%2F7feffc7b-74cd-45fa-a9ac-e83c4d15f240.gif</url>
      <title>DEV Community: @venelouis</title>
      <link>https://dev.to/venelouis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/venelouis"/>
    <language>en</language>
    <item>
      <title>I just created the best web FullStack framework in Rust language: the Rullst!</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Wed, 27 May 2026 22:15:30 +0000</pubDate>
      <link>https://dev.to/venelouis/i-just-created-the-best-web-fullstack-framework-in-rust-language-the-rullst-i-did-with-the-help-g74</link>
      <guid>https://dev.to/venelouis/i-just-created-the-best-web-fullstack-framework-in-rust-language-the-rullst-i-did-with-the-help-g74</guid>
      <description>&lt;h1&gt;
  
  
  Rullst - 📜🦀🌐🤖🚀
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;"Rust for those who want to build, not suffer."&lt;/em&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;📖 &lt;strong&gt;&lt;a href="https://github.com/venelouis/Rullst/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;See all the changes in our Changelog!&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
📚 &lt;strong&gt;&lt;a href="https://venelouis.github.io/Rullst" rel="noopener noreferrer"&gt;Read the Official Documentation!&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
📦 &lt;strong&gt;&lt;a href="https://crates.io/crates/rullst" rel="noopener noreferrer"&gt;View on Crates.io!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Be a &lt;strong&gt;contributor&lt;/strong&gt; to help us build the best web framework on the internet. 🦀❤️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rullst&lt;/strong&gt; (Rust + Fullstack) is an opinionated, developer-first full-stack web framework for Rust, obsessively designed for &lt;strong&gt;Emotional Productivity&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;It was created to solve the biggest problem in the Rust web ecosystem: the high barrier of entry that turns web programming into a PhD research on compiler design. We believe you should spend your energy building your business, not fighting borrow checkers and manual routing setups.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The Rullst Manifesto
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Most Rust frameworks treat the web developer like a compiler engineer. Rullst treats the developer like someone who wants to build awesome products at lightning speed."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the current ecosystem, to write a simple CRUD, you are forced to glue dozens of crates together, manually map nested routing trees, write verbose ORMs requiring multiple structs, and continuously clone variables inside dynamic HTML templates just to satisfy the borrow checker.&lt;/p&gt;

&lt;p&gt;Rullst redefines this experience. We offer an integrated, cohesive developer experience that brings the sweetness and iteration speed of &lt;strong&gt;Laravel and Next.js&lt;/strong&gt; together with the Formula 1 performance and military-grade safety of &lt;strong&gt;Rust, Axum, and Hyper&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No More Frankenstein setups:&lt;/strong&gt; A single cohesive framework managing your server (Axum), your database (&lt;code&gt;rust-eloquent&lt;/code&gt;), and your HTML rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No More Borrow Checker fights in UI:&lt;/strong&gt; Our compile-time JSX-like &lt;code&gt;html!&lt;/code&gt; macro processes pure elements on the server (SSR). It generates optimized string-builders directly at compile time. It's blazing fast, safe, and SEO-friendly by default.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First-Class Active Record ORM:&lt;/strong&gt; Native integration with your &lt;strong&gt;&lt;code&gt;rust-eloquent&lt;/code&gt;&lt;/strong&gt; package. Interacting with databases is as intuitive as &lt;code&gt;user.save()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Native Engineering &amp;amp; AI-Friendly:&lt;/strong&gt; Designed from the ground up for modern pair-programming. Strict type-safety, zero dynamic runtime magic, automatic &lt;code&gt;.ai-rules&lt;/code&gt; scaffolding, and structured schemas prevent AI agent hallucinations and allow instant compiler self-correction.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏆 Everything You Need, Built-In
&lt;/h2&gt;

&lt;p&gt;Rullst ships with &lt;strong&gt;8 completed milestones&lt;/strong&gt; covering every layer of modern web development:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🛠️ &lt;strong&gt;CLI &amp;amp; DX&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cargo rullst new&lt;/code&gt; wizard, &lt;code&gt;make:controller&lt;/code&gt;, &lt;code&gt;make:model -m&lt;/code&gt;, &lt;code&gt;make:middleware&lt;/code&gt;, &lt;code&gt;make:worker&lt;/code&gt;, &lt;code&gt;generate:openapi&lt;/code&gt;, &lt;code&gt;cargo rullst upgrade&lt;/code&gt; (self-healing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗄️ &lt;strong&gt;Database&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Active Record ORM, Migrations (&lt;code&gt;db:migrate&lt;/code&gt;, &lt;code&gt;db:rollback&lt;/code&gt;, &lt;code&gt;db:status&lt;/code&gt;), Seeders &amp;amp; Factories, HasMany / BelongsTo / BelongsToMany, Eager Loading&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔒 &lt;strong&gt;Auth &amp;amp; Security&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Argon2 hashing, JWT &amp;amp; Cookie sessions, CSRF protection, Social OAuth (Google, GitHub, Facebook, Twitter via &lt;code&gt;rust-socialite&lt;/code&gt;), &lt;code&gt;cargo rullst auth&lt;/code&gt; scaffolding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚡ &lt;strong&gt;Frontend&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;HTMX first-class support, TailwindCSS auto-integration, partial template rendering, &lt;strong&gt;Rullst Live&lt;/strong&gt; (Phoenix LiveView-inspired server-driven UI), &lt;strong&gt;Wasm Islands&lt;/strong&gt; (&lt;code&gt;#[client_component]&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📦 &lt;strong&gt;Production&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Queue (SQLite/Redis), Cache (Memory/Redis), Task Scheduler (Cron), Docker multi-stage builds, &lt;strong&gt;Rullst Horizon&lt;/strong&gt; dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🏢 &lt;strong&gt;Enterprise&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Declarative Validation, Mailer (SMTP/Resend/SendGrid), Storage (Local/S3/R2), WebSockets, Multi-Tenancy, Feature Flags, E2E Testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🚀 &lt;strong&gt;Unfair Advantage&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;AI Core&lt;/strong&gt; (&lt;code&gt;rullst::ai&lt;/code&gt; — OpenAI/Gemini/Anthropic/Ollama + RAG), &lt;strong&gt;Rullst Studio&lt;/strong&gt; (visual DB GUI), &lt;strong&gt;Self-Healing Error Console&lt;/strong&gt; (AI auto-fix), &lt;strong&gt;Hot Reloading via &lt;code&gt;dylib&lt;/code&gt;&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌍 &lt;strong&gt;Edge &amp;amp; Data&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Edge Runtime (Cloudflare Workers, Fastly, AWS Lambda@Edge), Zero-Config Distributed SQLite Replication (Turso/D1), Autonomous Upgrades&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🎨 The "Hello World" That Conquers at First Sight
&lt;/h2&gt;

&lt;p&gt;This is a complete, fully operational web server with type-safe routing, compile-time HTML rendering, and automatic XSS escaping. It is exactly &lt;strong&gt;20 lines of code&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;rullst&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;routes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nn"&gt;response&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IntoResponse&lt;/span&gt;&lt;span class="p"&gt;}};&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;impl&lt;/span&gt; &lt;span class="n"&gt;IntoResponse&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;html!&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"display: grid; place-items: center; height: 100vh; background: #090d16; color: #fff; font-family: system-ui;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;div&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-align: center;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;h1&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"font-size: 4rem; margin: 0; background: linear-gradient(135deg, #00f2fe, #4facfe); -webkit-background-clip: text; -webkit-text-fill-color: transparent;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="s"&gt;"Hello, World!"&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"color: #64748b; font-size: 1.25rem; margin-top: 1rem;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="s"&gt;"Written in Rust. Rendered in microseconds. Safe by default."&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nd"&gt;#[tokio::main]&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="nb"&gt;Box&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;dyn&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;error&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nn"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;routes!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt; &lt;span class="k"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt;
        &lt;span class="nf"&gt;.run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(())&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚡ Get Started in 10 Seconds
&lt;/h2&gt;

&lt;p&gt;Scaffold a fully operational application with our interactive CLI wizard!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Run the interactive CLI scaffolding tool&lt;/span&gt;
cargo rullst new

&lt;span class="c"&gt;# The wizard will prompt you:&lt;/span&gt;
&lt;span class="c"&gt;# 🚀 App name? (no spaces allowed) -&amp;gt; my-app&lt;/span&gt;
&lt;span class="c"&gt;# 🏗️ What would you like to build? -&amp;gt; Full-Stack Web App (SaaS, Portfolio, Blog) / REST API&lt;/span&gt;
&lt;span class="c"&gt;# 🔥 Enable Hot Reloading by default? -&amp;gt; Yes / No&lt;/span&gt;
&lt;span class="c"&gt;# 🗄️ Will your project need a Data Base? -&amp;gt; Yes / No&lt;/span&gt;
&lt;span class="c"&gt;# 💾 Select a DB Provider -&amp;gt; Sqlite / Postgres / MySQL/MariaDB&lt;/span&gt;

&lt;span class="c"&gt;# 2. Enter the project folder&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;my-app

&lt;span class="c"&gt;# 3. Start your high-performance full-stack app immediately!&lt;/span&gt;
cargo run

&lt;span class="c"&gt;# 🔥 Or enable instant Hot Reloading (no server restart!):&lt;/span&gt;
&lt;span class="nv"&gt;HOT_RELOAD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 cargo run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛠️ The Full-Stack Active Record Experience
&lt;/h2&gt;

&lt;p&gt;When your application grows, Rullst scales with you using Active Record:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;rullst&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;routes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nn"&gt;response&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IntoResponse&lt;/span&gt;&lt;span class="p"&gt;}};&lt;/span&gt;
&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;rust_eloquent&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;Eloquent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;EloquentModel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nn"&gt;sqlx&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FromRow&lt;/span&gt;&lt;span class="p"&gt;}};&lt;/span&gt;

&lt;span class="nd"&gt;#[derive(Debug,&lt;/span&gt; &lt;span class="nd"&gt;Clone,&lt;/span&gt; &lt;span class="nd"&gt;FromRow,&lt;/span&gt; &lt;span class="nd"&gt;rust_eloquent::Eloquent)]&lt;/span&gt;
&lt;span class="nd"&gt;#[eloquent(table&lt;/span&gt; &lt;span class="nd"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"users"&lt;/span&gt;&lt;span class="nd"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;i32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;pub&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;home&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;impl&lt;/span&gt; &lt;span class="n"&gt;IntoResponse&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Elegant, type-safe data fetching&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;User&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="nf"&gt;.unwrap&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nf"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;html!&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;div&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"background: #0f172a; color: #fff; padding: 5rem; text-align: center; font-family: sans-serif;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"Total Active Users: "&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="nf"&gt;.len&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 1. Declare the artisan macro here to intercept CLI arguments for migrations&lt;/span&gt;
&lt;span class="nn"&gt;rullst&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nd"&gt;artisan!&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nd"&gt;#[tokio::main]&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="nb"&gt;Box&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;dyn&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;error&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// 2. The artisan! macro automatically intercepts `db:*` commands and exits early.&lt;/span&gt;
    &lt;span class="c1"&gt;// If it's a normal run, it continues server execution here.&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nd"&gt;routes!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt; &lt;span class="k"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;];&lt;/span&gt;

    &lt;span class="nn"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;router&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;.run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(())&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🗄️ Database Migrations (Artisan CLI)
&lt;/h2&gt;

&lt;p&gt;Rullst includes an embedded, high-performance migration runner. You don't need external binaries. The framework ships with a CLI tool that parses pure Rust closures to construct your schema safely.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Scaffold a new migration using pure Rust DSL&lt;/span&gt;
cargo rullst make:migration create_users_table

&lt;span class="c"&gt;# Run all pending migrations against your database&lt;/span&gt;
cargo rullst db:migrate

&lt;span class="c"&gt;# Rollback the last batch of migrations&lt;/span&gt;
cargo rullst db:rollback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Under the hood, these commands are intercepted by the &lt;code&gt;rullst::artisan!()&lt;/code&gt; macro, guaranteeing the server never starts when you only want to migrate your database.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛡️ Self-Healing Upgrades
&lt;/h2&gt;

&lt;p&gt;Afraid of breaking changes when upgrading the framework? Don't be. Rullst was built with a "Self-Healing Upgrades" philosophy. &lt;/p&gt;

&lt;p&gt;When a new version of Rullst introduces API changes, we never break your code immediately. Instead, we use &lt;code&gt;#[deprecated]&lt;/code&gt; warnings. You can update your entire application automatically using our CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo rullst upgrade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will safely update the Rullst dependency and use Rust's powerful &lt;code&gt;cargo fix&lt;/code&gt; refactoring tools to automatically rewrite your code to match the new API signatures. Stress-free upgrades, forever.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 Hot Reloading (Zero Downtime Dev Loop)
&lt;/h2&gt;

&lt;p&gt;Rullst supports &lt;strong&gt;Hot Reloading via Dynamic Linking&lt;/strong&gt; — change your routes, handlers, and templates, and see the changes reflected &lt;strong&gt;instantly&lt;/strong&gt; without restarting the server or losing connections:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Start your app in hot-reload mode&lt;/span&gt;
&lt;span class="nv"&gt;HOT_RELOAD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 cargo run

&lt;span class="c"&gt;# ⚡ Edit any handler in src/ → Rullst detects the change&lt;/span&gt;
&lt;span class="c"&gt;# 🔄 Background recompilation of the cdylib&lt;/span&gt;
&lt;span class="c"&gt;# 🚀 Router hot-swapped atomically — zero downtime!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Under the hood, Rullst compiles your routes as a dynamic library (&lt;code&gt;cdylib&lt;/code&gt;), loads it via &lt;code&gt;libloading&lt;/code&gt;, and uses a &lt;code&gt;notify&lt;/code&gt; file-watcher to detect changes and trigger background rebuilds. The router is swapped atomically via &lt;code&gt;Arc&amp;lt;RwLock&amp;lt;Router&amp;gt;&amp;gt;&lt;/code&gt; — the HTTP server never restarts and TCP connections are never dropped.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Architecture under the hood
&lt;/h2&gt;

&lt;p&gt;Rullst is structured as a modular monorepo Cargo Workspace to optimize compile times:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;rullst&lt;/code&gt; (Core Crate):&lt;/strong&gt; Wraps and configures Axum, handles life-cycle DB injection, and exposes response types. Ships with production utilities (Queue, Cache, Scheduler), enterprise features (Validation, Mailer, Storage, WebSockets, Horizon), AI-Native core (&lt;code&gt;rullst::ai&lt;/code&gt;), Rullst Live (server-driven UI), Wasm Islands, and Hot Reloading via dynamic linking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;rullst-macros&lt;/code&gt; (Compiler-Engine):&lt;/strong&gt; Procedural JSX-like compiler that outputs safe memory-buffer string extensions at compile time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cargo-rullst&lt;/code&gt; (CLI Scaffold):&lt;/strong&gt; Scaffolds clean, isolated local-linked workspaces that compile out-of-the-box.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For detailed technical conventions, directory structures, and framework APIs, refer to our &lt;a href="//./docs/spec.md"&gt;Official Specification (SST)&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  📝 License
&lt;/h2&gt;

&lt;p&gt;Distributed under the MIT License. See &lt;code&gt;LICENSE&lt;/code&gt; for more details.&lt;/p&gt;

&lt;h1&gt;
  
  
  rust #rullst
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixi10fgydfigxue183t5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixi10fgydfigxue183t5.png" alt=" " width="673" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rullst</category>
      <category>fullstackframework</category>
      <category>rust</category>
    </item>
    <item>
      <title>A jornada natural de um webapp:</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Wed, 29 Apr 2026 03:42:22 +0000</pubDate>
      <link>https://dev.to/venelouis/a-jornada-natural-de-um-webapp-5d37</link>
      <guid>https://dev.to/venelouis/a-jornada-natural-de-um-webapp-5d37</guid>
      <description>&lt;h2&gt;
  
  
  A jornada natural de um webapp:
&lt;/h2&gt;

&lt;p&gt;Fase 1 — Início          VPS simples, LEMP ou Docker&lt;br&gt;
(0–50k usuários/mês)     R$26–70/mês&lt;/p&gt;

&lt;p&gt;Fase 2 — Crescimento     VPS maior + Docker Compose&lt;br&gt;
(50k–300k usuários/mês)  R$50–150/mês&lt;/p&gt;

&lt;p&gt;Fase 3 — Escala          Cloud + Docker + Container orchestration&lt;br&gt;
(300k–1M usuários/mês)   R$300–1.000+/mês&lt;br&gt;
                         (Azure Container Apps, AWS ECS, Google Cloud Run)&lt;/p&gt;

&lt;p&gt;Fase 4 — Grande escala   Kubernetes (K8s) na Cloud&lt;br&gt;
(1M+ usuários/mês)       R$2.000+/mês&lt;br&gt;
                         (AKS, EKS, GKE)&lt;/p&gt;

&lt;p&gt;Créditos acabam mais rápido com muitos usuários no  Azure Cloud?&lt;br&gt;
Não! E esse é um ponto muito importante sobre App Service e MySQL Flexible:&lt;/p&gt;

&lt;p&gt;App Service B1   → cobra por HORA rodando = $13/mês fixo&lt;br&gt;
MySQL B1ms       → cobra por HORA rodando = $12/mês fixo&lt;br&gt;
10 usuários/dia  → $25/mês&lt;br&gt;
10.000 usuários/dia → $25/mês  ← IGUAL!&lt;br&gt;
Os custos SÓ aumentam se você escalar manualmente (mudar para B2, B3, etc.) ou se o armazenamento do MySQL ultrapassar 20GB. Para um site de comunidade de estudos, isso não vai acontecer tão cedo.&lt;/p&gt;

&lt;p&gt;Os $100 duram ~4 meses independente do tráfego. 🎉&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;MySQL → Docker? Trivial! ✅
Sim, é a coisa mais simples. O workflow completo no futuro (Hetzner VPS):&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Exportar da Azure (ou Hostinger)
&lt;/h1&gt;

&lt;p&gt;mysqldump -h host -u usuario -p cosmos_scriptura &amp;gt; backup.sql&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Subir Docker na VPS com MySQL incluído
&lt;/h1&gt;

&lt;p&gt;docker compose up -d&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Importar o banco no container Docker
&lt;/h1&gt;

&lt;p&gt;docker exec -i cosmos_db mysql -u cosmos_admin -p cosmos_scriptura &amp;lt; backup.sql&lt;/p&gt;

&lt;h1&gt;
  
  
  Pronto! ✅
&lt;/h1&gt;

&lt;p&gt;E o docker-compose.yml na VPS ficaria assim (adicionamos um serviço db):&lt;/p&gt;

&lt;p&gt;yaml&lt;br&gt;
services:&lt;br&gt;
  app: &lt;br&gt;
  # Laravel (já existe)&lt;br&gt;
  db:&lt;br&gt;
    image: mysql:8.0&lt;br&gt;
    volumes:&lt;br&gt;
      - mysql_data:/var/lib/mysql  # dados persistem entre restarts&lt;br&gt;
    environment:&lt;br&gt;
      MYSQL_DATABASE: ***&lt;br&gt;
      MYSQL_ROOT_PASSWORD: senha_forte&lt;br&gt;
volumes:&lt;br&gt;
  mysql_data:  # volume persistente&lt;/p&gt;

&lt;h2&gt;
  
  
  Quantos usuários uma VPS aguenta?
&lt;/h2&gt;

&lt;p&gt;Depende do que o site faz — mas para um webapp Laravel de comunidade/estudos como o seu:&lt;/p&gt;

&lt;p&gt;VPS RAM/CPU Usuários simultâneos  Usuários ativos/dia    Usuários/mês&lt;br&gt;
Hetzner CX23 (R$26) 2 vCPU / 4GB    50–150    ~5.000  ~100.000&lt;br&gt;
Hetzner CX33 (R$51) 4 vCPU / 8GB    150–400   ~15.000 ~300.000&lt;br&gt;
DO 2GB (R$69)   1 vCPU / 2GB    30–100    ~3.000  ~60.000&lt;br&gt;
NOTE&lt;/p&gt;

&lt;p&gt;Esses números assumem OPcache ativado no PHP (acelera 3–5x), Nginx como servidor web e queries MySQL bem otimizadas. Sem OPcache, divide por 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quando a VPS começa a sofrer:
&lt;/h2&gt;

&lt;p&gt;CPU &amp;gt; 80% constantemente&lt;br&gt;
Tempo de resposta &amp;gt; 2 segundos&lt;br&gt;
Erros 502/504 frequentes nos horários de pico&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quando migrar da VPS para Cloud?
Não é só sobre número de usuários — é sobre o que você precisa:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;VPS é suficiente enquanto:&lt;br&gt;
  ✅ &amp;lt; 500 usuários simultâneos&lt;br&gt;
  ✅ Um servidor aguenta o pico&lt;br&gt;
  ✅ Queda de 30 min/mês é aceitável&lt;br&gt;
  ✅ Você faz backup manual&lt;br&gt;
Hora de ir para Cloud quando:&lt;br&gt;
  ❌ Picos imprevisíveis de tráfego (ex: viral nas redes sociais)&lt;br&gt;
  ❌ Precisa de 99.9%+ de uptime (SLA garantido)&lt;br&gt;
  ❌ Usuários em múltiplos países (latência)&lt;br&gt;
  ❌ Time cresceu e deploy manual virou risco&lt;br&gt;
  ❌ Dados críticos precisam de backup automático e compliance&lt;/p&gt;

&lt;p&gt;Em números práticos para o seu app:&lt;/p&gt;

&lt;p&gt;Hoje → ???  usuários  →  VPS Hetzner R$26/mês ✅&lt;br&gt;
100k+ usuários/mês     →  VPS maior ou Cloud básica&lt;br&gt;
500k+ usuários/mês     →  Cloud com auto-scaling&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Na Cloud com muitos usuários — usar Docker também?
Sim, e aí o Docker vira essencial, não opcional. É a diferença entre escalar manualmente e escalar automaticamente:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;SEM Docker na Cloud (tradicional):&lt;br&gt;
  Tráfego dobra → você acorda às 3h → sobe servidor maior → reza&lt;/p&gt;

&lt;p&gt;COM Docker na Cloud (moderno):&lt;br&gt;
  Tráfego dobra → Cloud sobe 2 containers automaticamente → você dorme&lt;/p&gt;

&lt;p&gt;Aqui está uma comparação realista para quando você tiver usuários pagantes:&lt;/p&gt;

&lt;p&gt;🔵 Continuar na Azure (Cloud Gerenciada)&lt;br&gt;
Custo: ~R$ 1.500/ano (no plano básico).&lt;br&gt;
Vantagem: Paz de espírito. Se o banco de dados cair, a Microsoft resolve. Se precisar de mais potência, você clica em um botão. O backup é automático.&lt;br&gt;
Custo-benefício: Excelente se você tem usuários pagantes. O seu tempo vale mais do que R$ 120 por mês. Se você passar 2 horas por mês consertando um servidor que caiu, já "perdeu" dinheiro.&lt;/p&gt;

&lt;p&gt;🐧 Mudar para uma VPS (Hetzner/DigitalOcean)&lt;br&gt;
Custo: ~R$ 300/ano.&lt;br&gt;
Vantagem: Economia pura. É 5x mais barato que a Azure.&lt;br&gt;
Desvantagem: Trabalho manual. Você é o "zelador" do servidor. Você precisa configurar o firewall, renovar o SSL (HTTPS), garantir que o backup está funcionando e atualizar o Linux. Se o site cair às 3 da manhã, é você quem tem que entrar via SSH para descobrir o porquê.&lt;/p&gt;

&lt;p&gt;Minha Opinião Sincera:&lt;br&gt;
Fase 1 (Agora): Use os $100 de estudante da Azure. É grátis, é profissional e você aprende a usar uma ferramenta de ponta.&lt;br&gt;
Fase 2 (Crédito acabou):&lt;br&gt;
Se o site estiver dando lucro: Fique na Azure. A "tranquilidade" de um serviço gerenciado compensa o custo extra. Você foca em ganhar mais dinheiro com o site, não em mexer em terminal de Linux.&lt;br&gt;
Se o site for um hobby ou o lucro for baixo: Mude para uma VPS (Hetzner). Com o Docker que já criamos, essa migração será muito rápida (questão de 1 hora).&lt;/p&gt;

&lt;p&gt;Conclusão: Para quem tem usuários pagantes, a Cloud (Azure) costuma ter o melhor custo-benefício porque o risco de o site ficar fora do ar e você perder clientes é muito menor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Curto Prazo (Agora): Azure ✅&lt;br&gt;
Não tem nem o que pensar. Você tem $100 de graça. É a melhor nuvem do mundo enquanto você não está pagando por ela. Use esse tempo para aprender e validar seu site sem gastar um centavo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Longo Prazo (Quando você tiver que pagar do bolso):&lt;br&gt;
Se o seu público é brasileiro, a Azure é excelente porque o servidor no Brasil (Brazil South) é muito rápido e estável.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Porém, se eu fosse recomendar algo além da Azure, as melhores alternativas para o seu perfil (Laravel + Comunidade) seriam:&lt;/p&gt;

&lt;p&gt;DigitalOcean (App Platform): 🥇 Minha recomendação número 1 pós-Azure. É muito mais simples de configurar que a Azure, o preço é fixo e transparente (você sabe exatamente quanto vai pagar), e eles amam o Laravel. É o equilíbrio perfeito entre a VPS barata e a Cloud complexa.&lt;/p&gt;

&lt;p&gt;Google Cloud (GCP): Ótimo se você quiser usar o Cloud Run. O custo pode ser quase zero se você tiver pouco tráfego, mas o banco de dados (Cloud SQL) é caro.&lt;/p&gt;

&lt;p&gt;AWS: É a maior de todas, mas é um "labirinto". Eu evitaria para um projeto solo, a menos que você queira muito aprender para o seu currículo.&lt;/p&gt;

&lt;p&gt;Meu Veredito:&lt;br&gt;
Fique na Azure agora para aproveitar os créditos. Se um dia você decidir que a Azure está cara ou complexa demais, mude para a DigitalOcean.&lt;/p&gt;

&lt;p&gt;Dica de Ouro: O Laravel tem uma ferramenta oficial chamada Laravel Forge. Ela gerencia servidores para você (na DigitalOcean, Hetzner ou AWS). Se o seu site crescer e você quiser o preço baixo de uma VPS com a facilidade da Azure, o Forge é o caminho que 90% dos profissionais de Laravel usam.&lt;/p&gt;

&lt;p&gt;Novo Cálculo (Azure for Students):&lt;br&gt;
App Service (F1): $0.00 (Sempre gratuito).&lt;br&gt;
MySQL Flexible Server (B1ms): $0.00 durante os primeiros 12 meses (A conta de estudante inclui 750 horas/mês gratuitas deste banco por um ano).&lt;br&gt;
Crédito de $100: Como seu custo mensal será praticamente zero no primeiro ano, seus $100 dólares ficarão guardados!&lt;br&gt;
Resultado:&lt;/p&gt;

&lt;p&gt;Primeiros 12 meses: Custo $0. Você não gasta nada dos seus $100.&lt;br&gt;
Após 12 meses: O banco passa a custar ~ $15/mês. Seus $100 começariam a ser usados então, durando mais uns 6 a 7 meses.&lt;br&gt;
Total: Você consegue manter o projeto rodando por cerca de 18 meses (1 ano e meio) sem tirar um centavo do bolso!&lt;/p&gt;

</description>
      <category>webapp</category>
      <category>azure</category>
      <category>money</category>
      <category>vps</category>
    </item>
    <item>
      <title>Building the Impossible: How I Built Two Complex Platforms with PHP, Next.js, and AI</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Sun, 26 Apr 2026 22:45:32 +0000</pubDate>
      <link>https://dev.to/venelouis/building-the-impossible-how-i-built-two-complex-platforms-with-php-nextjs-and-ai-2ji5</link>
      <guid>https://dev.to/venelouis/building-the-impossible-how-i-built-two-complex-platforms-with-php-nextjs-and-ai-2ji5</guid>
      <description>&lt;p&gt;Many times, we have ideas that seem too big for our current skill set. For a long time, I dreamed of creating tools that merged technology, science, and ancient languages, but the technical complexity felt like an insurmountable barrier.&lt;/p&gt;

&lt;p&gt;Recently, with the help of AI, I finally managed to launch two robust projects. I want to share the process and the tech stack I used to make it happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Dream: Why were these projects "impossible" for me?
&lt;/h2&gt;

&lt;p&gt;Even though I already knew how to code, building a gamified platform with the level of polish I envisioned required a depth of knowledge I hadn't fully mastered.&lt;/p&gt;

&lt;p&gt;I knew that even if I could build it alone, the time investment and the "head-scratching" involved in debugging would be massive. AI changed the game by acting not just as a code generator, but as a partner that could fix bugs and suggest intelligent solutions to complex architectural problems. It made the development workflow much faster and more accessible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 1: creio.eu (Gamified Learning)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://creio.eu" rel="noopener noreferrer"&gt;creio.eu&lt;/a&gt; was born from a desire to unite scientific and biblical knowledge into a gamified environment.&lt;/p&gt;

&lt;p&gt;Tech Stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend: Laravel (PHP)&lt;/li&gt;
&lt;li&gt;Frontend: Blade / Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://creio.eu" rel="noopener noreferrer"&gt;https://creio.eu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;How AI helped me here:&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Structuring: Organizing massive volumes of information into coherent Laravel migrations.&lt;/li&gt;
&lt;li&gt;Gamification Logic: Designing the leveling system and user progress tracking.&lt;/li&gt;
&lt;li&gt;Database Optimization: Fine-tuning queries for the quizzes to ensure high performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  The Technical Challenge: biblia.creio.eu (Interlinear Bible)
&lt;/h2&gt;

&lt;p&gt;This was my most ambitious project. Dealing with ancient languages like Hebrew, Aramaic, Ge'ez, and Armenian requires extreme technical precision.&lt;/p&gt;

&lt;p&gt;Tech Stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: Next.js&lt;/li&gt;
&lt;li&gt;Status: Open Source 🚀&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://biblia.creio.eu" rel="noopener noreferrer"&gt;https://biblia.creio.eu&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The challenge of ancient scripts:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Working with different scripts—especially Right-to-Left (RTL) languages like Hebrew—and specific fonts was a constant hurdle. AI was fundamental for:&lt;/li&gt;
&lt;li&gt;Interlinear Formatting: Correcting the alignment between multiple languages and writing directions.&lt;/li&gt;
&lt;li&gt;Data Curation: I used AI to find public domain texts and open-source fonts, ensuring the project remained legally compliant and truly open.&lt;/li&gt;
&lt;li&gt;Character Rendering: Solving encoding and font-rendering issues for Ge'ez and Armenian within Next.js components.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;I am a firm believer in free knowledge. Because of that, the code for the Interlinear Bible is open to the community:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cristianismohumilde" rel="noopener noreferrer"&gt;
        cristianismohumilde
      &lt;/a&gt; / &lt;a href="https://github.com/cristianismohumilde/biblia.eu.creio" rel="noopener noreferrer"&gt;
        biblia.eu.creio
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;📜 Biblia.Creio.EU&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/cristianismohumilde/biblia.eu.creio/README.pt-BR.md" rel="noopener noreferrer"&gt;Leia em português 🇧🇷&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
  &lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🏛️ Ancient Manuscripts | 🔍 Interlinear Study | 🚀 Static-First Architecture&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/cristianismohumilde/biblia.eu.creio/actions/workflows/deploy-pages.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/cristianismohumilde/biblia.eu.creio/actions/workflows/deploy-pages.yml/badge.svg" alt="Deploy Next.js site to Pages"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8e285d6c04022c2a7b4d9c10ab4261dae0236525c30a21caddeb90740d2294bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352d626c61636b3f6c6f676f3d6e6578742e6a73"&gt;&lt;img src="https://camo.githubusercontent.com/8e285d6c04022c2a7b4d9c10ab4261dae0236525c30a21caddeb90740d2294bb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352d626c61636b3f6c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3167eb3714c4c4a64b192a6842ed1833bdb87ac0f08eeed9f44c563853161a2e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3134394543413f6c6f676f3d7265616374"&gt;&lt;img src="https://camo.githubusercontent.com/3167eb3714c4c4a64b192a6842ed1833bdb87ac0f08eeed9f44c563853161a2e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3134394543413f6c6f676f3d7265616374" alt="React"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e" alt="License: MIT"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Biblia.Creio.EU&lt;/strong&gt; is a high-level open-source interlinear Bible study platform. Built with &lt;strong&gt;Next.js&lt;/strong&gt; for high-performance static generation, it provides a professional tool for deep analysis of original manuscripts across multiple linguistic traditions.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎯 Project Objectives&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Biblia.Creio.EU provides a complete, academia-grade interlinear experience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;💎 Ancient Manuscript Witnesses:&lt;/strong&gt; Hebrew, Aramaic, Greek, Latin, Ge'ez, Syriac, Coptic, and Armenian.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;✍️ Curation-based Literal Translation:&lt;/strong&gt; Word-for-word literal translations developed for structural fidelity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📚 Multi-Language Lexicons:&lt;/strong&gt; Comprehensive support for &lt;strong&gt;Strong (Hebrew/Greek)&lt;/strong&gt;, &lt;strong&gt;Jastrow (Aramaic)&lt;/strong&gt;, &lt;strong&gt;Dillmann (Ge'ez)&lt;/strong&gt;, &lt;strong&gt;LSJ&lt;/strong&gt;, &lt;strong&gt;L&amp;amp;S&lt;/strong&gt;, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⚖️ Multi-traditional Comparison:&lt;/strong&gt; Simultaneous analysis across key linguistic witnesses of biblical history.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛡️ Legal Compliance &amp;amp; Transparency&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This project is a pillar of &lt;strong&gt;Open Data&lt;/strong&gt;. We ensure absolute legal safety for contributors and users:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔓 Public Domain:&lt;/strong&gt; All linguistic databases (lemmas, morphology, and base dictionaries) use…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cristianismohumilde/biblia.eu.creio" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  My Workflow with AI
&lt;/h2&gt;

&lt;p&gt;To bring these ideas to life, I used a mix of tools. I started with GitHub Copilot Student until I hit my token limits, and then moved to Antigravity, which proved to be an excellent resource.&lt;/p&gt;

&lt;p&gt;A story from the trenches: At one point, the Aramaic fonts simply wouldn't align with the translations. I fed the AI a detailed prompt describing my JSON structure and the expected CSS behavior. It suggested a flexbox solution combined with specific direction: rtl overrides that I hadn't considered, fixing the layout instantly.&lt;/p&gt;

&lt;p&gt;
  Click to see the type of prompt I used for the font logic
  &lt;br&gt;
"I need to render an interlinear text where the top line is Hebrew (RTL) and the bottom is English (LTR). How can I structure my Next.js components so the word-mapping remains visually synchronized even on responsive screens?"&lt;br&gt;


&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: The Future of Development
&lt;/h2&gt;

&lt;p&gt;Without these tools, I would still be in the "what if..." phase. Today, both sites are live. AI doesn't replace the creator, but it certainly gives wings to those who want to build something new by removing the "fear" of technical barriers.&lt;/p&gt;

&lt;p&gt;Let’s Talk!&lt;br&gt;
I’d love to know: do you have a project that only exists because of AI? Or do you think we are becoming too dependent on these tools?&lt;/p&gt;

&lt;p&gt;Leave a comment below, let's exchange experiences!&lt;/p&gt;

&lt;p&gt;Since it's Open Source, I use the Liquid tag to invite contributors:&lt;br&gt;
&lt;a href="https://github.com/cristianismohumilde/biblia.eu.creio" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Contribute on GitHub!&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ia</category>
      <category>webdev</category>
      <category>laravel</category>
    </item>
    <item>
      <title>No future without sustainability</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Wed, 12 Mar 2025 02:01:53 +0000</pubDate>
      <link>https://dev.to/venelouis/no-future-without-sustainability-29p</link>
      <guid>https://dev.to/venelouis/no-future-without-sustainability-29p</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://future.forem.com/challenges/writing-2025-02-26"&gt;Future Writing Challenge&lt;/a&gt;: How Technology Is Changing Things.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Dear Family and Friends,&lt;/p&gt;

&lt;p&gt;Technology is changing our world at lightning speed, and I wanted to share some thoughts on what we can expect in the coming years.&lt;/p&gt;

&lt;p&gt;The Rise of Artificial Intelligence (AI)&lt;/p&gt;

&lt;p&gt;Remember when getting information meant going to the library and flipping through dusty books? Now, we can ask an AI chatbot almost anything! Imagine AI as a super-smart friend who knows the answer to almost every question. But just like a friend, sometimes they need our help to get things right. It's like having a robot that helps with homework, but we still need to think and learn to do it correctly!&lt;/p&gt;

&lt;p&gt;AI is transforming how we learn and work. In the future, we might have personalized lessons and more creative jobs. However, we also need to learn how to use technology responsibly and ethically. AI can help solve complex problems like climate change and diseases, but we must be careful not to rely on it too much and lose our ability to think for ourselves.&lt;/p&gt;

&lt;p&gt;Connectivity and Robotics&lt;/p&gt;

&lt;p&gt;Connectivity is also evolving rapidly. Remember when we played "telephone" as kids? Now, we can talk to people on the other side of the world in real-time, seeing their faces on our phone screens! Robots are learning to do more and more, like self-driving cars and machines that help care for the sick.&lt;/p&gt;

&lt;p&gt;Technology is changing how we communicate, have fun, and connect with each other. Social media connects us with people worldwide but can also make us feel isolated and anxious. Automation is changing the job market, creating new opportunities and challenges. We need to prepare for the jobs of the future by learning new skills and adapting to change.&lt;/p&gt;

&lt;p&gt;The Importance of Sustainability&lt;/p&gt;

&lt;p&gt;We must take care of our planet so that all animals and people can live happily and healthily. Technology can help us create new things without polluting the air and water. It's like using recycled materials to build cool new toys without cutting down more trees or littering.&lt;/p&gt;

&lt;p&gt;Sustainable technology is essential for ensuring a better future for everyone. We need to invest in renewable energy, biodegradable materials, and technologies that reduce our environmental impact. Technology can help us monitor and protect the environment, creating early warning systems for natural disasters and solutions for pollution.&lt;/p&gt;

&lt;p&gt;A Message of Hope and Optimism&lt;/p&gt;

&lt;p&gt;The future of technology can be amazing! We can create incredible things that will help people and the planet. But we must use technology wisely and take care of each other. Together, we can build a better world with the help of technology!&lt;/p&gt;

&lt;p&gt;Technology has the potential to transform the world for the better, creating innovative solutions to the challenges we face. But we need to work together to ensure that technology is used ethically and responsibly. I believe that with the help of technology, we can build a more just, sustainable, and happy future for all.&lt;/p&gt;

&lt;p&gt;I hope this gives you a glimpse into the exciting and rapidly changing world of technology. I'm excited to see what the future holds!&lt;/p&gt;

&lt;p&gt;Warmly,&lt;/p&gt;

&lt;p&gt;Venelouis T. S. Palhano&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Prize Categories
&lt;/h3&gt;

&lt;p&gt;Explain Like I'm Five and Ripple Effects&lt;/p&gt;

</description>
      <category>futurechallenge</category>
      <category>sustainability</category>
      <category>ai</category>
    </item>
    <item>
      <title>Most Known Penetration Testing Linux distributions</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Fri, 30 Aug 2024 11:20:47 +0000</pubDate>
      <link>https://dev.to/venelouis/free-ethical-hacking-course-1k7b</link>
      <guid>https://dev.to/venelouis/free-ethical-hacking-course-1k7b</guid>
      <description>&lt;p&gt;Several #Linux distributions include numerous penetration testing tools. 🛠️&lt;/p&gt;

&lt;p&gt;These are just some of the most popular ones. Do you agree? Make a comment below.&lt;/p&gt;

&lt;p&gt;To learn more about penetration testing, check out the #SkillsForAll Free Cisco course on ethical hacking! 💻&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="http://cs.co/6049mdRaN" rel="noopener noreferrer"&gt;http://cs.co/6049mdRaN&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ethical</category>
      <category>cisco</category>
      <category>linux</category>
    </item>
    <item>
      <title>Sharing MLH Survey (chances to win a brand new laptop)!</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Fri, 17 May 2024 23:28:08 +0000</pubDate>
      <link>https://dev.to/venelouis/sharing-mlh-survey-chances-to-win-a-brand-new-laptop-2j7n</link>
      <guid>https://dev.to/venelouis/sharing-mlh-survey-chances-to-win-a-brand-new-laptop-2j7n</guid>
      <description>&lt;p&gt;Sharing MLH Survey (chances to win a brand new laptop)! It doesn't even matter if you don't know MLH! Participe and have a chance! Major League Hacking #MLH #MajorLeagueHacking #Survey&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hackp.ac/community-census-s2024" rel="noopener noreferrer"&gt;https://hackp.ac/community-census-s2024&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mlh</category>
      <category>majorleaguehacking</category>
      <category>survey</category>
    </item>
    <item>
      <title>I got a testimonial on Exercism</title>
      <dc:creator>@venelouis</dc:creator>
      <pubDate>Mon, 13 May 2024 23:41:39 +0000</pubDate>
      <link>https://dev.to/venelouis/i-got-a-testimonial-on-exercism-1bgc</link>
      <guid>https://dev.to/venelouis/i-got-a-testimonial-on-exercism-1bgc</guid>
      <description>&lt;p&gt;&lt;a href="https://exercism.org/profiles/venelouis/testimonials?uuid=daef1645-d5ac-462c-89d7-ba3d6609dee8" rel="noopener noreferrer"&gt;https://exercism.org/profiles/venelouis/testimonials?uuid=daef1645-d5ac-462c-89d7-ba3d6609dee8&lt;/a&gt;&lt;/p&gt;

</description>
      <category>exercism</category>
      <category>python</category>
    </item>
  </channel>
</rss>
