Skip to content
View in the app

A better way to browse. Learn more.

ernestdefoe.online

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
ernestdefoe.online

Extensions, themes & support for Flarum and Invision Community

Vibe coding for the community web. Report a bug, request a feature, or dig into the source — this is where the tools you use get built, in the open.

We do custom Bespoke Invision Community apps. If you have an idea for something you want then use the contact form to get in touch with us.
Knowledge base

Things that cost me a day, so they cost you none

Working notes from building Invision Community and Flarum applications. Mostly the failures that give no error at all — the ones where everything installs cleanly and quietly does the wrong thing.

92 articles

Invision Community 5

86 articles

Extensions and contracts

39

What each extension point is for, what it must declare, and what happens when it is wrong — which is usually nothing visible.

Languages and text

5

The string table, translation, and the places where text does not appear where you expected it to.

Theming, templates and forms

9

Theme hooks, CSS that survives both colour schemes, and building forms that do not throw on render.

Background work and scheduled tasks

5

The queue system, work that has to happen after the response, and jobs that finish without doing anything.

Data, settings and storage

11

The database layer, settings, tags, file storage, and backing up a live site.

AI features and expectations

5

What these features do, what they cost, and what buyers reasonably but wrongly assume they do.

Application structure and releases

11

The JSON files an application is made of, versioning and upgrade steps, and testing from the command line.

Realtime, chat and calls

1

WebSocket gateways, relays and the server-side pieces live features depend on — where "it works when I test it" and "it works for your members" are different claims.

Nothing matches that.

AI features and expectations

What these features do, what they cost, and what buyers reasonably but wrongly assume they do.

5 Articles in this category

  1. Ernest Defoe ·
    An assistant that retrieves the right knowledge base article and then cannot give the reader a link to it has lost most of its value. This is a common and slightly embarrassing bug, and it comes from doing exactly the right thing about security in the wrong order. What it looks like A customer's report, near enough verbatim: Both halves are the same bug. The reply is being escaped wholesale, so [Title](https://example.com/kb/1) arrives as those literal characters. Turning an editor Markd
    • 0 comments
    • 26 views
  2. Ernest Defoe ·
    An AI support assistant on a forum does not know your community, and it does not go and look. It answers from whatever you have given it. Install one on a site with nothing to read and you get an assistant that is confident, general, and wrong about the specifics — while billing you for every answer. This surprises people, because the same models answer general questions well. The difference is that your members are not asking general questions. They are asking about your settings, your polici
    • 0 comments
    • 32 views
  3. Ernest Defoe ·
    An OpenAI API key works with both endpoints. The model names do not. Put gpt-5.4-nano, gpt-4o-mini or any other chat model into a field that expects an embeddings model, and the request is rejected — but if the work happens in a background task, nobody is told. The application then behaves exactly like one that is broken. What you see The setting saved without complaint, so the credentials look accepted. Pressing the button reports something reassuring: "Learning the tag vocabulary in the b
    • 0 comments
    • 26 views
  4. Ernest Defoe ·
    A customer asked this about an auto-tagging application, a day after installing it: But when it begins to learn? If a user published the next untagged thread? It is a completely reasonable question, and the answer is that it never begins to learn, because it never stops being ready. There is no warm-up. It works correctly on the very first topic and it works exactly as well on the ten thousandth. Nothing a member does changes it. If you are building anything that classifies content with embedd
    • 0 comments
    • 31 views
  5. Ernest Defoe ·
    If you build anything that decides "is this content about that thing" using embeddings — auto-tagging, related content, routing to a forum, spam scoring — the obvious design is a threshold. Score the item against each candidate, keep whatever clears a number, take the top few. It is one setting, it is easy to explain to an administrator, and it is wrong. The failure An auto-tagging application shipped with exactly that. On the community that installed it, it gave sixty consecutive topics the
    • 0 comments
    • 39 views

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.