Skip to content

Commit

Permalink
more trivial edits
Browse files Browse the repository at this point in the history
  • Loading branch information
azuline committed Jun 12, 2024
1 parent 0d1c01b commit b194153
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 14 deletions.
5 changes: 4 additions & 1 deletion src/assets/css/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,14 @@ code, pre { font-family: "IBM Plex Mono" }
/* Font family. */
.display {
font-family: "IBM Plex Sans";
/* letter-spacing: -.02rem; */
letter-spacing: -.02rem;
line-height: 1.15;
}
.mono { font-family: "IBM Plex Mono" }

/* Line height. */
.label { line-height: 1 }

/* Font size. */
.text-xxl { font-size: var(--font-size-xxl) }
.text-xl { font-size: var(--font-size-xl) }
Expand Down
24 changes: 12 additions & 12 deletions src/posts/frontend-build-systems.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
\maketitle
\tableofcontents

Developers write JavaScript, browsers run JavaScript. Fundamentally, no build step is necessary in
frontend development. This is especially true for simple frontends. So why do we have a build step
in modern frontend?
Developers write JavaScript; browsers run JavaScript. Fundamentally, no build step is necessary in
frontend development. So why do we have a build step in modern frontend?

As frontend codebases grow larger, and as developer ergonomics become more important, shipping
JavaScript source code directly to the client leads to two primary problems:
Expand Down Expand Up @@ -83,7 +82,8 @@ \subsection{Transpilation}
transpiler will be much more performant.
\end{enumerate}

It is also possible to skip the transpilation step if your code is pure ES6 and uses ES6 Modules.
It is also possible to skip the transpilation step if your code is pure JavaScript and uses ES6
Modules.

An alternative solution for a subset of unsupported language features is a polyfill. Polyfills are
executed at runtime and implement any missing language features prior to executing the main
Expand Down Expand Up @@ -241,15 +241,15 @@ \subsection{Meta-Frameworks}

Meta-frameworks provide a curated set of already selected packages, including build tools, that
synergize and enable specialized application paradigms. For example,
\href{https://nextjs.org}{Next.JS} specializes in Server-Side Rendering (SSR) and
\href{https://remix.run}{Remix} specializes in progressive enhancement.
\href{https://nextjs.org}{\tb{Next.JS}} specializes in Server-Side Rendering (SSR) and
\href{https://remix.run}{\tb{Remix}} specializes in progressive enhancement.

Meta-frameworks typically provide a preconfigured build system, removing the need for you to stitch
one together. Their build systems have configurations for both production and development servers.

Like meta-frameworks, build tools like \href{https://vitejs.dev/}{Vite} provide preconfigured build
systems for both production and development. Unlike meta-frameworks, they do not force a specialized
application paradigm. They are suitable for generic frontend applications.
Like meta-frameworks, build tools like \href{https://vitejs.dev/}{\tb{Vite}} provide preconfigured
build systems for both production and development. Unlike meta-frameworks, they do not force a
specialized application paradigm. They are suitable for generic frontend applications.

\subsection{Sourcemaps}

Expand Down Expand Up @@ -322,9 +322,9 @@ \subsection{Monorepos}
\section{Trends}

Newer build tools are written in compiled languages and emphasize performance. Frontend builds were
terribly slow in 2019, but modern tools have greatly sped it up. However, modern tools faster tools
have smaller feature sets and are sometimes incompatible with libraries, so legacy codebases often
cannot easily switch to them.
terribly slow in 2019, but modern tools have greatly sped it up. However, modern tools have smaller
feature sets and are sometimes incompatible with libraries, so legacy codebases often cannot easily
switch to them.

Server-Side Rendering (SSR) has become more popular after the rise of Next.JS. SSR does not
introduce any fundamental differences to frontend build systems. SSR applications must also serve
Expand Down
2 changes: 1 addition & 1 deletion src/posts/template.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<body>
<div class="w-content mx-auto p-8">
<div class="max-w-36">
<div class="display text-sm mono"><a class="decoration-none fg-primary" href="/">sunset glow</a></div>
<div class="text-sm label mono"><a class="decoration-none fg-primary" href="/">sunset glow</a></div>
<div class="py-16" />
<div class="flex flex-col gap-4">
<div class="display text-xxl medium">{{ meta.title }}</div>
Expand Down

0 comments on commit b194153

Please sign in to comment.