Skip to content
Menu

~/another-side-projectPortfolio

Oh fork. I built something again.

A collection of questionable ideas, happy accidents, and things that somehow work.PLACEHOLDERSoftware engineer building developer tools and products.

Current status: probably coding

Scroll to investigateScroll down

Selected work

The DamageSelected projects

Things I've shipped. And things that shipped me.A selection of projects I have built, open source and otherwise.

See all projects

Products

Things people actually useProducts I have built

Products I've built. Code stays private, the results don't.What each product does. The source code is private.

  • A finished Heelflick demo project: a sidebar of 14 completed production stages, a “delivered” banner, a video player with a four-shot timeline, and the AI-team activity log.

    Heelflick

    IN PROGRESSIn progress

    A local-first AI studio for short ads and Thai vertical short-drama series.

  • A massage-spa POS queue dashboard in Thai: tiles for 3 in session, 0 finished, ฿0 revenue today and 1 therapist free. A waiting card for a sample walk-in customer has a “start massage” button, next to the therapist rotation list.

    Arsom POS

    IN PROGRESSIn progress

    A point-of-sale web app for Arsom Spa, a massage shop: a fair staff queue, course cards, check-in and check-out, and reports.

  • PLACEHOLDER
    CalQuest's pixel-art dashboard, “Today at camp”: a forest camp illustration, 1,204 kcal remaining of a 2,200 kcal goal after 3 meals, a protein bar at 54 of 120 g, and a one-day streak flame.

    CalQuest

    IN PROGRESSIn progress

    Calorie Quest: an 8-bit, gamified daily calorie tracker. Snap your food, level up your hero.

  • PLACEHOLDER
    Placeholder: screenshot pending

    Locked-in

    IN PROGRESSIn progress

    A running and cycling training plan that adapts to what you actually did, with Garmin sync.

Lab notes

Bad Ideas LabExperiments

Not every idea deserves to exist. Here they are anyway.Small experiments and prototypes, labelled by how finished they are.

Nothing here. Suspicious.No experiments are listed at the moment.

No experiments to show right now. The ones that didn't make it are in the graveyard.Archived projects are listed separately.

Meanwhile, in the graveyardArchived projects

3 projects rest here, with dignity.3 projects I have stopped working on, and why.

  • RIP jarn2026–2026

    Building inside the deepagents framework's constraints hurt more than it helped. I left and built Schway instead.Retired. The work continued as Schway, built without the framework's constraints.

  • RIP agents-irl2026–2026

    A desk pet that reacts to AI coding agents. Less useful than I'd hoped; software turned out to be more convenient.Hardware prototype, retired. A software approach proved more practical.

  • RIP CleanCheck2026–2026

    Photographing a label to scan its INS codes was no different from sending the photo straight to an agent.Food-additive scanner, retired. General-purpose AI assistants already cover the use case.

Visit the graveyardSee archived projects

Enter the labView experiments

git logChangelog

Commit History of Bad DecisionsChangelog

Real milestones from real repos, in the voice they deserve. The jokes are labelled.Dated milestones from my projects: releases, launches and first commits.

Uncommitted changesJokes. Never committed, so no dates.

  1. Joke, not a real event: feat: built another thing nobody asked for

  2. Joke, not a real event: fix: fixed the fix that broke the fix

  1. feat(ohfork): put the portfolio on a design system before it had a portfolio.

    The design system, themes and typed content model landed on main, the same night as the scaffold and the brand identity.

    View project ohfork.dev

    ohfork.dev: The design system, themes and typed content model landed on main, the same night as the scaffold and the brand identity.

  2. chore(langswitch): open-sourced, with the original author credited. Properly, this time.

    LangSwitch became a public GitHub repository (MIT). Its latest commit credits CapsLangSwitcher by Gamezxz again.

    See the receipt (opens in new tab)

    LangSwitch: LangSwitch became a public GitHub repository (MIT). Its latest commit credits CapsLangSwitcher by Gamezxz again.

  3. docs(ohfork): wrote the roadmap before writing the website. Classic.

    First commit of ohfork.dev: the concept, the roadmap and the instructions for coding agents.

    View project ohfork.dev

    ohfork.dev: First commit of ohfork.dev: the concept, the roadmap and the instructions for coding agents.

  4. feat(jit): jit now runs on schway. It's agents all the way down.

    Jit gained a Schway bridge, pinned to a host release.

    View project Jit

    Jit: Jit gained a Schway bridge, pinned to a host release.

  5. feat(jit): learned to read Telegram. Still ignores my messages.

    Jit bound a Telegram owner identity, with a durable long-poll inbox.

    View project Jit

    Jit: Jit bound a Telegram owner identity, with a durable long-poll inbox.

  6. docs(jit): started a project by writing specs for it. Growth.

    First Jit commit: the discovery baseline and feature specifications. The MVP backlog followed the same night.

    View project Jit

    Jit: First Jit commit: the discovery baseline and feature specifications. The MVP backlog followed the same night.

See the full historySee the full changelog RSS — Subscribe to my bad decisionsRSS feed

Résumé

chayapats

PLACEHOLDERSoftware engineer building developer tools and products.

Summary

PLACEHOLDER

TODO(owner): two or three sentences: what you do, what you're good at, what you're looking for.

Experience

PLACEHOLDER
  1. TODO(owner): role · TODO(owner): company

    TODO(owner): 2020 – present

    • TODO(owner): one or two highlights with real, checkable results.

Skills

PLACEHOLDER
  • TypeScript
  • Bun
  • Next.js
  • Swift
  • Rust
  • Python
  • Docker
  • PostgreSQL
  • Cloudflare

Languages

PLACEHOLDER
  • TODO(owner): languages and level, e.g. Thai (native).

About

The Human Behind the BugsAbout me

Professional overthinker. Amateur bug creator.Background, interests and where to find me.

Photo pending. Have a fork instead.Photo coming soon.

chayapats

PLACEHOLDER

TODO(owner): a short intro in your own words: who you are and what you do.

TODO(owner): one more paragraph: how you got here, or what you're into lately.

What I love building

PLACEHOLDER
  • Coding agents and developer tools (Schway, Jit)
  • Voice typing that understands Thai and English (Oliv)
  • Small macOS utilities that fix one annoying thing (LangSwitch)
  • Apps that turn a chore into a game (CalQuest)
  • Software for real businesses, like a POS for a massage spa (Arsom POS)

Why side projects

PLACEHOLDER

TODO(owner): why you keep building side projects.

Toolbelt

  • TypeScript
  • Bun
  • Next.js
  • Swift
  • Rust
  • Python
  • Docker
  • PostgreSQL
  • Cloudflare

Interests

PLACEHOLDER
  • TODO(owner): a few interests or philosophies, one per line.

Contact

Got a questionable idea?Get in touch

Or a question, a bug report, or a side-project story. Send it over.Questions, collaborations or opportunities: email is the best way to reach me.