twinBASIC Update: June 3, 2026
Highlights include support for ADODB recordsets as DataSource properties, further documentation improvements, and gamepad input support added to the tB basicNES port.
On April 23, 2021, I helped Wayne Phillips introduce the world to twinBASIC at the Access DevCon Vienna conference. I boldly predicted that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025. (And I was oh so close...) With that goal in mind, this weekly update is my attempt to keep the project fresh in the minds of the VBA development community.
Every Sunday Monday week, I will be providing updates on the status of the project, linking to new articles discussing twinBASIC, and generally trying to increase engagement with the project. If you come across items that should be included here, please leave a comment below.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide
- twinBASIC Discord Server (chat about the project)
- twinBASIC Documentation (list of new features not in VBx)
- GitHub Issue Tracker (report bugs)
Highlights
*Recaps in "Highlights" section generated with Claude Opus 4.8 (with human curation).
twinBASIC PDF Book Now Complete
Last week's update introduced the downloadable twinBASIC PDF reference as a fresh-off-the-press artifact.
This week it crossed two thresholds that matter. The page count jumped from 1,658 to 1,890 — roughly 230 new pages in seven days — and the complete PDF bookmark table of contents finally landed. Together they move the book from "a file that exists" to "a reference you can actually navigate."

If you skipped the download last week, now's the week to grab it.
Controls Now Accept ADODB.Recordset Directly as DataSource
Per Wayne in GitHub:
Initial support for setting DataSource property to a ADODB recordset is now available in BETA 983. Not heavily tested yet so YMMV.
Implements Via Is Deprecated; Migrate to Inherits Before v1
Noted by Wayne in the #General Discord chat channel this week:
Just to note that given we now have full inheritance syntax in tB, generally speaking,Implements Viashould not be used unless absolutely necessary as it may be removed prior to v1. For example, we currently still useImplements Viain one or two places for the VB forms package since it supports generics whereInheritsdoes not (yet).
For more details, see the Inheritance docs page.
Discord Chat Summary
* Auto-generated via Claude Sonnet 4.6
Overview
This week's activity across the twinBASIC Discord spanned two major themes: a significant leap forward in documentation infrastructure, and active community exploration of twinBASIC's inheritance and interface features. okas_o delivered a production-ready documentation pipeline, a 1,890-page PDF book, and a suite of new automation tools, while community members worked through inheritance syntax with guidance from fafalone, bclothier, and waynephillipsea — surfacing a notable bug in the process. The week also brought forward-looking discussion on cross-platform development and CI/CD automation, reflecting the growing maturity of the twinBASIC ecosystem.
Website & Documentation
- The twinBASIC website received a refresh this week and now links directly to the documentation from every main page, a change waynephillipsea confirmed should significantly aid search engine crawlability. Early spot checks showed
docs.twinbasic.comalready appearing as a top result for searches such as "twinbasic attributes." - The new documentation site builder went live with a CI/CD pipeline running in approximately 90 seconds. The docs site includes a
sitemap.xmland per-page SEO metadata, and is confirmed indexed across Google, Bing, and DuckDuckGo. - The
twinBASIC Book.pdfreached a usable milestone at 1,890 pages, complete with a full PDF bookmark table of contents covering most site content. waynephillipsea noted the page count approvingly. IDE documentation is not yet included, pending automation of IDE screenshotting via headless browser.
Documentation Tooling & Automation
- okas_o patched the Dagre layout engine underlying Mermaid — fixing a long-standing upstream bug that prevented horizontal sub-diagrams within top-down layouts — allowing the documentation build to produce correct diagram output without waiting on an unresponsive open-source maintainer.
- Two new documentation tools are now available: the
twinpack/twinprojfile format is now documented to a level sufficient for parsing and round-tripping, and animpexptool (available in Python and Node.js) allows import and export of twinBASIC project packages to and from a folder tree. - A Wisdom tool is in early test runs, harvesting twinBASIC Discord and forum history back to the project's origins and using AI to extract community knowledge for incorporation into the docs. A companion Indexer tool is also underway, diffing built-in and public package declarations against TWINSERV to formally track API changes over time. okas_o's stated goal is a manual that is "Comprehensive, in bold and with a capital C," designed to become a go-to resource and adoption driver for twinBASIC. bclothier offered strong support, drawing a direct parallel to Rust's growth trajectory as evidence that robust documentation is a critical and undervalued investment.
Interfaces & Inheritance
- Community member alaskandruid worked through interface implementation syntax with guidance from fafalone, who clarified that both the legacy
IWidget_Handleprefix convention and the modernImplements IWidget.Handlesuffix are supported for properties, consistent with how methods are handled. bclothier noted the new syntax is more flexible and should be preferred going forward, pointing out that VB6's name-based convention could break entirely with underscored interface names such asImplements My_Interface. - waynephillipsea issued a formal deprecation notice:
Implements Viashould be avoided and may be removed before v1. Developers should migrate to theInheritskeyword, with the exception of cases requiring generics support, whichInheritsdoes not yet cover.
Bug Reports
- alaskandruid discovered that
Class_Terminatefires on the base class before the derived class when usingInherits— the reverse of the expected destruction order in most languages. waynephillipsea confirmed this is a bug and directed the reporter to file a formal report. - A separate bug was reported where copying and pasting a designer control resets all formatting and properties to their defaults. waynephillipsea directed the reporter to the #bugs channel for tracking and resolution.
Command-Line Tooling & Cross-Platform
- bclothier confirmed that import and export via command line are supported through
twinBASIC_winXX.exein the bin folder, while--BuildAndExitresides on the maintwinBASIC.exe. waynephillipsea acknowledged the inconsistency and indicated it will be addressed. Both bclothier and alaskandruid noted plans to integrate twinBASIC into CI/CD pipelines and build servers, reflecting growing demand for headless automation support. - waynephillipsea confirmed that Windows-on-ARM will be twinBASIC's first cross-platform development target. He noted that the twinBASIC IDE already runs under Prism x86/x64 emulation on ARM hardware without notable issues, and that his ARM development machine — an ASUS Zenbook A16 with a Snapdragon X2 Elite — compiles twinBASIC from source faster than a high-end Ryzen 9950x desktop.
Conclusion
This week demonstrated twinBASIC's momentum across multiple fronts simultaneously. The documentation platform is now a serious, engineered asset rather than an afterthought, with okas_o driving toward a fully comprehensive and programmatically validated manual. On the language side, waynephillipsea's deprecation guidance on Implements Via and the identification of an inheritance destruction order bug both reflect the careful quality work being done as the project approaches v1. The confirmation of Windows-on-ARM as the first cross-platform target, combined with growing community interest in build automation, signals that twinBASIC is maturing into a platform developers are increasingly ready to adopt and build production workflows around.
Around the Web
VBMAN Goes Open Source
As of June 1, 2026, Deng Wei (邓伟, @woeoio) has open‑sourced his long‑running VBMAN web framework for VB6, with binaries now free forever and source and docs available at https://doc.vb6.pro/en/.
Beyond VBMAN, he’s been a major force in the Chinese twinBASIC community, from building Chinese‑language twinBASIC tooling and documentation to shipping polished showcase projects like his “Jump Jump – Isometric 3D Platform Jumper” entry in the February 2026 twinBASIC game challenge, which highlights advanced OOP design, GDI+ isometric rendering, particle systems, and bilingual documentation.
*Recap built with assistance from Perplexity.
basicNES Gets GamePad Input
fafalone updated his 64-bit basicNES GitHub project (which is essentially just a clean import into twinBASIC of the original basicNES VB6 project by Don Jarrett) to add support for gamepad input via XInput.

Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
AI-Generated Changelog Summary
* Auto-generated via Claude Sonnet 4.6, sorted in order of its opinion of "most impactful changes."
- ADODB DataSource support restored: Controls'
DataSourceproperty can now be set directly to anADODB.Recordset, restoring compatibility with VB6/VBA behaviour that was previously causing a runtime error (-2147467262). - LLVM backend work in progress: Ongoing LLVM compiler work continues behind the scenes but has not been included in this interim release.
⚠️ This appears to be a small interim release with a limited changelog. The ADODB fix is the sole functional change shipped.
WARNING: The following issues are present in each of the releases below:
- IMPORTANT: This is a BETA release under active development. It is not recommended for production use.
BETA 983
- fixed: controls DataSource property can now be set directly to an ADODB.Recordset to match VBx support [#2064]
- note: LLVM work is ongoing but not included in this interim release