I build
compiler tooling, code editors, visual designers, developer tools, native Win32 software and documentation engines.
PlanetSquires Software is an independent software studio shipping FreeBASIC and Win32
tooling: the tiko editor, an 11,672-entry API reference, and
eighteen open-source owner-drawn controls. Three decades of native code — no frameworks,
no build step, and it starts faster than the page you are reading.
I have been writing software since 1993 — DOS first, then Windows — and
for most of that time the product has been somebody else's toolchain.
PlanetSquires Software is an independent studio in Canada working close to the metal: the
Win32 API called directly, the FreeBASIC compiler, and a code editor built around them. There
is no runtime to install, no package manager in the loop, and nothing between the source
and the executable except a compiler and a linker.
That constraint is the product. tiko ships as a single package with the
32- and 64-bit FreeBASIC toolchains, José Roca's AfxNova library and the complete include
set, preconfigured — you unpack it and compile. The
Help Center
is a static site with a 2.4 MB search index and no server behind it, which is why it
also works offline from a local folder and inside tiko's own F1 pane.
The work splits into four things I care about: compiler tooling and language front ends,
IDE and editor engineering, native Windows UI, and making all of it measurably fast.
Everything worth reusing ends up on GitHub.
Compiler front ends
IDE engineering
Win32 & owner-drawn UI
Systems programming
Performance work
Open source
Previously shipped
WinFBEIDE
The FreeBASIC IDE that came before tiko, and tiko's direct ancestor — a full editor, project system and compiler integration. Still on GitHub, now succeeded rather than abandoned.
FireFlyVisual designer
A visual GUI designer and code generator for PowerBASIC — draw the window, get real compilable source, no runtime and no black box in the middle.
JellyFishEditor
A programmer's editor for PowerBASIC, built when the alternative was a plain text editor and a command line.
CheetahDatabase system
A dBASE III compatible database engine for Windows applications, from the era when shipping data-driven software meant writing the storage layer yourself.
0Years shippingsince 1993 · DOS → Windows
0Indexed API entriesacross three docsets
0Open-source controlsowner-drawn, standalone
0Shipped localizationsEN · FR · ES · DE · NO · ZH
03 — Featured projects
Four things worth your time.
An editor, a community, a reference, and the framework that underpins the lot.
A small, fast code editor for the FreeBASIC compiler — shipped as a complete package
with both compiler toolchains, the AfxNova library and every include file, ready to
build on first launch. Scintilla-backed, Unicode throughout, per-monitor DPI aware,
with incremental module compilation, codetips, autocomplete and GDB debugging.
It is the successor to WinFBE.
Where the work actually gets discussed. Separate boards for PlanetSquires software,
José Roca's libraries, and general Windows and FreeBASIC programming — bug reports,
release notes, and the kind of long-form technical threads that never survive a chat
app. Free to join, and the fastest route to a real answer.
11,672 functions, methods and properties behind one search box. Three docsets —
José Roca's AfxNova, the FreeBASIC 1.20.0 manual, and the eighteen PlanetSquires
controls — fused from documentation and source into a single symbol database.
28,000 static pages, byte-deterministic builds, and it runs from a local folder or
inside tiko when you press F1.
Created and maintained by José Roca — not a PlanetSquires product.
The Windows framework for FreeBASIC: class-based wrappers over the Win32 API, GDI+,
Direct2D, DirectWrite, COM, ADO, WebView2 and more.
AfxNova is José Roca's work, and José is a legend. He is one of the
most respected Win32 API programmers anywhere — decades of meticulously engineered,
exhaustively documented libraries that an entire generation of BASIC developers
learned the Windows API from. When his code says a COM interface behaves a certain
way, you can stop reading the SDK.
My part is strictly downstream: I bundle AfxNova with tiko so it is configured out of
the box, and I generate its 11,038-entry reference for the Help Center. The credit,
the source and the issue tracker are all his.
Everything here compiles to a native executable that calls the operating system directly.
FreeBASIC
Compiled · 32 & 64-bit · GPL toolchain
A modern, self-hosting BASIC compiler that produces real native binaries with C-level
performance and unrestricted pointer access. It is the language tiko is written in and
the language tiko compiles — the whole toolchain ships in the box, so the distance
between an idea and a running .exe is one keystroke.
frmMain.basFreeBASIC
#include once"AfxNova\CWindow.inc"usingAfxNova' One window, no designer, no runtime.dim asCWindowptr pWindow = newCWindow
pWindow->Create(0, "PlanetSquires", @WndProc)
pWindow->SetClientSize(960, 600)
pWindow->CenterfunctionWndProc(byval hwnd asHWND, byval uMsg asUINT, _
byval wParam asWPARAM, byval lParam asLPARAM) asLRESULTselect case uMsg
caseWM_DESTROYPostQuitMessage(0) : exit functionend selectfunction = DefWindowProcW(hwnd, uMsg, wParam, lParam)
end function
Self-hosting compiler, native output, zero runtime dependency
Unicode-aware string types and direct pointer arithmetic
Both toolchains bundled and preconfigured inside tiko
Win32 API
C · Direct system calls · No abstraction layer
The platform itself. Every control in the PlanetSquires family is one real
HWND with its own window procedure — no wrapper hierarchy, no message
marshalling, no toolkit deciding how a control should behave. That is what makes them
embeddable in anything that can call CreateWindowExW.
main.cC
/* Register the class, then pump the queue. That is the whole model. */WNDCLASSEXW wc = { sizeof wc };
wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInst;
wc.hCursor = LoadCursorW(NULL, IDC_ARROW);
wc.lpszClassName = L"PsMainWindow";
RegisterClassExW(&wc);
MSG msg;
while (GetMessageW(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
One HWND per control — hosts can SetWindowPos it freely
Flicker-free double-buffered painting through a shared surface
Per-monitor DPI scaling handled at creation, not patched afterwards
C / C++
Systems work, DLL boundaries and anything that has to interoperate cleanly. The Win32
headers are C, so this is the language the platform is documented in — and the one I
reach for when a component has to be callable from everywhere.
PowerBASIC
A decade and a half of shipped commercial products — FireFly, JellyFish and Cheetah were
all built with it. A superb native compiler, and where much of the owner-drawn Win32
technique behind the current controls was first worked out.
05 — Open source
Eighteen controls, each its own repository.
Owner-drawn Win32 controls built for tiko and split out to stand alone. One
HWND, no subclassing hierarchy, host-supplied colours and fonts, and a
self-test you can run from an environment variable.
AfxNova is José Roca's framework — a deeply respected Win32 API
programmer, and the reason a great deal of BASIC Windows code works at all.
PlanetSquires bundles his library with tiko and generates its reference; it is not a
PlanetSquires product.
There is no contact form here on purpose. Bug reports, feature requests and questions all
belong somewhere public, where the answer helps the next person who searches for it.
Filing a good bug report? Include your Windows build, whether you are on the 32- or 64-bit
toolchain, and the smallest source file that reproduces it. That trio resolves most issues
on the first reply.