The idea is to build the Mazed app for PC, it will be built in react electron, so it's useable through web, app. mobile, while being highly customizable and alive
It will ressemble sopmething like discord or steam , but for the whole mazed project
There are 4 aspects that we need to hold
Make that people can find, their character ( Find function meaning.. Provide tools to elevate their character and themselves (God Make and HUD for the world, and make it alive, using imagination (POkemon go.. And make it social so people can make friends (School
It will hold all the spiritual lore, The idea of mazed is to make a map, that people can use to find themselves, god, and there version of it
-
Install dependencies:
npm install
-
Create a
.env
file in the project root with your Supabase credentials:VITE_SUPABASE_URL=your-supabase-url VITE_SUPABASE_ANON_KEY=your-anon-key
-
Run the SQL in
profiles.sql
on your Supabase instance. This file creates or updates theprofiles
table so it contains anemail
column and a uniqueusername
for each user. The script also backfills the column with existing emails, so simply executing it keeps your database in sync with the application. -
Run the SQL in
supabase-tables.sql
to create thequests
andruns
tables used by the application. -
Run the SQL in
friendships.sql
to create thefriendships
table used for managing friend requests. -
Run the SQL in
auth-trigger.sql
so a matching profile is inserted whenever a new user signs up. -
If row-level security is enabled on
profiles
, create a policy so the app can look up an email address by username when signing in:create policy "Public read for login" on profiles for select using (true);
For development with live reload:
npm run dev
To build for production and start Electron:
npm run build
npm start
Make sure the .env
file with your Supabase credentials exists before running either command.
If you want the Formless layer to embed a Unity scene, place your Windows
player build inside runtime/win/UnityPlayer/
and describe its executable and
window title in unity.config.json
. See UNITY_SETUP.md for the
step-by-step guide.
Create a public storage bucket named avatars
in Supabase. The profiles
table includes an avatar_url
column where uploaded image paths are stored.
When viewing your profile, click the picture to choose a new image. The image
can now be cropped before uploading and the final picture is persisted across
sessions. After pulling new changes be sure to run npm install
so the
react-easy-crop
dependency is available.
Uploaded filenames are automatically sanitized to avoid characters that
Supabase storage rejects. If you see a "row-level security" error when uploading,
check that your avatars
bucket allows authenticated users to insert and select
files.
The displayed version comes from src/version.js
. After each update to the
codebase, bump the patch number (the last digit) and commit the file so
releases are easy to track.
Accounts now support logging in with either an email address or a username. The sign in screen accepts either identifier. Usernames are stored in lowercase and cached locally once set so they persist across sessions.
If your profile does not yet have a username, open the profile popup and click
the Get username button to choose one. After saving, the profile will show
@username
instead of your email.
All password inputs include a small eye button on the right side to toggle visibility. Use it if you need to double‑check what you typed.
The calendar now uses a black background throughout for improved readability.
Events are positioned in two columns: planned items occupy the left half of a
slot while completed entries appear on the right. The accompanying styles
(.planned-event
, .done-event
and .block-event
) ensure consistent colors
and widths for each type.