nontrinsic/web
2
5
Fork
You've already forked web
0
The full-stack web app built with SvelteKit and Supabase for Nontrinsic. https://nontrinsic.linerly.xyz
  • Svelte 50.5%
  • TypeScript 37.5%
  • CSS 11.4%
  • JavaScript 0.4%
  • HTML 0.2%
oknwsx 1286454525
All checks were successful
Deploy to Cloudflare Pages / Deploy to Cloudflare Pages (push) Successful in 3m16s
Added translation using Weblate (Arabic)
2026年07月12日 16:06:18 +00:00
.forgejo/workflows Add name 2026年01月29日 18:02:51 +07:00
.vscode Format all files with Prettier 2025年10月28日 19:36:32 +07:00
messages Added translation using Weblate (Arabic) 2026年07月12日 16:06:18 +00:00
project.inlang Enable Polish localization 2026年06月29日 14:17:24 +02:00
src add URI translations for Polish 2026年06月30日 13:57:23 +02:00
static Add app links to open links in iOS app 2026年05月25日 12:06:39 +07:00
.gitignore Add formatting tip 2026年02月10日 19:56:49 +07:00
.npmrc Ignore peer dependency for dotlottie-svelte 2025年11月12日 17:42:31 +07:00
.nvmrc Try adding back 2025年12月05日 16:27:39 +07:00
.prettierignore Initial commit 2025年02月02日 20:43:43 +07:00
_redirects Make sure to include build command 2026年01月29日 17:45:37 +07:00
LICENSE Relicense to GNU AGPL 2025年11月04日 17:57:51 +07:00
package-lock.json Update Wrangler 2026年06月07日 23:28:17 +07:00
package.json Update Wrangler 2026年06月07日 23:28:17 +07:00
postcss.config.js Format all files with Prettier 2025年10月28日 19:36:32 +07:00
README.md Update README 2026年05月25日 12:59:41 +07:00
svelte.config.js Use Cloudflare Pages 2026年01月29日 17:03:19 +07:00
tailwind.config.ts Format all files with Prettier 2025年10月28日 19:36:32 +07:00
tsconfig.json Format all files with Prettier 2025年10月28日 19:36:32 +07:00
vite.config.ts Make sure to use offline mode properly when it's offline 2026年03月19日 15:32:07 +07:00
wrangler.jsonc Use dynamic base URL 2026年03月01日 01:48:23 +07:00

nontrinsic

Deploy Status Last Commit Uptime Translation status

This is the full-stack web app for the Nontrinsic platform made with SvelteKit and uses Supabase for the database, authentication, and media storage—just for nonsense!

Check it out: https://nontrinsic.linerly.xyz

Read more about the backstory in the About page.

See the documentation.

Development

If you want to work on the Nontrinsic web app, these are the things that you need to do.

Nontrinsic uses Supabase; you must set up Supabase first. You can use the managed version of Supabase, or the self-hosted version. Once you've set up a project in Supabase, you can download the nonsense database from https://nontrinsic.linerly.xyz/api/v1/nonsense as a CSV file and import it into the nonsense_list table, in the public schema, in the PostgreSQL database on Supabase.

To use the Nontrinsic web app locally, first clone the repository, go into the repository directory, then install the dependencies:

git clone https://codeberg.org/nontrinsic/web.git &&
cd web &&
npm install

Make sure to prefill these environment variables in .env.local (make a new file with that name) in the root directory:

PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
PUBLIC_SUPABASE_ANON_KEY=sb_publishable_YOUR_ANON_KEY
PUBLIC_SUPABASE_STORAGE_BUCKET=nonsense
SUPABASE_SERVICE_ROLE_KEY=sb_secret_YOUR_SERVICE_ROLE_KEY
NEWS_RSS=https://your-news-source/rss
IMAGE_ENDPOINT=https://localhost:3000/render
IMAGE_TOKEN=yourimagetoken
PUBLIC_BASE_URL=http://localhost:5173
METABASE_SECRET_KEY=metabasesecretkey
PUBLIC_METABASE_URL=https://your-metabase-instance
WORD_OF_THE_DAY_API=https://wordoftheday.freeapi.me
REPORT_WEBHOOK_URL=https://discord.com/api/webhooks/yourid/yourtoken

Note

You must fill PUBLIC_SUPABASE_URL and PUBLIC_SUPABASE_ANON_KEY to use the web app locally with minimum functionality. In the Supabase dashboard, go to your project, click on "Connect" at the top, then go to the "API Keys" tab to get the URL and the publishable (anon) key. It is recommended to use a publishable key rather than a legacy anon key by going to API settings in the dialog.

Use the storage bucket name that you're using in Supabase Storage to store media in PUBLIC_SUPABASE_STORAGE_BUCKET. If you haven't made one yet, in the Supabase dashboard, go to your project, click on "Storage" in the side bar, then click on "New bucket". Fill in nonsense as the name and enable "Public bucket". Make sure to add a new policy so that authenticated users can upload media to accompany nonsense entries by going into the newly-made bucket, then clicking on "Policies", then "New policy", then "For full customization". Add a policy name like "Upload media", enable "INSERT" in the Allowed operation section, then select authenticated from the dropdown for the Target roles section. Once done, click on "Review" and (adjust again if needed) then click on "Save policy".

SUPABASE_SERVICE_ROLE_KEY must be filled to test the submission functionality. In your project, go to the Project Settings, then API Keys.

METABASE_SECRET_KEY and PUBLIC_METABASE_URL can be left out if you don't have Metabase available to be shown in the Stats page (see Metabase documentation for embedding); only the official Tableau Public dashboard will be shown for the nonsense database on Nontrinsic.

NEWS_RSS and WORD_OF_THE_DAY_API are optional, and they are only used in some entries that use special variables (${breaking_news} and ${word_of_the_day}).

IMAGE_ENDPOINT and IMAGE_TOKEN are required to use the share functionality for nonsense entries. See nontrinsic/image for more information.

REPORT_WEBHOOK_URL is required for the entry reporting endpoint to work.

Start the development server

npm run dev

...then open your browser and go to http://localhost:5173

Self-hosting Nontrinsic in production is beyond this documentation, as you will need to adjust the adapter for SvelteKit to use for whatever deployment platform you're using, etc.

Donate

Nontrinsic, being a side project once, just happens to be my school project now; I have lots of free time to work on this!

I believe nonsense should be free. The cost of developing and hosting Nontrinsic is (essentially) free, but there's the cost of publishing the mobile apps to complement the web platform and investing in new hardware for development.

If you'd like to support me to make sure I can keep continuing all of this, consider contributing financially via Liberapay, Ko-fi, or PayPal. Thank you!

Donate using Liberapay

Translations

Help translate Nontrinsic on Codeberg Translate!

Translation status

License

The Nontrinsic web app is licensed under the GNU Affero General Public License, while the database itself is licensed under CC0 1.0 Universal which you can download a copy of it.