twinBASIC Update: February 17, 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. 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

The twinBASIC documentation site (docs.twinbasic.com) keeps getting quality of life improvements in advance of the upcoming v1 release date.

This week saw the rollout of a Light Mode/Dark Mode toggle:

docs.twinbasic.com in Light Mode
docs.twinbasic.com in Dark Mode

Special recognition goes out to woeoio2, okaso, and Alex Hedley, who seem to be leading the charge among the community to polish up the overall twinBASIC ecosystem in advance of the v1.0 launch.

Check out the #docs channel summary below, and visit the #docs channel on Discord to contribute or learn more about the ongoing documentation effort.

Discord Chat Summary

* Auto-generated via Claude-Sonnet-4.5

Overview

This week sparked significant discussion about twinBASIC's development maturity and v1 release readiness, with community members debating whether the project remains in alpha, has reached beta, or is approaching RC status. The conversation revealed varying stability experiences based on use case complexity, with waynephillipsea providing authoritative guidance on experimental features and the critical importance of bug reporting. Parallel developments included substantial documentation site improvements, plugin marketplace proposals, and practical discussions about migrating from legacy dependencies like RichClient. The week demonstrated the project's dual nature: stable core functionality serving many users while experimental features undergo active refinement.


General Channel Highlights

Release Readiness Debate

The week's most extensive discussion centered on twinBASIC's current development stage, revealing a spectrum of user experiences:

  • mansellan argued the project is approaching RC stage, noting it has long surpassed proof-of-concept and that "perfect is the enemy of good" - no language achieves perfection at v1
  • okas_o shared detailed experiences with frequent out-of-memory errors (every 60-180 seconds), codegen issues, and UDT passing crashes, personally characterizing the project as alpha-stage and estimating 12-18 months to v1.0
  • waynephillipsea clarified that newer features like ByVal-UDTs are "very experimental" (alpha-stage) and emphasized: "If not reported, it likely won't get fixed for some time." He noted that debugging codegen issues personally takes significantly less time than users attempting it themselves
  • fafalone suggested the frequency of crashes warranted sharing projects with Wayne, as such instability isn't typical even for complex work

antsantix provided valuable perspective, noting that many apparent twinBASIC failures actually revealed bad VB6 practices that had escaped detection, with twinBASIC's stricter validation exposing these issues.

RichClient Migration Strategy

yereverluvinunclebert_49972 provided comprehensive breakdown of his RichClient replacement strategy, addressing the library's 32-bit and closed-source limitations:

Completed replacements:

  • RegFree DLL registration (VG's alternative)
  • Audio control (fafalone's Core Audio for Vista+)
  • DPI awareness (API alternatives)
  • Collections (Scripting.Dictionary, Cristian Buse's VBA.Dictionary, native tB collections)
  • In-code timers (custom implementations)
  • SQLite wrapper (VBCairo.DLL from wqweto and Krool)

In-progress work:

  • Cairo support for transparent images on invisible forms
  • Graphical widgets with events/properties using GDI+
  • PSD parser refactoring

The discussion highlighted VBCairo.DLL's successful SQLite integration and the substantial but achievable path to 64-bit migration.

Language Enhancements

mansellan requested extending underscore grouping in numeric literals beyond hex/octal/binary to all numeric types (e.g., 1_000_000 as in C#). waynephillipsea confirmed feasibility and requested formal submission to the #ideas channel, which was completed.

Community Projects

  • deletedewd released a complete rewrite of his OCR project using modern approaches, demonstrating successful text recognition from Google Images samples
  • woeoio2 introduced VBMAN web server framework being migrated from VB6 to twinBASIC, featuring object-oriented design with middleware and routing similar to Go/Python frameworks

Community Moderation

A permanent ban was issued for a repeat offender with a 5-year history of violations across VB communities. The incident sparked discussion about professional communication standards in official project channels, with consensus that the space must remain SFW and professional as the official channel for the project.


Addins Channel Highlights

Plugin Marketplace Proposal

woeoio2 proposed implementing a VSCode-style managed plugin store to enrich the twinBASIC ecosystem:

  • Official plugin hosting with readme.md documentation for each plugin
  • Left icon bar API allowing plugin developers to install custom icons and display plugin-specific pages
  • Automated distribution reducing manual plugin list maintenance and lowering user adoption barriers
  • Concept originally developed during external language pack work last year, deferred pending IDE open-sourcing plans

IDE Open-Sourcing Concerns

The proposal sparked discussion about sequencing and v1 priorities:

  • wqweto expressed concern that open-sourcing the IDE would delay v1 release further, suggesting it's not a show-stopper for first release
  • mansellan emphasized that IDE open-sourcing should wait until licensing and CLA (Contributor License Agreement) are finalized to avoid requiring every contributor's permission for future changes
  • woeoio2 acknowledged the idealistic assumption that community IDE maintenance would free waynephillipsea to focus on core compiler development

The discussion revealed tension between accelerating ecosystem growth and maintaining project focus on v1 completion.


Docs Channel Highlights

Documentation Progress

Substantial progress on the twinBASIC wiki this week:

  • Alex Hedley continued foundational IDE documentation work, planning to tackle form controls next
  • okas_o addressed generics documentation (issue #2 raised by mansellan) and created a new tutorials section
  • Tutorials reorganization now features dedicated sections for WebView2, CustomControl, and array tutorials
  • Improved structure provides clearer learning paths for new users

Documentation Site UI Enhancements

woeoio2 contributed comprehensive UI improvements that significantly enhanced the documentation experience:

  • Fixed dark mode search box display bug and added CTRL+K keyboard shortcut support
  • Optimized navigation bar layout, reducing search box space to allow more navigation links
  • Adapted scrollbar styling to dark mode for visual harmony
  • Video demonstrations showcased smooth search interactions and consistent theming

okas_o expressed appreciation, noting the scrollbar styling had been bothering him but time hadn't permitted fixing it.

Lambda Function Discussion

garymiller inquired about lambda function support, sparking technical discussion:

  • bclothier confirmed no lambda support yet, though twinBASIC has delegates which would provide the internal foundation
  • mansellan highlighted readability challenges when lambdas are used as arguments, particularly for LINQ-style operations: someList.Where(item => item.Category == "Sales").Select(item => item.Description) - questioning how such syntax makes sense in BASIC
  • fafalone agreed that benefits may not justify the readability hit expected from a VB classic language
  • okas_o proposed innovative Wolfram/Mathematica-style visual substitution: typing Function in lambda contexts would display as λ symbol unless the cursor is inside the keyword, preserving source code clarity while reducing visual clutter

The discussion demonstrated community interest in modern features while respecting BASIC's readability principles.


Conclusion

This week highlighted twinBASIC's transitional phase, where core functionality serves many users reliably while experimental features undergo active refinement. The release readiness debate revealed that user experience varies significantly with use case complexity - waynephillipsea's emphasis on bug reporting with reproducible cases remains critical for addressing edge cases in advanced scenarios. The community continues building practical migration paths from legacy dependencies, with yereverluvinunclebert_49972's RichClient replacement strategy demonstrating achievable pathways to 64-bit development.

Documentation improvements and plugin marketplace proposals show strong community investment in the ecosystem's long-term success, while thoughtful discussions about IDE open-sourcing timing reflect maturity in balancing immediate needs against sustainable project governance. The lambda function discussion exemplified the community's ability to explore modern language features while maintaining BASIC's core readability values, with innovative proposals like visual substitution offering potential paths forward that honor both goals.

Around the Web

Reddit: German Developer Celebrates twinBASIC Success

Translated and summarized by Claude-Sonnet-4.5

A post in r/visualbasic this week showcased international enthusiasm for twinBASIC, with German developer u/Confident_Alarm_9047 sharing their positive experience migrating from VB6.

Original post (German):

"Es funktioniert großartig!"

English translation:

"It works great!"

The developer reported successfully converting a VB6 project to twinBASIC with minimal issues. Their experience highlights twinBASIC's growing adoption beyond English-speaking communities and its effectiveness at handling real-world VB6 migration scenarios.

The post generated positive discussion in the comments, with community members welcoming the success story and noting the growing number of developers discovering twinBASIC as a viable path forward for legacy VB6 applications. The straightforward migration experience reinforces the project's core mission: providing a modern, compatible evolution of classic Visual Basic that "just works" for existing codebases.

This international success story demonstrates twinBASIC's appeal across language barriers and its practical value for the global VB6 developer community seeking modernization paths without complete rewrites.

Es funktioniert großartig!
by u/wosche123 in visualbasic

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.
  • No new releases this week.