![](/developer/experience/launch.gif)
Curriculum techna
a Course in the Art
(of web development)
Web Fundamentals:
- Javascript:
- Modern syntax >= ES6
- Typescript for type-safety
- JSdoc for type-sanity
- The Good Parts by Douglas Crockford, who thinks that
"class-free, object-oriented programming is Javascript's gift to humanity"
(2018).
- Data (databases and filesystems):
- XML, JSON, YAML, SQL
- Connections:
- HTTP Request/Response handling from server and client side
- SSE
- Websockets
- Session/Authentication:
- Using Basic auth over HTTPS
- Server-side authentication => secure cookie
- JWT authentication
- Testing & designing APIs w/ Postman
- The Browser:
- All the Web APIs…
- Javascript:
The Front-end:
Web-native vanilla Javascript:
Up to date on latest browser capabilities, including:
- Transition API: for building traditional sites to feel like SPAs.
- Custom Elements: for encapsulating logic into a reusable components, which may be simply embedded into content —using the Shadow DOM as needed to abstract the component template and style from the Document
- Native CSS: inline nested selectors and variables for organizing and applying styles.
- ESM Modules: the native module system is essential for well ordered code for the browser providing a powerful abstraction for encapsulating, importing and exporting code.
- and everything else that runs in the browser with no build step 👍👍.
Javascript frameworks: Vue, Svelte, Solid
The Back-end:
- PHP
- Javascript web servers:
- Express
- Hono
- Javascript meta frameworks:
- Nuxt
- Astro
- SvelteKit
- SolidStart
Content Management Systems:
- Directus
- Strapi
- Ghost
- Grav
Server Management:
- 16 years of experience using Linux
- Running containerized web applications on hosted Ubuntu VPS:
- by writing
compose.yaml
andDockerfile
s
- by writing
- Managing web infrastructure from web portal:
- Cloudron
- cPanel
Dev Ops:
- Docker: configuring and building container images and pushing to registry, and running containers for production.
- Git: Basic usage of git
add
,commit
,push
andpull
commands and writing.gitignore
files for secret.env
variables.
What I would like to learn next!
- Tailwind-based UI libraries
- Symfony framework w/ Twig templating
- Service Worker as in-browser proxy/server
- Odd.dev SDK for decentralized web apps
- NixOS for deterministic server configuration
- Lit or Svelte for defining/compiling
<custom-element>
I really just want to deliver experiences, so I am choosing to avoid heavy build systems, complicated tooling and development workflows whenever possible.
After a long journey of exploration through the javascript ecosystem, I have come to appreciate the power and simplicity of PHP!
![](/developer/experience/success.gif)