corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a0872c-ac18-73aa-9b0e-26f971785c4b", "title": "Vibe-coding a tax calculator", "url": "https://apoorvaj.io/vibe-coding-a-tax-calculator/", "published_at": "2026-02-13T00:00:00+00:00" }, { "id": "01a0872c-ac18-73aa-9b0e-26f971a6a7e7", "title": "Stop over-engineering static websites", "url": "https://apoorvaj.io/stop-overengineering-static-websites/", "published_at": "2025-10-04T00:00:00+00:00" }, { "id": "01a0872c-ac18-73aa-9b0e-26f972a0b025", "title": "Testing that works", "url": "https://apoorvaj.io/testing-that-works/", "published_at": "2025-09-18T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe23186806", "title": "Projection, clip space, and normalized device coordinates", "url": "https://apoorvaj.io/ndc-clip/", "published_at": "2025-01-09T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe2325f219", "title": "The shader graph contract", "url": "https://apoorvaj.io/the-shader-graph-contract/", "published_at": "2024-05-05T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe234602c2", "title": "Convolution and probability theory", "url": "https://apoorvaj.io/convolution-and-probability-theory/", "published_at": "2020-08-16T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe23821cac", "title": "Render graphs", "url": "https://apoorvaj.io/render-graphs-1/", "published_at": "2020-07-30T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe245cb107", "title": "Aliasing in computer graphics", "url": "https://apoorvaj.io/aliasing-in-computer-graphics/", "published_at": "2020-03-15T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe24be5c05", "title": "Alpha compositing, OpenGL blending and premultiplied alpha", "url": "https://apoorvaj.io/alpha-compositing-opengl-blending-and-premultiplied-alpha/", "published_at": "2019-06-15T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe2564c3dd", "title": "Constructing a cubic Bezier that passes through four points", "url": "https://apoorvaj.io/cubic-bezier-through-four-points/", "published_at": "2019-02-01T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe263e9e38", "title": "Efficient Rendering of Linear Brush Strokes—my graphics paper explained", "url": "https://apoorvaj.io/efficient-rendering-of-linear-brush-strokes/", "published_at": "2018-02-14T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe2661314f", "title": "Creating a modern OpenGL context", "url": "https://apoorvaj.io/creating-a-modern-opengl-context/", "published_at": "2017-09-25T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe26b2bdfb", "title": "Exploring bump mapping with WebGL", "url": "https://apoorvaj.io/exploring-bump-mapping-with-webgl/", "published_at": "2017-03-04T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe272be5f3", "title": "Hitchikers Guide To The GDB", "url": "https://apoorvaj.io/hitchhikers-guide-to-the-gdb/", "published_at": "2016-11-30T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe27300fb0", "title": "Exploring calling conventions with x86 assembly", "url": "https://apoorvaj.io/exploring-calling-conventions/", "published_at": "2016-09-04T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe27f2a3b6", "title": "Loading OpenGL without GLEW", "url": "https://apoorvaj.io/loading-opengl-without-glew/", "published_at": "2016-08-20T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe28d8818c", "title": "Native UI is dead, long live native UI", "url": "https://apoorvaj.io/native-ui-is-dead/", "published_at": "2016-08-13T00:00:00+00:00" }, { "id": "01a0872c-ac19-708b-a503-bebe296e3bbe", "title": "Building a Fast, Modern Image Editor", "url": "https://apoorvaj.io/building-a-fast-modern-image-editor/", "published_at": "2015-07-03T00:00:00+00:00" } ] posts
Claim your blog
Back to apoorvaj.io
Blog · corpus.blog/blogs/apoorvaj.io/posts
apoorvaj.io
apoorvaj.io
2026
Vibe-coding a tax calculator
original ↗
13 Feb 2026
2025
Stop over-engineering static websites
original ↗
4 Oct 2025
Testing that works
original ↗
18 Sept 2025
Projection, clip space, and normalized device coordinates
original ↗
9 Jan 2025
2024
The shader graph contract
original ↗
5 May 2024
2020
Convolution and probability theory
original ↗
16 Aug 2020
Render graphs
original ↗
30 Jul 2020
Aliasing in computer graphics
original ↗
15 Mar 2020
2019
Alpha compositing, OpenGL blending and premultiplied alpha
original ↗
15 Jun 2019
Constructing a cubic Bezier that passes through four points
original ↗
1 Feb 2019
2018
Efficient Rendering of Linear Brush Strokes—my graphics paper explained
original ↗
14 Feb 2018
2017
Creating a modern OpenGL context
original ↗
25 Sept 2017
Exploring bump mapping with WebGL
original ↗
4 Mar 2017
2016
Hitchikers Guide To The GDB
original ↗
30 Nov 2016
Exploring calling conventions with x86 assembly
original ↗
4 Sept 2016
Loading OpenGL without GLEW
original ↗
20 Aug 2016
Native UI is dead, long live native UI
original ↗
13 Aug 2016
2015
Building a Fast, Modern Image Editor
original ↗
3 Jul 2015