HolyJS Piter 2020
who it's for
frontend developers, full-stack JavaScript engineers, framework and library authors, build and release engineers, web performance engineers, devtools and tooling maintainers, QA and test engineers
topics
Node.js backend-for-frontend; GraphQL client and server; CSS resets and regression testing; Canvas text rendering evolution; WebAssembly internals; Postgres for frontend developers; Vue 3 routing changes; Angular CLI build internals; Webpack bundling in production; conditional modules and dynamic bundling; Puppeteer automation workflows; utility-first CSS workflows
| title | author | length |
|---|---|---|
| Modern Backend for Frontend on Node.js | Andrey Melikhov | 01h 13m |
Talk explains how to build a backend-for-frontend using Node.js and JavaScript, aiming to let frontend engineers write server code for data-rich client apps… | ||
| Wrapping an Existing REST API in GraphQL (Methodology for 1,000,000 Rubles) | Pavel Chertorogov | 01h 14m |
A practical case study of wrapping an existing REST API (Wrike) with GraphQL: the talk covers converting Wrike's REST (22 entities, 87 methods) into a GraphQL… | ||
| A tale of CSS resets and everything you need to know about them | Margarita Roi | 01h 14m |
Compares concrete resets (Eric Mayer, html5doctor, normalize, sanitize, reboot, mini reset), demonstrates sanitize + html5doctor as a practical combo, and… | ||
| The Evolution of Text Rendering on Canvas: On Flash, IE11, Designers and Cuneiform | Andrey Churakov | 01h 14m |
A talk about drawing text on HTML Canvas covering Canvas and SVG, compatibility issues (e.g., older browsers like IE11), designers' requirements, and… | ||
| Workshop: Postgres for Frontend Developers (Part 1) | Ivan Panchenko | 01h 12m |
Introduction to PostgreSQL for frontend developers: explains what DBMS and relational databases are, how to install and run Postgres, and basic tools to work… | ||
| Workshop: Postgres for Frontend Developers (Part 2) | Ivan Panchenko | 01h 14m |
Introduction to relational databases and PostgreSQL: what an RDBMS is and why use one. Shows how to install and run Postgres, basic tools, database concepts… | ||
| Workshop: Preparing 3D Graphics in the Browser (Part 1) | Leonid Vinnichenko | 01h 14m |
Introduces 3D graphics on the web for beginners by walking through a full pipeline: exporting a model from a 3D editor, loading GLTF model files, and rendering… | ||
| Workshop: Preparing 3D Graphics in the Browser (Part 2) | Leonid Vinnichenko | 01h 07m |
Introduction to 3D graphics on the web for beginners using Three.js: covers the full workflow from exporting models in a 3D editor through loading the GLTF… | ||
| Workshop: GraphQL on Client and Server — From Idea to Prototype (Part 1) | Ruslan Baygunusov | 01h 12m |
A hands-on workshop shows building a small client-server prototype from an empty folder using GraphQL, Next.js, Prisma 2, TypeScript, CSS-in-JS, React Hooks… | ||
| Workshop: GraphQL on Client and Server — From Idea to Prototype (Part 2) | Ruslan Baygunusov | 01h 14m |
Hands-on workshop showing how to build a small full-stack prototype in a few hours using GraphQL. Starting from an empty folder, it uses TypeScript, code… | ||
| I Fed HTML to the Rendering Dog | Aleksandr Korotaev | 01h 14m |
Examines how renderers can work independently of HTML by exploring rendering targets beyond the DOM and comparing which frameworks or renderer designs handle… | ||
| Wasm Internals | Dmitriy Bezhetskov | 01h 11m |
Overview of WebAssembly internals focused for JavaScript developers: how Wasm is executed, validated and compiled inside VMs (examples from Firefox and V8)… | ||
| Migrating from an Isomorphic App to a Static Site Generator: the revolut.com Case Study | Oleg Obidin | 01h 14m |
A case study of Revolut’s migration from an isomorphic (server/client-rendered) web app to a static site generator. Covers reasons for the migration, the… | ||
| Decisions We Make: A Personal View on Architecture | Aleksey Zolotykh | 01h 10m |
Talk examines how to see and evaluate the software architecture of a product, how to make architectural decisions and justify their importance to the business… | ||
| Apache Kafka: What It Is and How It Will Change Your Application Architecture | Ivan Ponomarev | 01h 10m |
Overview of Apache Kafka: its core concepts and how Kafka is used for storage and stream processing, plus how application architecture is built around Kafka… | ||
| I Want Digital Signatures in JavaScript | Artem Kobzar | 01h 11m |
Artem describes his experience building a YubiKey-like hardware device and developing cross-platform JavaScript libraries for working with electronic digital… | ||
| Working with the DOM in JS Frameworks | Nikita Mostovoy | 01h 13m |
Examines how JavaScript frameworks manage the DOM by comparing and updating elements instead of manual element-by-element changes. Covers the cost and… | ||
| Speak My Language %app% | Sergey Fetiskin | 01h 11m |
The talk examines common failures in frontend localization—wrong file formats (like ad-hoc JSON), poor tooling, and lack of context—causing problems for users… | ||
| Internals of the Angular CLI | Minko Gechev | 01h 13m |
Explains how the CLI builds an in-memory file system and uses schematics and AST + TypeScript type checking to perform safe code transforms, how builders run… | ||
| Make It Seem Like Everything Loads Fast | Viktor Rusakovich | 01h 12m |
Frontend techniques to make a slow-loading web app feel faster without changing the backend API. Covers “perceived performance” tricks (fake… | ||
| Static Typing: Which language to choose? | Aleksandra Sikora | 01h 11m |
Company evaluates PureScript, TypeScript, ReasonML and Elm for Hasura Console, backs actual migration plan and tooling (bs-platform, spago, webpack loaders… | ||
| What's new in Vue 3 Routing | Eduardo San Martin Morote | 01h 14m |
Vue Router 4 introduces true dynamic routing with functions to add, remove, list and check routes and addRoute returns a remover function; a new matcher ranks… | ||
| Webpack in the Wild | Sergey Melyukov | 01h 14m |
Description of how Avito's frontend team adapted and extended webpack to work within a large, multi-team codebase: integrating webpack with PHP and Twig… | ||
| How to release open source library in 2020 | Eunjae Lee | 01h 12m |
Shows a concrete workflow and a working tool: uses conventional commits to auto-calculate semver, creates a staging branch and PR, then CI runs a publish job… | ||
| Tempus Fugit: A story of time | Ujjwal Sharma | 01h 13m |
JavaScript gets a concrete plan: Temporal proposes immutable, strongly typed primitives for dates, times, calendars and durations, with built-in IANA time… | ||
| Utility-first CSS: The highs and lows of styling web sites | Phil Hawksworth | 01h 11m |
Argues that a utility-first CSS workflow (Tailwind/Tachyons) lets teams ship with almost no hand-written CSS, using tools like TailwindCSS, PostCSS and… | ||
| Let's Stub the Backend | Mariya Shakshina | 01h 11m |
Talk shows how to handle missing backend during frontend development by using stub servers. It demonstrates and compares many stub-server tools for REST APIs… | ||
| Puppeteer can automate that! | Önder Ceylan | 01h 15m |
Puppeteer pairs with the Chrome DevTools Protocol and serverless functions to automate real tasks: over a dozen live demos show screenshots/PDF generation… | ||
| Reflection in TypeScript | Aleksandr Bogachev | 01h 13m |
Shows how to implement Role-Based Access Control (RBAC) in a NestJS app by using TypeScript reflection to pass types and classes from build time into runtime… | ||
| Exploring the hidden potential of sound data | Charlie Gerard | 01h 14m |
Claim: browsers can do acoustic activity recognition by turning microphone data into spectrogram images and running lightweight CNNs. Implementation uses the… | ||
| Web: The good parts | Ken Wheeler | 01h 13m |
Shows which browser features actually change what gets built: web workers move CPU work off the main thread so a canvas animation keeps running while a prime… | ||
| Vue.js: Forms & validations in the composition age | Damian Dulisz | 01h 08m |
A complete rewrite of Vuelidate targets Vue.js 3 and the Composition API, delivering half the code and quarter the complexity and a minified core around two… | ||
| Conditional modules & dynamic bundling, a Netflix original | Rajat Kumar | 01h 11m |
Netflix builds a Webpack-based system that turns boolean feature flags into a conditional dependency graph using a Webpack plugin that reads the AST… | ||
| The multi-year quest for the best web test in the west | Andrey Lushnikov | 01h 13m |
Multi-year engineering history leads to a concrete tool: Playwright is a Microsoft open source library that actually controls Chromium WebKit and Firefox with… | ||
| You can also be a hero | Dario Kondratiuk | 01h 10m |
Journey runs from community consumer to active contributor: created Puppeteer Sharp (port of Puppeteer), keeps a blog, and maintains an OSS package with 100k+… | ||
| Chronotope: await Eloquent.Errors | Viktor Vershanskiy | 01h 12m |
A talk that uses the literary concept of a chronotope to examine error handling in legacy JavaScript systems. It discusses common classes of runtime mistakes… | ||
| Music 101 with JS Bach | Craig Spence | 01h 10m |
Reimplements musical primitives — pitch, rhythm, harmony — in JavaScript and shows working code: a metronome built from setInterval moved to a Web Worker and… | ||
| Interview and Q&A with David Nolen | David Nolen | 01h 14m |
A live Q&A explains why ClojureScript gets small maintainable apps: a production stack uses Clojure everywhere including crypto and two React Native apps, the… | ||
| nothing matches | ||