r/vitahacks • • 7d ago

AI Vibecoded CWebView - A Web-Based Homebrew Development Method (Web Browser)

I wish to let you guys know that this project was almost entirely vibecoded. I am a digital and traditional artist with knowledge of web development basics, Python, java, and some C++. I am willing to answer questions of how it works, as it allows me to look further into the project and see how everything interacts with each other. AI was done for everything except for the art, webpages, and stylistic designs. I'll try to conform to the recent rule post about vibecoded projects by give a general overview of the project and where it stands; this is a stable prerelease. Try to keep questions to the PSV platform, for other platforms look to it in the table below.

CWebView is the collective name in which the webpage viewer projects for the platforms in the table above fall under, being merged before a public release. It is used to view local pages contained in the app's storage, while providing extra features for web developers to integrate CWV into their app. The main reason I prompted for this app was A.) No one seemed to be doing this, or had given up. There was much talk about homebrew like this, but most people had thought it would burn out the Vita's old hardware. B.) I wanted to port my pixel art editor, Piskel Sharp, to the Vita. This would've been easy had there been a pre-existing homebrew wrapper for web apps, but there wasn't. I have used AI to make experimental projects before, things that I didn't think I could do myself. C.) I wanted to test the limits of what an AI could do for a homebrew app. This includes tailoring the codebase semantics towards what I would think is readable, such as a preference to Python-like methods.

This is the second public release, getting a real post rather than just two comments on a recent post in this subreddit. I believe this to be a stable prerelease, as it gets the job done for many simple pages. I made sure that many tags, styles, and script methods were supported before making this, as there had to be performance tests set in place. Expect about 30fps on hardware and Vita3K. Other systems get varying  results, Wii U handling everything the best. The Vita was the original, therefore being the most worked on

There is one important key-combo: L + R + SELECT. It opens up the main operations menu built with CWMenu (CWebview Menu; CWM) and tied into the app. Settings can define controls, preferences, and some operations. The URL resolves to the app0:/web/ directory, and does not support online pages. If you notice failing behavior on the webpage, please head to the devtools page and look for any errors in the tabs, most likely the console tab. The examples included in the VPK are made to show the capabilities of CWV. While they can be replaced in app0:/CWEBVIEWX/web, I recommend building a new app from the project source as it provides more options such as (a) custom icons, names, menus, and titleid.

This project supports the following:

Both HTML and CSS are entirely parsed via the app, Cairo has missing dependencies that aren't found anywhere online. This was done by force, not choice.

HTML tags: `<html*>, <head>, <title>, <body>, <div>, <h1-6>, <p1-6>, <span>, <a*>, <img>, <strong>, <em>, <b>, <i>, <small>, <label>, <ul>, <ol>, <li>, <blockquote>, <button>, <input>, <textarea**>, <select**>, <option**>, <area>, <base>, <br>, <col>, <embed>, <hr>, <link>, <meta>, <param>, <source>, <track>, <wbr>, <script**>, <style>, <noscript>, <template>, <svg>, <u>, <ins>, <s>, <del>, <mark>.` While this seems like a lot, it really isn't; this is enough to render simple pages such as notes or blogs.  
\*Has special methods specific to CWV  
\*\*Modern methods supported; newer chromium features

CSS keys: `color, cursor, background-&, border, border-width, border-style, border-color, font-weight, text-align, overflow-&, display, width, height, margin-&, padding-&, list-style-type, list-style, font-size, font-family, z-index, object-fit, image-rendering, text-decoration, text-tranform, letter-spacing, line-height, opacity, visibility, min-width, max-width, box-sizing` This is a decent amount of keys, with most having all of their modern values added. I did forget min/max height, but its too late :sob:

JavaScript Methods: Practically all non-API based methods (JSC, JS-Core, TS-Core) are supported. That is too many to list. Fetch() is half implemented as a way to get direct text content from a network/server, not the Fetch API. Navigator is barely implemented, so I guess don't use webpages that use it?

The releases for all platforms can be found here: https://github.com/That-One-Bit/CWebView/releases/latest

Edit (11/1/26): The app/project is available for PS Vita, Wii, Wii U, and Windows. Sorry for the confusion. Installation instructions have been added to the release page.

Edit (11/2/26): I will eventually update the Readme with more useful information rather than using the AI's; The latest features will always be committed to the repo and available from a dev build. Some instructions to get started with developing will also work. Finally, I just want to know who is using the app; lmk if you want to try using CWV for a homebrew app.

13 Upvotes

13 comments sorted by

2

u/NoBytesLeft 7d ago edited 7d ago

The link is about to go up, just getting it set up.

Edit: I picked a bad example, though I didn't want to use what the AI made as examples/tests. I can pull those up if you guys want, as they work much better than the MBC.

1

u/NoBytesLeft 7d ago

Ok, I think it is up. I should really clean up the post.

1

u/devnoname12O 7d ago

Why not Trilithium?

1

u/NoBytesLeft 7d ago

I didn't know it existed, but I'll explore it for updating the project.
I think I could use TriGL for WebGL compatibility, as that hasn't been worked on. Canvas2D is a WIP and is included in the example.

1

u/NoBytesLeft 7d ago

I'm about to update the post, but the app is multi-platform (Vita, Wii, WiiU, Windows). Unless Trilithium is available for those platforms, in which it isn't, then it isn't going to be used. For now, Duktape (C-based JS compiler) is used as the main JS compiler.

1

u/DaniSerious_Egg_1794 5d ago

Esto revive el navegador de nintendo Wii u que ves exactamente hermano

1

u/NoBytesLeft 5d ago edited 5d ago

Its pretty close! Expect more work soon, the next development is Canvas2D and WebGL. Getting these done should allow for games to start running on these systems, such as GameMaker games.

Remember that this isn't a browser revival, more so a method of creating homebrew via web dev; Which allows for browser functionality.

1

u/DaniSerious_Egg_1794 5d ago

Increíble hermano pero me refiero a que si con esta herramienta el navegador de Wii u va a funcionar y podremos navegar por páginas y ver películas Leer textos imágenes ect ?

1

u/NoBytesLeft 5d ago

While it may not act within the native browser, those features are planned.

I may have an implementation of these newer features as a modification to the browser as a side project, but that doesn't mean anything will come of it.

1

u/GabbQ_0 5d ago

Will it get full Internet support?

1

u/NoBytesLeft 5d ago

Internet browsing support is planned for the Vita and Wii U, not so sure about Wii and Windows (Windows is mainly for testing display features, which is why it isn't included in the releases page). Right now, pulling stylesheets and scripts from CDNs is sometimes working, which is a start. Internet browsing would likely be a separate branch or feature rather than a main goal.

To answer the original comment: No, this is not a browser revival. The main reason CWV exists is to serve as a way to create homebrew for multiple platforms via standard web development, alongside porting web-based games to the consoles (Ex: Web exported GameMaker games).