Anas Bouzid

Frontend engineerLincoln, NEOpen to relocation

Anas Bouzid

This is my name as an rhp bar chart. Point at it or click it.

I build interactive web apps, charting libraries and developer tools, mostly with React, TypeScript and Python.

Packages I publish

  • 8packages on PyPI and npm
  • 494GitHub stars on my projects
  • 161,849package downloads in the last 30 days
  • 32,294downloads in the latest week, from Oct 7
Week of Apr 22: 37,138 downloads
Week of Apr 29: 43,029 downloads
Week of May 6: 50,950 downloads
Week of May 13: 54,623 downloads
Week of May 20: 61,454 downloads
Week of May 27: 64,886 downloads
Week of Jun 3: 58,294 downloads
Week of Jun 10: 60,291 downloads
Week of Jun 17: 54,665 downloads
Week of Jun 24: 45,817 downloads
Week of Jul 1: 61,816 downloads
Week of Jul 8: 82,863 downloads
Week of Jul 15: 80,561 downloads
Week of Jul 22: 70,901 downloads
Week of Jul 29: 57,293 downloads
Week of Aug 5: 54,403 downloads
Week of Aug 12: 61,752 downloads
Week of Aug 19: 51,230 downloads
Week of Aug 26: 18,385 downloads
Week of Sep 2: 24,109 downloads
Week of Sep 9: 33,212 downloads
Week of Sep 16: 37,331 downloads
Week of Sep 23: 41,325 downloads
Week of Sep 30: 38,334 downloads
Week of Oct 7: 32,294 downloads
Weekly downloads of my Streamlit, React, rhp and agent tool packages on PyPI and npm combined, drawn with rhp. Downloads count every install, including automated ones such as test runs, so they aren't a count of people. Point at a week to read it.

Selected work

2026 · Creator

rhp

A SolidJS charting library that draws charts with HTML and CSS, in the browser or on the server. In my benchmark, a data change reaches the screen in 2.4 ms, while Recharts, Chart.js and ECharts take 12 to 16 ms.

SolidJS · TypeScript · CSS · React · Playwright · MCP

Since 2025 · Creator

PyNote

A Python notebook that runs in the browser, with Python in a Web Worker so long-running cells never freeze the page. Python code can create live UI controls, and in reactive mode, cells re-run when the values they use change.

SolidJS · TypeScript · Pyodide · Web Workers · CodeMirror · Vitest · Playwright

Since 2026 · Creator

Quizmark

A Chrome extension that quizzes you at natural breaks in long YouTube videos. Every question passes five checks that never see the intended answer, and links to the moment in the video that answers it.

TypeScript · React · WXT · Zod · IndexedDB · LLM APIs · Vitest · Playwright

claude mcp add --scope user pr-ui-compare -- npx -y pr-ui-comparenpx -y @bezda/rhp-mcp check bad-scale.htmlrhp check of bad-scale.html (html, rhp 2.0.4, …): 1 error.Errors1. [bad-scale] Chart's scale is [20, 0]: the larger number comes first, so Bars have no length and no axis is drawn. (1280px)   Fix: Put the smaller first: scale=${[0, 20]}.Passed: no errors thrown, no rhp warnings, 1 chart drawn (3 slats), no NaN values, values inside the scale, …

2026 · Creator

Tools for coding agents

MCP servers that let coding agents check their work in a real browser. PR UI Compare records an app before and after a change and lines up the two recordings. rhp-mcp renders a chart and lists what to fix.

TypeScript · Playwright · FFmpeg · MCP · VS Code API

Show 2 more projectsShow fewer projects

Since 2023 · Creator and maintainer

React components

React components for playlists, synced lyrics and reveal.js slides. The playlist resizes with its container and has a headless mode. The lyrics follow the song, and you can jump to any line.

React · TypeScript · CSS · Vite · npm

Since 2023 · Creator and maintainer

Streamlit components

Python packages that put React components into Streamlit apps, with data passing between Python and the browser. Together they get over 100,000 downloads a month from PyPI.

Python · React · TypeScript · Streamlit · PyPI

Open source

11 pull requests merged into other people's projects, and one still open.

  • HOL GuardSep 2026Added PR UI Compare to its extensions as an MCP server#3118Merged
  • BentoSep 2026Made the editor's top bar measure its contents instead of using width breakpoints, and fixed the autosave tag, the folded toolbar, the mobile Save button, toast contrast and the spaces gutter#239#258#294#295#328Merged
  • Jupyter nbconvertDec 2025Proposed full reveal.js configuration from notebook metadata#2257Open
  • react-aceMar 2024Fixed the foldStyle option#1804Merged
  • revealjs.comFeb 2024Wrote the guide to using reveal.js with React#60Merged
  • DefinitelyTypedFeb 2024Added the scroll view options to the reveal.js types#68472Merged
  • reveal.jsFeb 2024Fixed vertical stack backgrounds in scroll view#3568Merged
  • Jupyter nbconvertSep 2022Let notebook cells set data attributes on their slides, for things like background videos#1861Merged

About

I studied mathematics and physics at the University of Nebraska-Lincoln. I spent years there as a research and teaching assistant, building scientific software: web apps for setting up simulations and getting their results, analysis pipelines in Python, and an Android inventory app.

Since 2024 I've worked as an AI training consultant at DataAnnotation. I build reference apps in Python and React, and I review and repair AI-generated code and tests. The rest of my time goes into the projects above, which I design, build, test, release and support myself.

Let's talk.

I'm looking for frontend and full-stack roles, remote or on-site. I'm based in Lincoln, Nebraska, and happy to relocate.