I made a web framework

작성자

카테고리:

← 피드로
DEV Community · Banana Cool · 2026-08-04 개발(SW)

Banana Cool

Hi everyone! I made an SSR web framework on NPM named Authtics Host (or HostJS) with backend and frontend support.

About

Based on tests, it starts the server in under 1 second. For a user to see the page, it takes 1-4 seconds.

It also has a Developer Panel, which has controls to control the website (e.g., Restart, Shutdown and Pause Users) with DAT (Developer Access Token) authorization for the Developer Panel.

The framework’s Developer Panel has console and network tabs, where devs can see: what the page is receiving, sending or what logs it’s placing in the console. Better than importing a package and setting it up on mobile.

3 Reasons why I made this

  • Most frameworks start in 2-5+ seconds
  • There isn’t any console or network tab for mobile
  • If there’s a developer panel in another framework, it might not be mobile-friendly

Package

The NPM package is at: @bananacool467/authtics-host

Code snippet

For starting the server:
(Backend script)

import { App } from "@bananacool467/authtics-host";

const app = new App();

Enter fullscreen mode Exit fullscreen mode

(Bash script)

node --experimental-strip-types index.ts

Enter fullscreen mode Exit fullscreen mode

How I got it to start in under 1 second

What I did was make it do fast stuff, when it starts, it:

  • Loads modules (node:fs, node:http, jiti)
  • Then it loads the jiti config file
  • Then it starts the server with the config

More info

It caches pages in a folder named .authtics_host, sometimes the cache might not update so you might have to delete it with:

rm -rf .authtics_host

Enter fullscreen mode Exit fullscreen mode

In Linux, or:

rmdir /s /q .authtics_host

Enter fullscreen mode Exit fullscreen mode

On Windows.

Page rendering with Esbuild only happens when the user visits the website, not when the server starts.

원문에서 계속 ↗

추출 본문 · 출처: dev.to · https://dev.to/banana_cool/i-made-a-web-framework-2obn

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다