Community managed "disaster timelines." https://isgoinggreat.basil.cafe
 
 
 
 
 
Go to file
Basil 39ce940364
Fixed `<Icon />` reactivity
2023-08-09 18:29:10 +02:00
patches Added patches 2023-07-30 18:58:02 +02:00
pocketbase/pb_migrations Changed content length limits for events 2023-08-06 16:11:11 +02:00
public Migrated `<Icon />` to use dynamic imports 2023-08-08 21:34:56 +02:00
scripts Commit FontAwesome icons 2023-08-01 12:19:04 -05:00
src Fixed `<Icon />` reactivity 2023-08-09 18:29:10 +02:00
.env.example Add RSS, improve event images, & fix ENV types 2023-08-08 15:15:27 +02:00
.eslintrc.json Fixed many linting errors and warnings 2023-07-26 00:24:30 +02:00
.gitignore Commit FontAwesome icons 2023-08-01 12:19:04 -05:00
.prettierrc.json Another backup commit (will be force-pushed later) 2023-07-15 16:08:21 +02:00
LICENSE Another backup commit (will be force-pushed later) 2023-07-15 16:08:21 +02:00
README.md Another backup commit (will be force-pushed later) 2023-07-15 16:08:21 +02:00
TODO.md Add RSS, improve event images, & fix ENV types 2023-08-08 15:15:27 +02:00
flake.lock Fix `pnpm2nix` build input 2023-07-31 02:24:09 +02:00
flake.nix Fix flake 2023-08-01 12:23:06 -05:00
package.json Migrated `<Icon />` to use dynamic imports 2023-08-08 21:34:56 +02:00
pnpm-lock.yaml Migrated `<Icon />` to use dynamic imports 2023-08-08 21:34:56 +02:00
postcss.config.js Work-in-progress commit (will be force-pushed later) 2023-06-28 10:08:09 -06:00
tailwind.config.js Another backup commit (will be force-pushed later) 2023-07-15 16:08:21 +02:00
tsconfig.json Another backup commit (will be force-pushed later) 2023-07-15 16:08:21 +02:00
vite.config.ts Add Nix flake build 2023-07-30 16:17:12 +02:00

README.md

IsGoingGreat

Obviously, credit where credit is due; this project wouldn't exist if it wasn't for the wonderful work of Molly White (and contributors!) on Web3 is Going Just Great.


IsGoingGreat is built on solid-start and PocketBase.

Setup

Icons

Just like Molly's timeline generator, we're using FontAwesome. FontAwesome does not publish SVGs of their icons to npm, so we must do it manually. There is a script to automate this:

# Use chmod if needed
chmod +x ./scripts/fontawesome.sh
./scripts/fontawesome.sh

We're using the Solid subset of the free icons. You can look through them here: https://fontawesome.com/search?o=r&m=free&s=solid

Developing

Once you've created a project and installed dependencies with npm i (or pnpm i or yarn), start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Notes

Look out for comments that start with TODO: or IMPROVEMENT:. TODOs are for tasks that should really get done and IMPROVEMENTs are potential ideas.

declassify

Various pocketbase functions return an instance of the Record class. On static SSR pages, this is not important. However, if you require the data to be accessible on the frontend for interactive purposes, you have to call the declassify function (a purpose-built function for dealing with Records) on the class in order to convert it (and any nested expands) from a class to an object:

const eventData = await pb.collection('events').getFirstListItem();
// This does not work
// return eventData;
// This works
return declassify(eventData); 

I am not entirely sure why, but I'm assuming that classes cannot be serialized, wheras objects can.

Building

Solid apps are built with adapters, which optimise your project for deployment to different environments.

By default, npm run build will generate a Node app that you can run with npm start. To use a different adapter, add it to the devDependencies in package.json and specify in your vite.config.js.