Invoice Studio app icon Wirlo app icon

Apps, designed
with care.

I'm Victor, a solo founder in Sydney. I design and build iOS apps end to end. Two are live on the App Store.

For Australian tradies

Invoice Studio

Talk, snap or type. A tax invoice comes out.

Invoice Studio home screen with templates and AI upload

A circular puzzle

Wirlo

Spin the core. Match colours. Chain combos.

Wirlo: stack tiers snapping into place around the wheel

Case 01 · Live since 29 Aug 2026

Invoice Studio.
Paperwork, done from the ute.

Australian tradies lose hours a week to paperwork: carbon-copy invoice books, GST worked out by hand, chasing bank details.

Invoice Studio turns a voice note, a photo of a quote or a blank page into a ready-to-send tax invoice. GST is calculated automatically, and PayID details go straight onto the invoice so the client knows how to pay.

It started as a web app on 29 May 2026 and became a native-feeling iOS app on 29 August. That meant one codebase, two payment systems (Stripe on the web, StoreKit on iOS) and no framework underneath.

3 free invoices left
V
Harbour Plumbing Co.
ABN 55 638 418 663 · 12 Marine Parade, Rockdale NSW 2216
Tax
Invoice
Billed To
John Smith
Invoice Date
18 Aug 2026
Invoice No.
INV-2041
Project Reference
Hot water system replacement
Summary of Works Completed
+ Add line item
Subtotal$0.00
GST (10%)$0.00
Total Due$0.00
✨ AI Assist & Voice
🇦🇺 🇨🇳 🇱🇧 🇮🇳 🇻🇳 🇬🇷 🇮🇹 🇪🇸 🇧🇷
Listening…
Describe changes… or tap mic to speak
Cancel
Apply →

Tap the phone to replay — scripted demo, no backend involved.

3
ways in: voice, photo, typing
4 × 8
invoice layouts × colour themes
6
starter templates by trade
A$9.99
a month, or A$79.99 a year

What I learned

It took three App Store review rounds. Every rejection was about a compliance detail, like a screen-recording permission or a link to the subscription terms, and never about the product. Since then I get the legal details right before the first submission, because they cost more time than any feature.

Case 02 · Live since 23 Oct 2026

Wirlo.
A puzzle that spins.

Pieces fall inward toward a rotating core instead of stacking in a grid. You spin the core, match colours and chain combos before it fills up.

It's built 100% native in SwiftUI and SpriteKit, with no game engine and no web wrapper. The circular loop has relatives, like Hextris. What's new is the layer on top: a live global leaderboard, share cards where no two are alike, and a signature move where you swipe up on a fully aligned ring to clear it.

It's free to play. Players can watch an optional rewarded video from Google AdMob to earn coins, buy coin packs, or take the Premium monthly subscription, which gives coins every month and removes all ads. Ads only play when the player taps to watch one, and there are never banners.

The idea for the mechanic came from a dream. Everything after that was rounds and rounds of design.

Real screen recording — home screen into an accelerated match. Built 100% native in SwiftUI + SpriteKit.

Wirlo App Store screenshot: a match Wirlo App Store screenshot: combo Wirlo App Store screenshot: the core Wirlo App Store screenshot: best score
11
prototype rounds before native code
10
languages at launch
6
colours, 6 lanes at 60°
0
audio files: every sound is synthesised

What I learned

A casual game for everyone is a different discipline from a tool for a niche. Every decision was tested against one question: would a total beginner get this in 10 seconds?

Design

The details are
the product.

Before any code, I design every screen and test it against real use. Here is how the two apps look the way they do, and why.

Wirlo · Identity and game design

One rule above all.

"Nothing may require interpretation. A coin is a coin. Continue is continue."

Many Wirlo players aren't gamers. There is no text tutorial: the first match is the tutorial. Hints react to what you do, never before, and each one shows only once. The main button has to be readable in under a second, and every touch target is at least 44 points.

A mark that looks drawn, not typed

The "W" isn't a letter from a font. It's four coloured strokes with round caps, tilted 10°, and the last one sits higher. The gaps stand for the piece that hasn't snapped in yet.

Wirlo wordmark

Colour tuned for long sessions

The brand colours are vivid. In the game they're desaturated by 12% so they don't glow against the dark background after twenty minutes of play.

Brand
In game

One typeface, no exceptions

Quicksand replaced Poppins and the system font. Four weights cover all 10 languages with no fallback font.

Aa 1234
Display 58 · Title 18 · Button 15 · Body 14 · Caption 11

Sound, motion, touch

There isn't a single audio file. Every sound is synthesised live on one pentatonic scale, so it all sounds like one instrument, and the hit sound rises as your combo grows. There's one gentle haptic tap per meaningful event and nothing on every frame. Animation follows the iPhone's own Reduce Motion setting.

11 rounds of prototype

The game was designed as an HTML prototype first. The approved prototype became the contract for the native build.

  • Rounds 3–5: readable surfaces, then a three-band layout
  • Rounds 5–8: a frosted-glass bar with real content moving behind it
  • Round 8: core sized to about 21% of the screen, calibrated by feel
  • Round 9: symmetric lanes
  • Rounds 10–11: no impossible situations, and every message moved to the top, because your eyes stay on the core

What I cut

Good design is also what you remove.

  • Large animated logo on launch: it looked like letters appearing out of nowhere
  • Vignette: it crowded the score; film grain does the job
  • "?" help button: if a screen needs help, the screen is wrong
  • Share card replaying the match: now it's generated art, so no two are alike

Invoice Studio · Brand and invoice design

A quiet tool, a beautiful invoice.

The app stays neutral. The invoice carries the brand.

The interface uses calm greys and a single teal accent, so the tradie's own invoice is the colourful thing on screen. Colour themes apply only to the invoice and its PDF, never to the app around it.

App interface
Neutral greys, one teal accent
Invoice themes
8 colours, the client's choice

Four layouts, four personalities

Each layout fits a different kind of business, from a formal accountant to a bold, modern trade.

Modernsoft, rounded
Classicsharp, formal
Minimaljust the facts
Boldcolour first

Three typefaces, three jobs

A clean sans for the interface, an italic serif so a company name feels like a signature, and a monospace font so every dollar lines up.

Plus Jakarta Sans
Harbour Plumbing Co.
$1,240.00

The brand outside the app

Every Instagram post comes from one fixed template: the same grid, colours and type in every post. A bold headline with its second line in teal, an italic serif subtitle, and white cards on a soft grid. The Reels follow the same rules, with no emoji. Consistency is what makes a small brand recognisable.

About

From zero to two apps
in one year.

Victor, founder of Vikta

I wrote my first line of code in February 2026. I have no CS degree and didn't do a bootcamp. I learned with AI as a coding partner, over nights and weekends after a full-time day job.

Since then I've shipped Invoice Studio and Wirlo end to end. I'm not a "no-code" story: I read the code, I ship it, and I fix it when it breaks at 11pm. Vikta is what I'm building while I learn, in public, one shipped product at a time.

Need an app?
Let's talk.

For questions about Invoice Studio or Wirlo, a collaboration, or just to say hi. I read every message myself.