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.

twinBASIC Update: June 3, 2026

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:


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.
DataSource ADODB support missing · Issue #2064 · twinbasic/twinbasic
Steps to reproduce the behavior: with IDE Beta 709 Create a new Project Standard EXE in this Form add a Textbox Put Code Private Sub Form_Load() Dim rs As ADODB.Recordset Set rs = New ADODB.Records…

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 Via should not be used unless absolutely necessary as it may be removed prior to v1. For example, we currently still use Implements Via in one or two places for the VB forms package since it supports generics where Inherits does 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.com already 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.xml and per-page SEO metadata, and is confirmed indexed across Google, Bing, and DuckDuckGo.
  • The twinBASIC Book.pdf reached 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/twinproj file format is now documented to a level sufficient for parsing and round-tripping, and an impexp tool (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_Handle prefix convention and the modern Implements IWidget.Handle suffix 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 as Implements My_Interface.
  • waynephillipsea issued a formal deprecation notice: Implements Via should be avoided and may be removed before v1. Developers should migrate to the Inherits keyword, with the exception of cases requiring generics support, which Inherits does not yet cover.

Bug Reports

  • alaskandruid discovered that Class_Terminate fires on the base class before the derived class when using Inherits — 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.exe in the bin folder, while --BuildAndExit resides on the main twinBASIC.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.

Releases · WaynePhillipsEA/twinbasic
Contribute to WaynePhillipsEA/twinbasic development by creating an account on GitHub.

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' DataSource property can now be set directly to an ADODB.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

All original code samples by Mike Wolfe are licensed under CC BY 4.0