News for hackers. Stuff that matters.
Re:Show HN: A no-build fullstack SSR TypeScript web framework by bsimpson on Wednesday February 12, 2025 @03:34PM (#43029471)
I don't understand.

You're authoring in TSX and serving JS to browsers, so there's clearly a build step. How is your model different from e.g. vite serve?

How does it get deployed? Are the files translated to vanilla JS on request, or are they translated ahead of time and cached (in other words, a build step)?

Re:Show HN: A no-build fullstack SSR TypeScript web framework by root_axis on Wednesday February 12, 2025 @03:37PM (#43029499)
It works with bun or deno which are alternative node runtimes that support jsx and typescript without a build step.
Re:Show HN: A no-build fullstack SSR TypeScript web framework by satvikpendem on Wednesday February 12, 2025 @03:47PM (#43029617)
So the build happens implicitly via the runtimes, then.
Re:Show HN: A no-build fullstack SSR TypeScript web framework by jbreckmckye on Wednesday February 12, 2025 @03:51PM (#43029654)
I mean, no? Unless you're saying all interpreted languages have a build step?
Re:Show HN: A no-build fullstack SSR TypeScript web framework by nosefurhairdo on Wednesday February 12, 2025 @03:59PM (#43029723)
Browsers cannot parse jsx/tsx natively. Deno is transforming the code you write before it is executed in the browser. That transformation is typically referred to as a build step.
Re:Show HN: A no-build fullstack SSR TypeScript web framework by jbreckmckye on Wednesday February 12, 2025 @04:06PM (#43029778)
Building is creating the runnable artefact, but this artefact is already runnable, so I'd just call that "interpreting" the program
Re:Show HN: A no-build fullstack SSR TypeScript web framework by wubrr on Wednesday February 12, 2025 @04:20PM (#43029889)
The code is not runnable on the frontend. It needs to be transformed/built before that can happen.

Saying this doesn't have a build step is like saying a python script that compiles and runs a C program from source has no build step.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by jbreckmckye on Wednesday February 12, 2025 @05:11PM (#43030296)
Yes, I'm aware the code doesn't run natively on the frontend. But we aren't talking about that.
Re:Show HN: A no-build fullstack SSR TypeScript web framework by wubrr on Wednesday February 12, 2025 @05:30PM (#43030471)
That's exactly what everyone in this comment chain is talking about (even though you just updated your previous comment to make it sound different).
Re:Show HN: A no-build fullstack SSR TypeScript web framework by wubrr on Wednesday February 12, 2025 @05:34PM (#43030503)
> But in this instance we are talking about the server side runtime.

Not at all. We are talking about SSR, and the need for a build step (on the backend). That should be pretty obvious considering the explicit mentions of running the code in the browser, jsx, ts, etc. (Not to mention the backend runtime cannot run typescript/jsx without build either)

> Building is creating the runnable artefact

That's not all that 'building' is...

> but in the context of the server this artefact is already runnable

No it's not. The JIT/interpreter within Deno cannot run this code without doing a build first. This is made very obvious and explicit in the Deno docs.

https://docs.deno.com/runtime/fundamentals/typescript/

> With its built-in TypeScript compiler, Deno will compile your TypeScript code to JavaScript with no extra config needed.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by kupopuffs on Wednesday February 12, 2025 @04:08PM (#43029798)
JIT?
Re:Show HN: A no-build fullstack SSR TypeScript web framework by thesephi on Wednesday February 12, 2025 @05:30PM (#43030472)
my apologies for using controversial wording. I'd love to confirm that we still must have some sort of transpilation / transformation because no Web Browser can consume JSX code directly (after all, JSX is just syntactic sugar, not a base language).

What I meant by "no build" is "no bundling". I elaborated more in this wiki: https://github.com/fullsoak/fullsoak/wiki/Concepts-&-Example...

Thank you for your help above in making things clearer <3

Re:Show HN: A no-build fullstack SSR TypeScript web framework by nosefurhairdo on Thursday February 13, 2025 @02:00AM (#43033404)
I would probably replace a lot of this language with something along the lines of "powered by Deno, enabling simplified, all-in-one tooling." You don't want it to look like you're taking credit for the features that Deno is responsible for. Would also help me understand what your project offers vs what Deno offers.

Hope that helps!

Re:Show HN: A no-build fullstack SSR TypeScript web framework by thesephi on Friday February 14, 2025 @03:47AM (#43046264)
that's a nice perspective :) I totally had no intention for 'taking credits' as I assumed it's a 'given' that we run TS directly with Deno, Bun, or Node.js with the experimental flag.

I'll take this to my desk & update the wordings towards your suggestions above - thank you!

Re:Show HN: A no-build fullstack SSR TypeScript web framework by lolinder on Wednesday February 12, 2025 @08:28PM (#43031768)
Bun does not handle TSX at the runtime level because Bun uses JavaScriptCore as its runtime and JavaScriptCore does not support TS(X).

Bun transpiles all typescript code before executing it in the JavaScriptCore runtime. That's an implicit on-startup build step.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by wubrr on Wednesday February 12, 2025 @04:25PM (#43029929)
Deno does not support jsx and typescript 'without a build step'. It just runs a build/transform step for you under the hood - using the same tsc compiler, config, etc.

https://docs.deno.com/runtime/reference/jsx/

Saying this is not a 'build step' is like saying a shell script that builds and runs a C program from source has no build step.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by nsonha on Wednesday February 12, 2025 @07:02PM (#43031191)
> a shell script that builds and runs a C program from source has no build step

I would say so. Ultimately build step or not isn't a meaningful thing to care about. What matters is the cold start/runtime impact. In the case of deno/bun, the impact seem minuscule/not meaningful.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by wubrr on Wednesday February 12, 2025 @09:08PM (#43031964)
> Ultimately build step or not isn't a meaningful thing to care about. What matters is the cold start/runtime impact.

The two are closely related.

> In the case of deno/bun, the impact seem minuscule/not meaningful.

Seems like a pretty baseless assertion.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by nsonha on Wednesday February 12, 2025 @09:46PM (#43032142)
you're right, found this benchmark https://maxday.github.io/lambda-perf
Re:Show HN: A no-build fullstack SSR TypeScript web framework by nextaccountic on Wednesday February 12, 2025 @08:20PM (#43031713)
It has no build step. It builds when you run

It's like language implementations that nominally aren't "compiled", like Python, but nonetheless compile to bytecode when you run the program

Re:Show HN: A no-build fullstack SSR TypeScript web framework by thesephi on Wednesday February 12, 2025 @05:34PM (#43030504)
My apologies if the wording made it confusing :D By "no build" I only meant "no bundling".

You can check the generated source code of the example deployment to see how it's deployed: https://fullsoak.onrender.com/

But spoiler: it's like in the 90s: each page request results in a text/html response, and the HTML doc then links in any .js or .css file it needs.

I elaborate more in this wiki: https://github.com/fullsoak/fullsoak/wiki/Concepts-&-Example...

Re:Show HN: A no-build fullstack SSR TypeScript web framework by leptons on Wednesday February 12, 2025 @06:44PM (#43031033)
Not having all the code in-line that can be in-line is like the 90s. You had me until the 'no bundling' thing. Separate http requests for all resources is a non-starter for anyone worried about page speed. I do like the choice of Preact though!
Re:Show HN: A no-build fullstack SSR TypeScript web framework by thesephi on Wednesday February 12, 2025 @07:09PM (#43031255)
and that's a totally valid concern :) So far I only wish to check the concept in general (ie: "does it work"). As for "does it work fast / at scale", definitely a future topic.

I do wish to elaborate: since we use JSX/TSX, in theory we can in-line as much as we'd like. Here I include CSS in the component itself: https://github.com/fullsoak/bun-examples/blob/main/src/compo...

So it can be just 1 HTML resource + 1 js file for every unique path. And with preact-iso (or react router) we can make subsequent pages load on-the-fly without a hard browser refresh / hard resource reload. Like so: https://github.com/fullsoak/bun-examples/blob/main/src/compo...

But ultimately: I do see rooms for improvements re. resource optimizations. My personal wish is to use standard web specs such as "preload", "prefetch", "server push", etc. to optimize as much as possible, without taking the "bundling route" - so: just exploring a different taste, not that I have anything against the existing "build routes" :)

Re:Show HN: A no-build fullstack SSR TypeScript web framework by xps on Thursday February 13, 2025 @12:19AM (#43032916)
I take the opposite approach - bundling is a non-starter for me. But it really depends on what you're building. Bundling can be great for web apps, but for content-driven websites where SEO optimization is key, I prefer the "90s-style" approach and Fullsoak's philosophy.

Also, separate HTTP requests allow for granular caching, and with HTTP/2 the overhead is minimal.

Re:Show HN: A no-build fullstack SSR TypeScript web framework by leptons on Thursday February 13, 2025 @02:47AM (#43033683)
You're doing the opposite of SEO optimization if page speed score is of any value to your SEO (and it's important to Google's SEO ranking, so yeah). I work on a "content-driven website" - actually a few thousand of them - and our clients definitely want their SEO to be top-notch and page speed score factors into that. Any http requests for external resources will bring page speed down, and that can affect SEO. I don't have to worry about caching at all when the pages are scoring perfect 100% on Lighthouse.