PROGRAMA BETA • INSCRIÇÕES ABERTAS
INTRAWEB 17 FE
v17.0 • Build 2026.04
Uma IDE visual completa para desenvolvimento web front-end dentro do Visual Studio Code. Zero dependências externas. Controle total do código. Sem dor de cabeça com pacotes
JavaScript ou TypeScript. A gente não julga
Crie aplicações web com o IntraWeb e publique na web, rode dentro do WordPress, se quiser,, ou empacote como PWA ou para as lojas de apps Android e iOS
Entre no teste beta
Nativo no VS Code Publique onde quiser Propriedade do código

    IntraWeb 17 One

    Crie a aplicação.

    Chega de encanação

    Crie uma única aplicação. O IntraWeb One separa o front-end e o back-end para você e os conecta automaticamente. Sem glue code. Sem camada de API. Sem trabalho chato de integração.
    Python Java C# VB.NET Delphi

    A CADEIA DE FERRAMENTAS

    Chega de fadiga de ferramentas

    O desenvolvimento web moderno hoje começa com árvores de dependências, pipelines de build e uma montanha de código de terceiros. O IntraWeb 17 FE corta o excesso, para que seu projeto comece pelo seu app.

    • Totalmente integrado a um ambiente profissional: o VS Code
    • Desenvolva 100% offline, sem depender da nuvem
    • Depuração nativa profissional, sem malabarismo com sourcemaps
    • O controle de versão GIT / SVN funciona exatamente como você espera
    • Não é hospedagem nem SaaS: você é dono de cada byte gerado

    A CADEIA DE FERRAMENTAS

    Chega de fadiga de ferramentas

    O desenvolvimento web moderno hoje começa com árvores de dependências, pipelines de build e uma montanha de código de terceiros. O IntraWeb 17 FE corta o excesso, para que seu projeto comece pelo seu app.

    • Totalmente integrado a um ambiente profissional: o VS Code
    • Desenvolva 100% offline, sem depender da nuvem
    • Depuração nativa profissional, sem malabarismo com sourcemaps
    • O controle de versão GIT / SVN funciona exatamente como você espera
    • Não é hospedagem nem SaaS: você é dono de cada byte gerado
    Veja com os próprios olhos

    Como ele se diferencia das alternativas comuns

    Guess Demo Template
    Guess Template Demo
    Guess the number I am thinking of
    Guess
    Attempts : 0
    DESIGNER VISUAL NATIVO DO INTRAWEB 17 FE
    Designer visual nativo do IntraWeb 17 FE
    Layout no designer do IntraWeb
    Feito para edição visual. IWML, componentes, canvas e propriedades fazem parte de um único fluxo de construção do frontend.
    DESIGN VISUAL NO REACT
    Designer visual do React
    404nenhuma ferramenta de design encontrada
    Não há designer visual nativo. O layout é editado principalmente nos arquivos-fonte e conferido pelo resultado no navegador ou no servidor de desenvolvimento.
    CÓDIGO IWML DO INTRAWEB 17 FE
    Lógica do GuessTemplate
    namespace GuessTemplate {
      export class Index extends IndexGen {
        public Count = 0;
        // Must init to a value so it has a type and exists.
        public Guess = NaN;
        public Msg = '';
        protected MagicNo = Math.floor((Math.random() * 100)+ 1);
    
        public WhenPageLoaded(): void {
          const xMagicNo = this.Page.WebParam('MagicNo');
          if (xMagicNo)this.MagicNo = parseInt(xMagicNo);
        }
    
        public WhenGuessButtonClicked(e: MouseEvent): void {
          if (e && e.shiftKey){
            IntraWeb.Dialogs.ShowMessage('The magic number is: ' + this.MagicNo);
            return;
          }
    
          this.Msg = '';
          if (isNaN(this.Guess)) {
            // Need to retrieve value from Edit itself when its an invalid number.
            this.Msg = this.GuessEdit.Text.Value + ' is not a valid number.';
          }else if (this.Guess < 1 || this.Guess > 100) {
            this.Msg = this.Guess + ' is not in the range of 1 to 100.';
          }else {
            this.Count++;
    
            if (this.Guess < this.MagicNo) {
              this.Msg = this.Guess + ' is too low.';
            }else if (this.Guess > this.MagicNo) {
              this.Msg = this.Guess + ' is too high.';
            }else if (this.Guess === this.MagicNo) {
              IntraWeb.Dialogs.ShowMessage('Congratulations! You guessed the magic number.');
              this.GuessButton.Enabled.Value = false;
            }
          }
    
          this.GuessEdit.Focus();
          this.Guess = NaN;
        }
      }
    }
    Código IWML. A mesma interface, mais compacta e sem framework.
    CÓDIGO DE IMPLEMENTAÇÃO EM REACT
    GuessTemplate.jsx
    import { useState, useRef, useEffect } from 'react'
    
    const logo = '/Logo.png'
    
    function App() {
      const [guess, setGuess] = useState('')
      const [msg, setMsg] = useState('')
      const [count, setCount] = useState(0)
      const [disabled, setDisabled] = useState(false)
    
      const magicNo = useRef(Math.floor(Math.random() * 100) + 1)
      const inputRef = useRef(null)
    
      useEffect(() => {
        const params = new URLSearchParams(window.location.search)
        const magic = params.get('MagicNo')
        if (magic) magicNo.current = parseInt(magic)
        inputRef.current?.focus()
      }, [])
    
      function handleGuess(e) {
        if (e && e.shiftKey) {
          alert('The magic number is: ' + magicNo.current)
          return
        }
    
        const num = parseInt(guess)
    
        if (isNaN(num)) {
          setMsg(guess + ' is not a valid number.')
        } else if (num < 1 || num > 100) {
          setMsg(num + ' is not in the range of 1 to 100.')
        } else {
          setCount(c => c + 1)
    
          if (num < magicNo.current) {
            setMsg(num + ' is too low.')
          } else if (num > magicNo.current) {
            setMsg(num + ' is too high.')
          } else {
            alert('Congratulations! You guessed the magic number.')
            setMsg('')
            setDisabled(true)
          }
        }
    
        setGuess('')
        inputRef.current?.focus()
      }
    
      function handleKeyDown(e) {
        if (e.key === 'Enter' && !disabled) {
          handleGuess(e)
        }
      }
    
      return (
        <div className="Card">
          <div className="Logo">
            <img src={logo} alt="Logo" />
          </div>
          <h1>Guess the Number</h1>
          <p>I'm thinking of a number between 1 and 100. Can you guess it?</p>
          <div className="Input">
            <input
              ref={inputRef}
              type="number"
              placeholder="Enter your guess..."
              value={guess}
              onChange={e => setGuess(e.target.value)}
              onKeyDown={handleKeyDown}
              disabled={disabled}
            />
          </div>
          <div className="Button">
            <button onClick={handleGuess} disabled={disabled}>
              Guess
            </button>
          </div>
          <div className="Msg">{msg}</div>
          {count > 0 && <div className="Counter">Attempts: {count}</div>}
          <div className="FrameworkBadge">React</div>
        </div>
      )
    }
    
    export default App
    Implementação em React: o runtime do framework e a lógica dos componentes ficam nos arquivos-fonte.
    Sempre atual, nunca quebrado. Este é o resultado real que acompanha o seu projeto: ele continua funcionando por anos, a cada atualização do IntraWeb 17 FE, sem precisar reescrever nada. Com React, Vue ou Angular, uma simples atualização do framework pode quebrar o seu código sem aviso.
    TAMANHO DO PROJETO INTRAWEB 17 FE
    Pasta de saída do IntraWeb 17 FE
    Tamanho31,3 KB
    No disco44,0 KB
    Arquivos15
    Pastas0
    Saída compacta. O front-end gerado tem o tamanho do próprio app: arquivos pequenos, sem pasta node_modules e sem runtime de framework.
    TAMANHO DO PROJETO REACT
    Pasta do projeto React
    Tamanho39,9 MB
    No disco44,2 MB
    Arquivos2.307 arquivos
    Pastas223 pastas
    Projeto com framework. O app visível é pequeno, mas o projeto de verdade carrega pacotes do framework, ferramentas de build e pastas de dependências.
    Guess Demo Template
    Guess Template Demo
    Guess the number I am thinking of
    Guess
    Attempts : 0
    DESIGNER VISUAL NATIVO DO INTRAWEB 17 FE
    Designer visual nativo do IntraWeb 17 FE
    Layout no designer do IntraWeb
    Feito para edição visual. IWML, componentes, canvas e propriedades fazem parte de um único fluxo de construção do frontend.
    DESIGN VISUAL NO VUE
    Designer visual do Vue
    404nenhuma ferramenta de design encontrada
    Não há designer visual nativo. O layout é editado principalmente nos arquivos-fonte e conferido pelo resultado no navegador ou no servidor de desenvolvimento.
    CÓDIGO IWML DO INTRAWEB 17 FE
    Lógica do GuessTemplate
    namespace GuessTemplate {
      export class Index extends IndexGen {
        public Count = 0;
        // Must init to a value so it has a type and exists.
        public Guess = NaN;
        public Msg = '';
        protected MagicNo = Math.floor((Math.random() * 100)+ 1);
    
        public WhenPageLoaded(): void {
          const xMagicNo = this.Page.WebParam('MagicNo');
          if (xMagicNo)this.MagicNo = parseInt(xMagicNo);
        }
    
        public WhenGuessButtonClicked(e: MouseEvent): void {
          if (e && e.shiftKey){
            IntraWeb.Dialogs.ShowMessage('The magic number is: ' + this.MagicNo);
            return;
          }
    
          this.Msg = '';
          if (isNaN(this.Guess)) {
            // Need to retrieve value from Edit itself when its an invalid number.
            this.Msg = this.GuessEdit.Text.Value + ' is not a valid number.';
          }else if (this.Guess < 1 || this.Guess > 100) {
            this.Msg = this.Guess + ' is not in the range of 1 to 100.';
          }else {
            this.Count++;
    
            if (this.Guess < this.MagicNo) {
              this.Msg = this.Guess + ' is too low.';
            }else if (this.Guess > this.MagicNo) {
              this.Msg = this.Guess + ' is too high.';
            }else if (this.Guess === this.MagicNo) {
              IntraWeb.Dialogs.ShowMessage('Congratulations! You guessed the magic number.');
              this.GuessButton.Enabled.Value = false;
            }
          }
    
          this.GuessEdit.Focus();
          this.Guess = NaN;
        }
      }
    }
    Código IWML. A mesma interface, mais compacta e sem framework.
    CÓDIGO DE IMPLEMENTAÇÃO EM VUE
    GuessTemplate.vue
    <template>
      <div class="Card">
        <div class="Logo">
          <img src="/Logo.png" alt="Logo" />
        </div>
        <h1>Guess the Number</h1>
        <p>I'm thinking of a number between 1 and 100. Can you guess it?</p>
        <div class="Input">
          <input
            ref="inputRef"
            v-model="guess"
            type="number"
            placeholder="Enter your guess..."
            :disabled="disabled"
            @keydown.enter="handleGuess"
          />
        </div>
        <div class="Button">
          <button @click="handleGuess" :disabled="disabled">Guess</button>
        </div>
        <div class="Msg">{{ msg }}</div>
        <div v-if="count > 0" class="Counter">Attempts: {{ count }}</div>
        <div class="FrameworkBadge">Vue</div>
      </div>
    </template>
    
    <script setup>
    import { ref, onMounted } from 'vue'
    
    const guess = ref('')
    const msg = ref('')
    const count = ref(0)
    const disabled = ref(false)
    const inputRef = ref(null)
    
    const params = new URLSearchParams(window.location.search)
    const magicNo = params.get('MagicNo')
      ? parseInt(params.get('MagicNo'))
      : Math.floor(Math.random() * 100) + 1
    
    onMounted(() => {
      inputRef.value?.focus()
    })
    
    function handleGuess(e) {
      if (e?.shiftKey) {
        alert('The magic number is: ' + magicNo)
        return
      }
    
      const num = parseInt(guess.value)
    
      if (isNaN(num)) {
        msg.value = guess.value + ' is not a valid number.'
      } else if (num < 1 || num > 100) {
        msg.value = num + ' is not in the range of 1 to 100.'
      } else {
        count.value++
    
        if (num < magicNo) {
          msg.value = num + ' is too low.'
        } else if (num > magicNo) {
          msg.value = num + ' is too high.'
        } else {
          alert('Congratulations! You guessed the magic number.')
          msg.value = ''
          disabled.value = true
        }
      }
    
      guess.value = ''
      inputRef.value?.focus()
    }
    </script>
    Implementação em Vue: o app visível ainda depende do código-fonte do framework e de suas ferramentas.
    Sempre atual, nunca quebrado. Este é o resultado real que acompanha o seu projeto: ele continua funcionando por anos, a cada atualização do IntraWeb 17 FE, sem precisar reescrever nada. Com React, Vue ou Angular, uma simples atualização do framework pode quebrar o seu código sem aviso.
    TAMANHO DO PROJETO INTRAWEB 17 FE
    Pasta de saída do IntraWeb 17 FE
    Tamanho31,3 KB
    No disco44,0 KB
    Arquivos15
    Pastas0
    Saída compacta. O front-end gerado tem o tamanho do próprio app: arquivos pequenos, sem pasta node_modules e sem runtime de framework.
    TAMANHO DO PROJETO VUE
    Pasta do projeto Vue
    Tamanho37,3 MB
    No disco38,4 MB
    Arquivos737 arquivos
    Pastas139 pastas
    Projeto com framework. O app visível é pequeno, mas o projeto de verdade carrega pacotes do framework, ferramentas de build e pastas de dependências.
    Guess Demo Template
    Guess Template Demo
    Guess the number I am thinking of
    Guess
    Attempts : 0
    DESIGNER VISUAL NATIVO DO INTRAWEB 17 FE
    Designer visual nativo do IntraWeb 17 FE
    Layout no designer do IntraWeb
    Feito para edição visual. IWML, componentes, canvas e propriedades fazem parte de um único fluxo de construção do frontend.
    DESIGN VISUAL NO ANGULAR
    Designer visual do Angular
    404nenhuma ferramenta de design encontrada
    Não há designer visual nativo. O layout é editado principalmente nos arquivos-fonte e conferido pelo resultado no navegador ou no servidor de desenvolvimento.
    CÓDIGO IWML DO INTRAWEB 17 FE
    GuessTemplate.iwml
    namespace GuessTemplate {
      export class Index extends IndexGen {
        public Count = 0;
        // Must init to a value so it has a type and exists.
        public Guess = NaN;
        public Msg = '';
        protected MagicNo = Math.floor((Math.random() * 100)+ 1);
    
        public WhenPageLoaded(): void {
          const xMagicNo = this.Page.WebParam('MagicNo');
          if (xMagicNo)this.MagicNo = parseInt(xMagicNo);
        }
    
        public WhenGuessButtonClicked(e: MouseEvent): void {
          if (e && e.shiftKey){
            IntraWeb.Dialogs.ShowMessage('The magic number is: ' + this.MagicNo);
            return;
          }
    
          this.Msg = '';
          if (isNaN(this.Guess)) {
            // Need to retrieve value from Edit itself when its an invalid number.
            this.Msg = this.GuessEdit.Text.Value + ' is not a valid number.';
          }else if (this.Guess < 1 || this.Guess > 100) {
            this.Msg = this.Guess + ' is not in the range of 1 to 100.';
          }else {
            this.Count++;
    
            if (this.Guess < this.MagicNo) {
              this.Msg = this.Guess + ' is too low.';
            }else if (this.Guess > this.MagicNo) {
              this.Msg = this.Guess + ' is too high.';
            }else if (this.Guess === this.MagicNo) {
              IntraWeb.Dialogs.ShowMessage('Congratulations! You guessed the magic number.');
              this.GuessButton.Enabled.Value = false;
            }
          }
    
          this.GuessEdit.Focus();
          this.Guess = NaN;
        }
      }
    }
    Código IWML. A mesma interface, mais compacta e sem framework.
    CÓDIGO DE IMPLEMENTAÇÃO EM ANGULAR
    app.html + app.ts
    // app.html
    <div class="Card">
      <div class="Logo">
        <img src="Logo.png" alt="Logo" />
      </div>
      <h1>Guess the Number</h1>
      <p>I'm thinking of a number between 1 and 100. Can you guess it?</p>
      <div class="Input">
        <input
          #inputRef
          [ngModel]="guess()"
          (ngModelChange)="guess.set($event)"
          type="number"
          placeholder="Enter your guess..."
          [disabled]="disabled()"
          (keydown.enter)="handleGuess($event)"
        />
      </div>
      <div class="Button">
        <button (click)="handleGuess($event)" [disabled]="disabled()">Guess</button>
      </div>
      <div class="Msg">{{ msg() }}</div>
      @if (count() > 0) {
        <div class="Counter">Attempts: {{ count() }}</div>
      }
      <div class="FrameworkBadge">Angular</div>
    </div>
    
    // app.ts
    import { Component, signal, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    
    @Component({
      selector: 'app-root',
      imports: [FormsModule],
      templateUrl: './app.html',
      styleUrl: './app.scss'
    })
    export class App implements AfterViewInit {
      @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;
    
      readonly guess = signal('');
      readonly msg = signal('');
      readonly count = signal(0);
      readonly disabled = signal(false);
    
      private readonly magicNo: number;
    
      constructor() {
        const params = new URLSearchParams(window.location.search);
        const fromQuery = params.get('MagicNo');
        this.magicNo = fromQuery
          ? parseInt(fromQuery, 10)
          : Math.floor(Math.random() * 100) + 1;
      }
    
      ngAfterViewInit(): void {
        this.inputRef.nativeElement.focus();
      }
    
      handleGuess(event?: Event): void {
        if ((event as KeyboardEvent | MouseEvent | undefined)?.shiftKey) {
          alert('The magic number is: ' + this.magicNo);
          return;
        }
    
        const raw = this.guess();
        const num = parseInt(raw, 10);
    
        if (isNaN(num)) {
          this.msg.set(raw + ' is not a valid number.');
        } else if (num < 1 || num > 100) {
          this.msg.set(num + ' is not in the range of 1 to 100.');
        } else {
          this.count.update(c => c + 1);
    
          if (num < this.magicNo) {
            this.msg.set(num + ' is too low.');
          } else if (num > this.magicNo) {
            this.msg.set(num + ' is too high.');
          } else {
            alert('Congratulations! You guessed the magic number.');
            this.msg.set('');
            this.disabled.set(true);
          }
        }
    
        this.guess.set('');
        this.inputRef.nativeElement.focus();
      }
    }
    Implementação em Angular: templates, decorators e a estrutura do TypeScript fazem parte do fluxo de trabalho.
    Sempre atual, nunca quebrado. Este é o resultado real que acompanha o seu projeto: ele continua funcionando por anos, a cada atualização do IntraWeb 17 FE, sem precisar reescrever nada. Com React, Vue ou Angular, uma simples atualização do framework pode quebrar o seu código sem aviso.
    TAMANHO DO PROJETO INTRAWEB 17 FE
    Pasta de saída do IntraWeb 17 FE
    Tamanho31,3 KB
    No disco44,0 KB
    Arquivos15
    Pastas0
    Saída compacta. O front-end gerado tem o tamanho do próprio app: arquivos pequenos, sem pasta node_modules e sem runtime de framework.
    TAMANHO DO PROJETO ANGULAR
    Pasta do projeto Angular
    Tamanho230 MB
    No disco262 MB
    Arquivos22.746 arquivos
    Pastas2.340 pastas
    Projeto com framework. O app visível é pequeno, mas o projeto de verdade carrega pacotes do framework, ferramentas de build e pastas de dependências.
    O DESIGNER
    Projete visualmente
    Mantenha o controle total
    O designer visual não é brinquedo. É um ambiente de desenvolvimento de verdade, completo, com tudo o que um engenheiro front-end sênior esperaria… e algumas coisas que provavelmente não esperaria.
    VISUAL → CÓDIGO · AO VIVO
    Designer visual do IntraWeb
    Designer visual do IntraWeb
    01
    Construa com o mouse
    em vez de escrever código
    Crie controles direto na interface: posicione exatamente o que você quer ver e o IntraWeb cuida de tudo o que está por trás.
    Tudo ficará exatamente onde você colocar
    Navegação em árvore e breadcrumbs
    02
    Árvore e breadcrumbs
    Navegue na velocidade do pensamento
    Uma árvore ao vivo mantém toda a estrutura à vista e os breadcrumbs levam você direto a qualquer nível de aninhamento, sem precisar abrir nó por nó.
    03
    Pesquisa instantânea
    Encontre qualquer coisa em segundos
    O painel Controls pesquisa tudo o que está disponível enquanto você digita: chega de rolar uma lista enorme atrás do controle que precisa.
    Painel de controles com pesquisa
    Painel de propriedades
    04
    Propriedades a um clique
    Sem código, sem achismo
    Configure largura, cor, comportamento, o que for, direto na interface. Sem decorar nomes de propriedades nem adivinhar a sintaxe: clicou, está pronto.
    05
    Eventos com um clique
    Ligado automaticamente
    Escolha um controle, clique no evento desejado e o handler é criado automaticamente; só falta escrever a lógica.
    Aba de eventos
    Integração com WordPress

    Blocos
    HTML personalizado para WordPress

    Uma das formas mais visuais de integrar o IntraWeb a um site WordPress existente: projete o bloco no IntraWeb, publique os arquivos gerados e coloque o app dentro do WordPress com o bloco nativo «HTML personalizado».

    Sem shortcodes Sem camada de API própria Código sob o controle do desenvolvedor

    Do designer do IntraWeb a uma página WordPress ao vivo

    Crie o bloco visualmente, publique os arquivos gerados e coloque o app IntraWeb em funcionamento dentro do WordPress com um bloco nativo «HTML personalizado».

    Vamos mostrar com o exemplo de uma seção de reservas
    Passo 01

    Projete e publique o bloco do IntraWeb

    Construa a interface visualmente no designer do IntraWeb e publique no servidor os arquivos HTML, CSS, JavaScript e de configuração gerados. Neste exemplo, o bloco é um formulário de reserva que consegue salvar os dados enviados.

    Designer do IntraWeb Designer do IntraWeb
    Arquivos do projeto publicados Arquivos do projeto publicados
    Passo 02

    Adicione o HTML personalizado e conecte o app

    No WordPress, adicione o bloco HTML personalizado nativo exatamente onde a aplicação IntraWeb deve aparecer. Depois cole um pequeno trecho que carrega o app publicado.

    Bloco HTML personalizado do WordPress HTML personalizado do WordPress
    Conecte o bloco do IntraWeb Conecte o bloco
    Passo 03

    O formulário do IntraWeb já está no ar dentro do WordPress

    O formulário aparece embutido como uma seção normal da página do WordPress. O WordPress controla o layout da página, enquanto o IntraWeb mantém a lógica da aplicação limpa, separada e sob o controle do desenvolvedor.

    Formulário do IntraWeb ao vivo dentro do WordPress
    Página WordPress ao vivo
    Bloco de história da Atozed Software
    30+anos

    Mais de três décadas de engenharia web prática: das primeiras ferramentas comerciais ao IntraWeb de hoje

    Atozed Software / Desde 1994

    Atozed Software: O original pioneiro da web

    Arquivo Atozed / 1994
    Chad Z., à esquerdaPRIMEIRA FEIRA DO SETOR
    01 / O começo

    Já estávamos aqui antes de
    a Web virar moda

    Em 1994, os navegadores eram primitivos e o JavaScript nem existia. Enquanto o mundo ainda aprendia a lidar com a conexão discada, Chad Z. já lançava as primeiras ferramentas comerciais de desenvolvimento web do mundo. Antes do ASP, antes do PHP e antes das guerras de frameworks, nós já ligávamos a lógica de negócio à internet.

    Antes do ASPAntes do PHPAntes dos frameworks
    1993Fundação da Atozed
    1994Internet Application Gateway
    1996Web Solution Builder
    2001IntraWeb 1.0 para Delphi
    2018IntraWeb 15, HTTPSYS
    2024IntraWeb 16
    2026IW17 FE – VS Code, TypeScript, zero dependências
    02 / O primeiro projeto

    Internet Application
    Gateway

    Esta captura de tela granulada é um pedaço da história. Ela mostra o nascimento do Internet Application Gateway (IAG), antecessor do IntraWeb. Numa época em que a maioria dos sistemas dinâmicos era código cru cuspindo strings de HTML, o IAG funcionava como uma camada de gateway entre a lógica de negócio e o HTTP.

    ARQUIVO
    Internet Application Gateway, 1994
    30+ANOS

    Mais de 30 anos de tradição em engenharia

    Do IAG em meados dos anos 90 e do Web Solution Builder em 1996 até o IntraWeb de hoje, nossa história é uma linha contínua de disciplina de engenharia. Não corremos atrás de modismos porque entendemos os fundamentos.

    30+anos

    Mais de três décadas de engenharia web prática: das primeiras ferramentas comerciais ao IntraWeb de hoje

    Atozed Software / Desde 1994

    Atozed Software: O original pioneiro da web

    Arquivo Atozed / 1994
    Chad Z., à esquerdaPRIMEIRA FEIRA DO SETOR
    01 / O começo

    Já estávamos aqui antes de a Web virar moda

    Em 1994, os navegadores eram primitivos e o JavaScript nem existia. Enquanto o mundo ainda aprendia a lidar com a conexão discada, Chad Z. já lançava as primeiras ferramentas comerciais de desenvolvimento web do mundo. Antes do ASP, antes do PHP e antes das guerras de frameworks, nós já ligávamos a lógica de negócio à internet.

    Antes do ASPAntes do PHPAntes dos frameworks
    1993Fundação da Atozed
    1994Internet Application Gateway
    1996Web Solution Builder
    2001IntraWeb 1.0 para Delphi
    2018IntraWeb 15, HTTPSYS
    2024IntraWeb 16
    2026IW17 FE – VS Code, TypeScript, zero dependências
    02 / O primeiro projeto

    Internet Application Gateway

    Esta captura de tela granulada é um pedaço da história. Ela mostra o nascimento do Internet Application Gateway (IAG), antecessor do IntraWeb. Numa época em que a maioria dos sistemas dinâmicos era código cru cuspindo strings de HTML, o IAG funcionava como uma camada de gateway entre a lógica de negócio e o HTTP.

    ARQUIVO
    Internet Application Gateway, 1994
    30+ANOS

    Mais de 30 anos de tradição em engenharia

    Do IAG em meados dos anos 90 e do Web Solution Builder em 1996 até o IntraWeb de hoje, nossa história é uma linha contínua de disciplina de engenharia.

    BETA · VAGAS LIMITADAS

    Seja um dos primeiros a construir assim.

    Participe da beta do IntraWeb 17 FE. Contato direto com a equipe de engenharia. Licença Studio gratuita no primeiro ano após o lançamento. Feedback sincero, sem NDAs.

    Revisão manual · geralmente aprovada em até 48 h · nunca spam

    ou simplesmente

    Entre no nosso canal do Telegram
    Saída em TypeScript puro Sem runtime pesado. Sem labirinto de dependências.
    100% do código é seu Seu código, seu servidor, suas regras de implantação.
    Engenharia de verdade, e rápida. Projete rápido, publique com confiança e mantenha o controle total.
    Scroll to Top