{
  "$type": "site.standard.document",
  "description": "It’s something that I think that I know but really don’t. I’m more of a backend kind of developer, but I feel it’s pretty necessary to learn about frontend development.\n\nI once used vanilla *[[JavaScript]]*, *CSS* and *HTML* for building sites, but I figured that this doesn’t scale well. Bundling and ES modules do help, but anything too involved wi\"...",
  "path": "/Web-frontend",
  "publishedAt": "2026-06-06T18:27:23.000Z",
  "site": "at://did:plc:rfescy2ghdk6ma2wwwhr3bu2/site.standard.publication/3mktkmfk37k2g",
  "textContent": "It’s something that I think that I know but really don’t. I’m more of a backend kind of developer, but I feel it’s pretty necessary to learn about frontend development.\n\nI once used vanilla *[[JavaScript]]*, *CSS* and *HTML* for building sites, but I figured that this doesn’t scale well. Bundling and ES modules do help, but anything too involved with UI interactions tends to fall apart. I’ve heard about web components, but I am yet to assess the usefulness of it.\n\n- *[atp-label-indexer](https://github.com/BunnyNabbit/atp-label-indexer)*, *[rayleigh-labels](https://github.com/BunnyNabbit/rayleigh-labels)*\n  - Uses *[[Webpack]]* for bundling.\n  - *JavaScript*.\n  - Controller classes for managing interactive elements.\n  - No server rendering. Single page application.\n* *[Voxel Telephone](https://github.com/BunnyNabbit/voxel-telephone)* (Web interface)\n  * Uses *Astro* for its web framework.\n  * Mixed. *TypeScript*, *JavaScript* and JSX syntax.\n  * No client-sided logic.\n\nI’m figuring that most frontend code is to be bundled anyway. I should use *[[TypeScript]]* for future work.\n\nFor dynamic/static site generation, I use *[[Astro]]*. Not too certain about using it with client-side logic. Otherwise, I find projects to be perfectly maintainable with it. But for anything that is heavy on client-sided logic, I’m still uncertain about what to use.",
  "title": "Web frontend"
}