#hangar-contrib

1 messages · Page 1 of 1 (latest)

primal cape
#

secret channel?

noble fog
#

nope

gloomy pewter
#

e

primal cape
#

it just magically appeared to me today 🪄

lofty comet
#

RIP, gonna lose all my concept feedback

cedar bramble
#

Hello papuzz

outer kettle
#

On the upside you can gather more here fingerguns

devout trail
#

Thanks discord for suggest this channel

umbral pagoda
#

Very sad day

#

We had good off-on-topic discussions in development Sadge

lament rock
lofty comet
#

Although technically still waiting on the "go ahead" to code the frontend xd

lofty comet
fathom girder
cloud root
#

A reminder that while this is a new channel, it is a contrib channel, so it's not for random conversation, shitposting, memes, etc etc etc.

weary geyser
#

got it

knotty verge
#
fathom girder
#

Is this only when using API? Or also in the frontend?

lofty comet
outer kettle
#

I like almost everything there, just a few things:

  • expanding the used horizontal space like that requires too much drastic eye movement (or at that point head movement); it can be a bit more than currently used, but in your screenshots it's too wide I think
  • https://i.imgur.com/5ZS0HfI.png the release channel position looks off, I'd maybe move it to the left/right of the version (or separate that line from the text block again)... that might have been to keep it consistent with org/membership role tags (which I like better than before), but I don't think it works with the release channel. or maybe it's just that it's too round. tldr idk, just try a few things AlienPls3
  • for pinned versions, version cards and project cards, the two "parts" shouldn't be separated by the background but more clearly connected
  • the platforms look like clickable buttons https://i.imgur.com/WiL4UVc.png
  • https://i.imgur.com/o4Dj2R2.png and co. might need some separation again, even if just a horizontal line
#

also, even without reducing width, the version list is too packed with stuff PepeLa that was for sure the hardest thing for me to do and my attempt still doesn't look good

#

Just thoughts (and prayers) though

fathom girder
#

i'd like to see the separation lines but i think it looks fine how it is.

lofty comet
# outer kettle I like almost everything there, just a few things: - expanding the used horizont...
  1. Just to note, this is in a 1080p screen, depending on resolution, horizontal spacing would work similarly to how hangar currently works.
  2. I see what you mean and will try some other things later tomorrow.
  3. I might have an idea on how to fix that. Also something for tomorrow.
  4. The idea is kinda that they are. It would redirect to the respective page for that platform. Let me know how you feel about that.
  5. I am a bit confused by this one, what do you mean by co.?
lofty comet
#

But the idea is to provide as much info as possible before the user even clicks on the project. Specially platforms

#

Design to code never is a 100% conversion, so I'd be curious how different it will look.

outer kettle
#

"respective page"? you mean the versions page with a pre-filter?

#

the last one was about the user and project headers

coral violet
#

Has Hangar a RSS Feed ?

#

Idk if that known

knotty verge
lofty comet
lofty comet
outer kettle
#

The horizontal line below it

#

There’s no platform specific pages, the main page lets you see and download everything, so I don’t think they need to be buttons

lofty comet
lofty comet
#

So kinda good to be a call to action no?

#

If I put all that info in the card itself it's way too cluttered

outer kettle
#

It still shouldn’t be a button if that’s its purpose omegaroll

#

That’s just abuse

fathom girder
#

What if, instead of a button like we separate the platform card from the main and info card. Ie. One horizontal line above the platforms.

#

Just a thought tho

lofty comet
lofty comet
#

now that I think of, what could be done is that those buttons when clicked, redirect you to the download of the respective platform for that project

old lodge
#

The homepage cards seem a bit much? Is there any reason you need the separate card on the right hand side?

#

Some of that info could go in the line below the project, to keep the right side info cleaner

#

I don't really like the separate cards either, makes them look like they're not actually related to the project next to them

#

I feel like the supported platforms should be just icons

lofty comet
#

I will try to visualize all that, from there we can see

lofty comet
#

@old lodge @outer kettle thoughts on this?

mental fern
#

I like the paper airplane logo on the right

#

Honestly, that's hella clean

#

I like it a lot

#

Though hwhy did you move the stars and downloads stats? I feel like stars at top and then downloads looks a bit better

#

Since the stars will usually be the smaller number

outer kettle
#

I think I like that

lofty comet
lofty comet
mental fern
#

I didn't pay much attention to the rest

fathom girder
#

i think downloads first looks better

timid briar
lofty comet
#

imo downloads are the first thing I look for tbf

#

@fathom girder ^^

lofty comet
#

regarding the alignment, I agree, but at the same time, aligned to left looks also a bit off

wild needle
#

What about right aligned & move the icons for downloads / reviews / update time to the right of the text instead of left?

lofty comet
#

(ignore the weird spacing between stats and platform of the line)

fathom girder
lofty comet
fathom girder
#

alright

mental fern
#

I didn't even notice

#

I mean, you can keep it as downloads first, I am by no means someone you have to listen to. I just think that going from least-text to most-text makes sense. I just prefer it like that.

          231
      141,331
Today 5:08 PM

vs

      141,331
          231
Today 5:08 PM

It's really not a big difference, so I think it is fine

lofty comet
#

I personally see it as a hierachy of importance

#

and I find download count more important

#

either way, I think that is possibly the least of our problems as the main topic should be about the design, and if the latest fixes the issues mentioned by kenny mdcfe and _11

old lodge
lofty comet
#

should cover that

old lodge
#

Yeah was replying to the ping, that looks better I think

#

I'm still not 100% sold on the platform list being there exactly but I can't really think of anything better

lofty comet
#

(no idea where I'd put price of a plugin with this layout, for whenever those get added but that is a problem for later)

lofty comet
#

centered in a list format?

#

(which btw, not done but you can just change it to grid)

old lodge
#

As in the platform icons on the card

lofty comet
#

AH

#

yeah I am not sold either

#

problem is where would you put them

#

without putting too much info in a single place

old lodge
#

Maybe to the left of the category? Could wrap them in a pill per platform (but then that's going back towards Kenny's concern about them looking like buttons)

lofty comet
#

not if they are like the channel labels?

#

something like this?

#

that looks somewhat less bad

#

and having it written also means that those who don't recognize the logo can clearly see the platform

lofty comet
# lofty comet

not sure if putting them near the category/addons is a good idea

#

feels a bit of an overload on info in a single line

mental fern
fathom girder
#

Either really

lofty comet
timid briar
#

That part represents the platforms right?

#

If so I would suggest adding a folia icon as well

#

I like the leaf next to the category but I don't think users really know what that means
I got asked multiple times whether some of my plugins have folia support because they can't find anything on my hangar page about it

lofty comet
#

So ypu mean adding folia as a platform itself?

timid briar
#

Yes

#

Some plugins might have extra builds for folia
For example fawe or luckperms

#

Or even spark
They can't just set folia support to true in general because people will complain that it doesn't work
Adding it as a platform would solve that and enable them to publish releases specifically for it

lofty comet
#

That needs to change in the backend too though

#

Not just frontend

timid briar
#

Yes agreed

lofty comet
#

I will just implement it as if it were supported on the backend

lofty comet
#

thoughts?

outer kettle
#

Looks nice

outer kettle
#

the horizontal line

#

idk what else to say here omegaroll

fathom girder
#

its because the docs tab is selected

#

(do you mean that horizontal line)?

lofty comet
#

r

outer kettle
#

oh my god

lofty comet
#

exactly my confusion

#

xd

outer kettle
#

do you people need glasses

#

LMAO

lofty comet
#

you mean the line separating stuff?

#

the divider?

outer kettle
#

the horizontal line that stretches the entire screenshot from left to right

#

yeah

lofty comet
#

what's up with it?

fathom girder
#

yeah

#

one is thinner than the other

outer kettle
#

It's not in your screenshots

lofty comet
#

well, intended

fathom girder
#

ah

#

ok

lofty comet
#

that is hella unneeded

#

there is a clear division already

outer kettle
#

yes and I asked if it doesn't look too floaty atm

lofty comet
#

ah

#

imo it doesn't....

#

IMO

#

kinda the trend anyways

#

the divisor is kinda old school type stuff

#

xD

fathom girder
#

yeah it looks fine

outer kettle
#

alright that's fine then

lofty comet
#

guess the only thing needing fixing is the version channel label and then MAYBE I get the "go ahead"?

outer kettle
#

As far as I'm concerned you can start already pray and that can be figured out pretty easily during/after

lofty comet
#

(if that makes sense)

outer kettle
#

just the version card needs to be figured out since it's pretty packed full for what will likely be less width

#

yeah makes sense, sorry it took so long

timid briar
#

how would it look like with velocity and waterfall as well

lofty comet
lofty comet
#

although regarding frontend framework, rn it is using vue if I am not mistaken, is the plan to continue with vue? if so, should it be updated or what?

#

I have limited experience with vue, but if it's just doing the UI I most likely would have no issues

lofty comet
#

I don't personally use it

#

but apparently this new professor wants us to use it

#

soooo

#

rip

#

worst case I will just remote ssh into my desktop at home xD

timid briar
lofty comet
lofty comet
#

(PS ignore the colors of the lab)

fathom girder
lofty comet
#

they teach unix and git

fathom girder
#

"wow thats bad" is kinda crazy

lofty comet
#

but they just tell us to install docker

#

and that's as much info as I know till now

timid briar
lofty comet
#

that sounds a nightmare UX wise

#

lol

timid briar
#

When clicking on send I realized how bad that would be

fathom girder
#

i dont think thats needed

timid briar
lofty comet
#

either way these things can be changed later

lofty comet
#

(we should totally not take the chance and rewrite it in svelte)

#

(this is totally not a biased opinion)

fathom girder
#

eh idk

#

this is generally a maintainability thing

#

i think @jovial lintel is in charge of hangar so he has a word in this.

outer kettle
#

I don't think there's plans to switch frameworks atm

#

mini loves rewrites though

lofty comet
#

that's fake news

#

he didn't want to rewrite the DB xD

lofty comet
fathom girder
#

i mean its going to be a complete rewrite no? So probably not a bad idea

#

not complete but significant

lofty comet
#

like 95% xD

outer kettle
#

I have no clue about vueuse 13, that might be a mini question

#

it's currently on a recent 12.x

lofty comet
#

I have no clue about Vue 13 in general, but I'd assume I can learn the basics and figure it out looking at existing code. Since I am only doing the frontend, it should be just fine

#

either way, guess I will have to wait for mini

outer kettle
#

looks like vue is already on latest

#

3.5.13

upbeat ibex
#

Vue is strange

outer kettle
#

ur strange

upbeat ibex
#

Fun but strange

upbeat ibex
lofty comet
#

I guess I shall set up hangar in local (I hope mini already made it less tedious to do this) in my laptop and start working on it

timid briar
#

I'd be in favor of rewriting the entire Internet to not be js centered

lofty comet
#

I'd be in favor of using html and css purely

#

but yk

#

not the best idea

#

lets do it in kotlin?!!!!

upbeat ibex
timid briar
#

Let's move to something more modern like go
And not add backwards compatibility but also force every browser to accept the new Standart while not supporting HTML and js anymore

lofty comet
#

write the backend in ktor

fathom girder
#

no?

lofty comet
#

and frontend with kotlinx html or smt

#

(I am being sarcastic)

fathom girder
#

this is not something to be sarcastic about

lofty comet
#

kotlin is cool

fathom girder
#

ktor xD

lofty comet
#

shush

fathom girder
#

bruh

lofty comet
#

tell me one thing that jetbrains made that sucks

fathom girder
lofty comet
#

true

fathom girder
#

dont want to make mods mad

lofty comet
#

anyways

lofty comet
#

I know mbax is watching us

#

he is the Paper police I swear

lofty comet
#

wonder if I can bring the setup from my desktop to the laptop without much issues

#

I hated setting up hangar on local

celest remnant
#

Is this cors configuration correct?

https://github.com/HangarMC/Hangar/blob/staging/backend/src/main/java/io/papermc/hangar/security/configs/SecurityConfig.java#L96

According to Spring's docs: https://docs.spring.io/spring-security/reference/servlet/integrations/cors.html

We need to provide a UrlBasedCorsConfigurationSource bean, but we're providing a CorsFilter bean. HttpSecurity#cors(AbstractHttpConfigurer::withDefaults) will use the UrlBasedCorsConfigurationSource if provided, otherwise deferring to Spring MVC's cors configuration.

I'm not sure if this cors configuration is actually being used.

I'm asking because I'm running into a cors error about a disallowed origin both from localhost and 127.0.0.1 while working on the papermc website Astro migration.

I can submit a PR to fix this, but let me know if I'm not correct about this.

celest remnant
#

I'm leaning more toward this being correct and the reason it hasn't surfaced sooner is that the calls to the API from the website are happening serverside during ISR or from non-browser applications.

jovial lintel
#

lol on staging there are 8.3k links with url null

#

in prod 59 projects are affected it seems

#
WITH rows_with_null_urls AS (
    SELECT
        created_at,
        name,
        id,
        links,
        (SELECT
             jsonb_agg(
                     jsonb_build_object(
                             'id', top_level_element->'id',
                             'type', top_level_element->'type',
                             'title', top_level_element->'title',
                             'links', (
                                 SELECT jsonb_agg(link)
                                 FROM jsonb_array_elements(top_level_element->'links') AS link
                                 WHERE link->>'url' IS NOT NULL
                             )
                     )
             )
         FROM
             jsonb_array_elements(links) AS top_level_element
        ) AS filtered_links
    FROM
        projects
    WHERE
        links @> '[{"links":[{"url":null}]}]'
)
UPDATE projects p
SET links = r.filtered_links
FROM rows_with_null_urls r
WHERE p.id = r.id;
#

in case I ever need to do that again

jovial lintel
jovial lintel
#

also, @lofty comet, do you have a figma or something I could look over, stuff seems really nice in general, so good enough to start for sure, but the screenshots above had a few things I would comment about but idk if its still up to date

#

and sorry I have been so absent

lofty comet
lofty comet
#

why can't frontend be standalone 😭

jovial lintel
#

it is

lofty comet
#

isn't that a bit harder to test since I can't have dummy data, etc.

fathom girder
#

i mean webstorm is just a striped down version of intelliJ

#

besides you should be able to just,,,,, open the frontend folder in webstorm

#

and the backend one in intelliJ

jovial lintel
#

oh you mean without starting the backend

#

npm run devStaging

#

then it uses the staging server as backend

#

here my nitpicks:

  • this should be aligned https://i.imgur.com/jAjDCEM.png and I think the release badge looks kinda odd there, maybe inline with the version name? like its not aligned to anything text wise, I think thats mostly tripping me
  • the version list in general is super condensed and can prolly use a bit more breathing room
  • on the home page keep the h1 and text, its important for seo, else google kinda considers the page empty
  • this part looks a bit weird, like the platform versions look strange alignment wise to the button, the button I think would make more sense at the end maybe? icons to text margin should be a bit bigger https://i.imgur.com/MGVAY7M.png
#

overall looks really nice

lofty comet
lofty comet
lofty comet
#

actually take that back

#

gotta install nuxt it appears

jovial lintel
#

pnpm i before of course and yes, frontend dir

lofty comet
#

yup doing it now

#

rip my hotspot xD

#

downloading way too many things

jovial lintel
#

lol

lofty comet
#

so since I am using backend from staging

#

how would I have access/test admin pages?

#

I assume I need an admin account in staging? xD

jovial lintel
#

meh

lofty comet
jovial lintel
#

we can worry about that later, get familiar with stuff first

lofty comet
#

only getting wifi installed in saarbrucken next week

lofty comet
#

setting up the backend is no fun

jovial lintel
#

its just two clicks, the run configs are commited

#

(also, all of this is documented in the readme)

lofty comet
#

last time I set it up, I had nightmares

#

either way, good thing I can just run it without the backend anyways

#

better for the limited ram I have to not have to run docker

#

xd

#

Wait, by using the staging backend, does that mean I can't login on local?

jovial lintel
jovial lintel
lofty comet
#

even with my staging credentials

#

ah wait

#

might know why

#

1s

jovial lintel
#

Guess it's the cors thing simple ran into? Idk

lofty comet
#

might be an error on my part

#

okay all good, it works

jovial lintel
#

@lofty comet I think we can do the project search a bit nicer. I am cooking something up that will give us stats about search facets

#

just something to keep in mind

#

it will also enable a license filter

lofty comet
lofty comet
#

I am kinda still trying to figure out how Vue works xD

#

and how the project is structured

#

it might be somewhat easier to just modify existing things than trying to rewrite everything....

#

cause rewriting everything in vue would be quite a hassle for me, since I only worked a tad bit with vue before

#

not at this level

jovial lintel
#

But I am just saying that we have those numbers now, like for hangar how many plugins in the chat category

jovial lintel
#

We have a few design components factored out, maybe that's a good place to start and potentially refactor more design stuff away from the logic

lofty comet
#

Also, any issues if I add poppins to the fonts?

#

I'd still maintain apple ones

#

like font-family: -apple-system, BlinkMacSystemFont, "Poppins", "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;

jovial lintel
#

Normally you sort your custom fonts first and then fall back to system fonts

lofty comet
jovial lintel
#

Most likely just a font stack I copied from somewhere

lofty comet
#

ah

#

xd

#

okay

lofty comet
#

ah shit platforms of projects are not provided currently

#

so that's something that would need to be added I guess

#

bunch of other stuff I can't test due to it being hidden for admins

#

was only able to update this today lmao this is gonna take way longer than I expected, I had no hate for vue but now I might do xD

#

Let me rewrite this in svelte 🥺

lofty comet
#

thoughts on this hover?

timid briar
#

Very sexy

mental fern
jovial lintel
#

Versions too

lofty comet
#

Oh okok

lofty comet
# fathom girder is it really that bad?

For me, yes, since I have only messed around with vue like once or twice for very simple things, hangar is much more complex so I need to get used to a whole new framework

#

I am way too used to the simplicity of svelte xd

jovial lintel
#

vue and svelte code look basically the same, no?

#

just that the templating syntax is inlined to the html tags, the rest is basically the same

lofty comet
#

Or maybe the code base is simply a mess xd

#

Still haven't understood how props work but oh welp

#

I have time to learn those

jovial lintel
#

let { adjective }: { adjective: string } = $props(); becomes const { adjective } = defineProps<{ adjective: string }>();

lofty comet
#

Hmm interesting

#

I guess we shall see how things go

jovial lintel
#

man, this meili refactor is getting bigger and bigger 😄

#

and I still have so many todos

#

but hopefully it will a) improve speed and b) improve quality of search

lofty comet
#

tiny touch

#

(gif compressed the gradiant)

lofty comet
#

doing the new filters is gonna be either exciting or a pain xD

jovial lintel
#

nice

lofty comet
#

how shall I fix this xD

#

tbf shouldn't there exist a filter to only accept "normal" letters?

#

yeah it all works perfectly fine IF these characters simply get blocked... is that a possibility @jovial lintel ?

#

so, only allowing ascii characters

jovial lintel
#

Yeah, open an issue pls

fathom girder
#

Ascii?

lofty comet
fathom girder
#

What about äöü?

lofty comet
#

although who would use those?

#

it's not a german website

jovial lintel
#

I am not gonna limit it to ascii

#

I want emojis to work for example

lofty comet
#

fair

jovial lintel
#

Idk if a white or black list is easier

lofty comet
#

might

#

I am still trying to figure out how these characters specifically break the UI

#

they seem to have weird spacing

#

which somewhat allows them to override limits of the ui lol

#

almost there lmao but yeah these characters break consistancy a lot

#

fixed it, but at what cost xD

#

didn't know project names could be so big tbf

#

lol

jovial lintel
#

Idk if they still can

lofty comet
#

hm ok

#

welp for the filters, I might have to use buttons and handle selection, etc. myself

#

instead of using radio buttons for ex.

#

(it's way easier to design them like this)

#

but I will probably do the design first and only wonder about functionality after

jovial lintel
#

We should stick to semantic html for accessibility reasons

lofty comet
#

achieving these types of filters with semantic is a bit harder

#

but I will do my best

#

actually could use "hidden peer" classes

#

maybe that works

jovial lintel
#

If you do appearance: none on radios you can do whatever, no?

#

Plus an :after for the tick maybe

#

Don't worry too much about utility classes if writing plain scss is easier

lofty comet
#

nha I do prefer using tailwind xD

#

(well, unocss)

lofty comet
#

actually, the inputradio component already disables the appearance xD

#

question now is, should platform be single choice or multi?

#

cause I am pretty sure multi choice isn't handled by the backend yet I assume

jovial lintel
#

Should be

lofty comet
jovial lintel
#

Backend should support filtering for multiple platforms

#

It's all automatic

lofty comet
jovial lintel
#

Ye, frontend just needs to add the query param twice

lofty comet
#

meanwhile wondering if this border is any good

#

it could make it look a bit less like modrinth

#

I actually have some other ideas in that sense

lofty comet
jovial lintel
#

ok so at least platform search works

#

platform version will be more fun

#

also, I think ill include the main page content in the search, so it can be better

#

man why is the hangar db design so dum

#

why do we have a project_home_pages that has project_id and page_id as FK

#

and not just a boolean in project_pages....

jovial lintel
lofty comet
jovial lintel
#

No worries, your branch needs to wait on mine anyways

lofty comet
#

true

jovial lintel
#

will be interesting to see the impact of that on the prod search

#

smol todo list for myself

  • do full updates as index switch
  • remove versions from index
  • get rid of version view
  • figure out date format issue
  • think about if we want to handle hidden projects/versions
  • project members in index (for user profile page)
  • automated testing
  • manual testing of migrations
  • deployment/config stuff
  • consider exposing facet stuff (later)
  • go over all todos in code
#

thhhaaat is more than I expected

#

the branch already touches 114 files :/

lofty comet
#

I won't even try to do a todo list lmao

#

Mine is just straight editing all ui files

#

xD

#

that reminds me I was editing stuff on the main branch of my fork

#

idk if that is a good idea

jovial lintel
#

Nope

#

Never PR from a main branch

lofty comet
#

yeah will fix it this weekend

#

forgot to put the stuff in my laptop

#

so, do not have the files in saarbrucken xD

#

Can I divert changes to the main branch to a new one?

#

(I havent commited yet)

jovial lintel
#

Sure, just git switch -c dum

lofty comet
#

okok

#

ty

lofty comet
#

why are writing commit messages so hard

#

lmao

#

tf do I write xD

#

swear gonna do a commit per page at this point

jovial lintel
#

💤

lofty comet
#

WAIT WHAT

#

that doesn't show for me

#

like wut

#

is my webstorm outdated

jovial lintel
#

its copilot if that wasnt obvious from the logo

lofty comet
#

turns out I had to update webstorm

#

xd

#

shall I already open a PR draft?

#

or not worth it?

jovial lintel
#

sure

lofty comet
#

with or without border?

outer kettle
#

I like with

jovial lintel
#

ye

lofty comet
#

gonna use with then

#

might make a more unique design due to it too

#

wouldn't follow the trend too much

jovial lintel
#

I find it helps with contrast

lofty comet
#

yeah

timid briar
jovial lintel
#

the project card has a 1px light grey border

timid briar
#

ohhh i see it now
i only looked at the color gradient

#

i must say i like it better without the border

lofty comet
#

I like both personally

timid briar
#

yeah its not bad

lofty comet
#

on another note, somehow, whenever I decide I will work on hangar, something comes up and I end up changing only a color lol

#

redesign gonna be ready in 2029

timid briar
lofty comet
#

Although coming to luxembourg every weekend

#

It's 1h with the bus

#

It's a very weord coincidence

jovial lintel
#

ayyy only 3 test failures on the backend tests now that I added a meili test container

#

that is less than on staging branch, lmao

#

there 6 (different) ones fails

#

the 3 on the meili branch are ok too, one is just ordering and the two others are related to hidden stuff which is the last todo

uneven vergeBOT
#

(6802b7591df977252a68f763) // @winged tinsel (@ruba_34539 / 1158066518911889438) has been banned by @jovial lintel (134340832093405184)
Reason: steam scam

jovial lintel
#

I thiiink I am feature complete

#

at least for what I wanted to do initially

#

faceted search can come later

#

guess ill look over the migrations one last time and then deploy to staging and see how it goes

#

haha lets ask copilot

lofty comet
#

lmao

jovial lintel
#

lets see how bad it breaks

jovial lintel
#

will investigate more closely in a bit

#

ok its just the path matching that broke

#

also, didnt know this was a thing, lol

celest remnant
#

Lmk if you need me to fix the PR

#

Currently out

jovial lintel
#

java.lang.IllegalArgumentException: When allowPrivateNetwork is true, allowedOrigins cannot contain the special value "*" as it is not recommended from a security perspective. To allow private network access to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.

#

oh come on spring

#

guess we will ignore private network

jovial lintel
celest remnant
#

Meaning it won’t allow localhost?

jovial lintel
#

ye

#

well, no, other way around

#

prod website cant access localhost hangar

#

localhost website can access prod hangar (once deployed, idk if that will be today, need to do a bunch of testing on the new meili stuff that just landed on staging)

celest remnant
#

My usecase was localhost website accessing localhost hangar api

#

Wait jk localhost website accessing prod hangar ignore me

#

Brain slushy rn

jovial lintel
#

localhost:3000 accessing localhost:8080 will most likely be fine too

celest remnant
#

Yea

jovial lintel
#

ye

celest remnant
#

Perfect

jovial lintel
#

now if only staging would actually deploy

#

fucking helm being lazy

#

Message: Helm upgrade failed for release hangar-staging/hangar with chart hangar@0.0.1+9e621ba2d2f1: template: hangar/templates/secret-hangar-backend.yaml:104:24: executing "hangar/templates/secret-hangar-backend.yaml" at <.Values.backend.config.meiliSearch.url>: nil pointer evaluating interface {}.url

#

ahhh

#

there we go

#

ok cool I broke flyway

#

for referenece, delete mentions of 05 stats und 06 from schema history

#

wat

#

why

timid briar
lofty comet
#

lmao

jovial lintel
#

Just go things

#

Idk why the "cloud" world decided Google's toy language is what we all should use

jovial lintel
#

I guess I need a sidecar to move it out?

#

I think thats what we do at work

jovial lintel
#

cool so that oom is sentry's fault

#

fuck the search on the homepage is fast tho

celest remnant
lofty comet
jovial lintel
#

Yes

lofty comet
#

Holy fast search xd

#

Do results in the homepage already include platforms and versioning?

#

And whatever other info I need?

jovial lintel
#

Should, ye

#

Look at the console

#

Kinda sad that I can't see the improvements in the field data since something that I did makes sentry oom, lol

flat cape
jovial lintel
#

Who could have known that a proper search engine is better than my cursed postgres queries

#

Will see later if I can find time to migrate prod

#

Altho loosing sentry sucks

#

I did somehow manage to replicate the memory leak locally but IJ refused to take a heap dump

jovial lintel
#

Yeah, normally you only show a loader after X ms

#

But all the data fetching is so cursed rn anyways

#

I think I wanna migrate it to a library instead of the shit I created

#

Something like Pina colada or something, haven't thought too much about it

lofty comet
#

best would be to keep elements already shown and add the "new" ones and animate that

#

so the list feels smooth

#

no idea how I'd do that in vue

#

I am already suffering enough with the redesign

lofty comet
#

I was gonna work on hangar today.... but... got assignments to do 😭

jovial lintel
#

ok, time to burn down prod

#

one last time a check on the migrations

timid briar
#

Let's try to Fix pnpm
Yeah nvm fuck it instead
Average pnpm experience

jovial lintel
timid briar
#

Should have just reinvented the wheel and made yet another package manager

jovial lintel
#

lets see

#

{"timestamp":"2025-04-23T06:49:40.023Z","level":"INFO","thread":"main","logger":"org.flywaydb.core.internal.command.DbMigrate","message":"Successfully applied 8 migrations to schema "hangar", now at version v1.19.1 (execution time 01:20.254s)","context":"default"}

#

ayy

#

it seemed to have worked?

#

meili is in prod \o/

#

and its fast

lofty comet
#

Big W

jovial lintel
#

man, whenever I do a big master rebase, I forget to checkout staging again

outer kettle
#

That's why I have a separate project just for that lol

jovial lintel
#

maybe I should build a github action for updating master

outer kettle
jovial lintel
#

Oh shit

outer kettle
#

are you available to fix it? because idk

#

download buttons are hard broken because of that

jovial lintel
#

No, I am super tired

#

Could do tomorrow morning before work

outer kettle
#

fixed, will push to master shortly

outer kettle
#

creating projects also doesn't actually let you open the new page without errors until something happens/is updated, same for versions I think

jovial lintel
#

Ah right I have an idea for that

#

Fwiw that platform param should have been an @EnumByOrdinal annotation

outer kettle
#

Yeah I’m too washed to remember what it was PepeLa

lofty comet
#

Me when I get home: Gotta merge these changes before I do anything

jovial lintel
#

quite frankly, all the materialized views suck, its ok for stats because that doesn't need to be up to date, but other stuff shouldn't use one, else we just end up refreshing it all the time, causing more load than needed

#

but that method is a fucking mess anyways, maybe it can be my weekend project

#

I did magic recursive json wizardry in postgres queries at work today, how much worse can a query for getHangarProject possibly be

lofty comet
#

OKAY

#

Today, me gonna work a bit on hangar

#

I hope

#

Otherwise tomorrow? Maybe..

#

I became a german way too fast

jovial lintel
#

Lol

jovial lintel
#

@lofty comet fyi, I am going thru issues and whatever will hopefully/most likely be fixed by the new frontend I link to your PR, so we have a nice check list of stuff to check

lofty comet
lofty comet
jovial lintel
#

well, "promote", more like convenience

#

as an example, github does this

#

I guess we could have it in the project side bar or something

#

maybe a badges tab in settings?

lofty comet
#

yeah

#

a way to "generate" badges easily would be nice

#

was gonna say resource banners

#

and supports Hangar

#

(think it even uses my api wrapper lol, which I wonder if it still works)

hasty pecan
#

then people can include that on other platforms and "promote" with that

lofty comet
#

yeah I understood the concept

#

just not sure how effective it will be

jovial lintel
#

soon coming to a hangar near you

jovial lintel
#

nothing to see here

#

please carry on

outer kettle
jovial lintel
#

Is that wrong?

outer kettle
#

Well there is no invite

jovial lintel
#

Huh

#

I'll take a look later why that query returns 1 for you

fathom girder
#

I think he is lying

timid briar
#

did hangar just reach exactly 1000 projects?

lofty comet
lofty comet
jovial lintel
#

They have url params ye

#

Well just look at the urls I posted, lol

jovial lintel
timid briar
#

ahh

jovial lintel
#

time to fix the query

#

meh, can't concentrate, will have to wait

#

do we want this?

lofty comet
lofty comet
jovial lintel
#

@split ravine u ok with hangar integrating mcbanners like this?

lofty comet
lofty comet
#

Even cooler integration (would have to be in partnership with glare) was if we had custom designs that fit the new design xD

split ravine
#

Yeah I don't have a problem with it.

jovial lintel
#

Meh, didn't want to duplicate stuff and it's exposed enough on the project page now so that people can find it

jovial lintel
split ravine
#

That might mean I have to give it some TLC at some point kekwiggle

jovial lintel
#

Is it being used much?

split ravine
#

I can you get an answer to that in a little bit.

#

But I think it was a few 100K requests a day

jovial lintel
#

Ah nice, not bad

lofty comet
#

Eh I guess, personally just a bit weird to have personal stuff (author) in your project. Also UX wise it sucks a bit since imagine you want a banner for each of your projects, you have to go to your project, go the settings, go to banners and copy, then repeat all those steps again for each project you want to do that, while if it were centralized, it could be done using a dropdown (switching project banners)

But that's just my opinion

jovial lintel
#

I am thinking about to send some hangar dev log thingy in #dev-announcements calling out banners and maybe the new search, would be interesting to see if that does anything to your stats, lol

lofty comet
#

would be funny to see, although I assume it won't crash

#

I hope lol

jovial lintel
#

Dw hangar will be hugged to death before any other service plus I wouldn't ping

lofty comet
#

ah then yeah, I guess why not

split ravine
#

The current stack for the project is an overengineered Spring Boot project. Ideally it'd be nice to just migrate it all over to TypeScript and shove it in CF Workers or something, but I think image generation in workers is a little rough last time I checked (a year or so ago). Or at least just transform it over to TypeScript and use that as a hosted stack vs all the overhead from Spring Boot.

#

Trying to login to CF to see stats but it's not sending me the login email 🙃

lofty comet
#

relatable

lofty comet
split ravine
#

It might if putting a CF cache in front of it doesn't stop it from incrementing the daily free requests.

#

Nah I could probably stay within the free tier. That original number I said was weekly, not daily 🙂

lofty comet
#

ah then yeah

#

probably

#

unless it gets traction with it being in hangar

#

on another random note, still haven't worked on hangar today 😭 been stuck on printing a 4x4 board of the 2048 game in assembly

#

gotta hate asm

grand goblet
split ravine
#

Rip

grand goblet
#

I wanted the same behaviour for something else I made

split ravine
#

Ahh

jovial lintel
lofty comet
#

if ya wanna blame someone for me not working on the redesign, blame this:

#

(god I hate assembly)

lofty comet
#

unsure if it's a bug or not

jovial lintel
lofty comet
#

ah

#

should probably visually put a limit on it then

lofty comet
#

idk how I feel about the borders with this hover effect

#

selection is totally not fked (only paper is supposed to be selected)

#

god I hate vue xD

lofty comet
#

I actually hate it xD, can't make this work

#

But oh welp

#

Time to go watch thunderbolts

#

I am about to rewrite the whole thing in svelte at this point kekw

noble fog
lofty comet
#

No but no cap, I might consider it...

#

Might try to port over the homepage and see how it goes

jovial lintel
#

Please don't

#

Idk why you are having such issues with Vue, it's basically the same as svelte, no?

jovial lintel
#

welp, looks like I am reviving the health report page

jovial lintel
#

good enough

lofty comet
#

maybe I am simply just too used to the ease of use of svelte

#

or simply it's the project structure

#

idk, I shall try to make it work

lofty comet
#

What exactly are stale projects?

#

lol

jovial lintel
#

not updated in a while I think

#

its old as code

jovial lintel
#

but it would look basically exactly the same in svelte

jovial lintel
#

cool so something in the frontend is deadlocking the hangar backend on staging

#

if I shut down the frontend, it quickly recovers

#

Deadlock status
No deadlock

#

smh

lofty comet
jovial lintel
#

well, if you need any pointers, lemme know

lofty comet
#

right now I am trying to figure out why when I select/toggle a radio, all of the buttons appear selected xD

#

must have fked up somewhere

jovial lintel
#

if you want, push your progress and I can take a look

lofty comet
#

hmm

#

seems like internalVal is shared across all inputs?

#

I am using it to check if it was selected or not

#

but guess that's the wrong way

#

was just doing this:

<label class="relative cursor-pointer flex items-center  peer-checked:bg-blue-600 select-none w-full  rounded-full py-1.5 border border-gray-800 transition-all duration-75"
         :class="{
      'bg-primary-500': internalVal,  // Selected state
      'border-transparent hover:bg-[rgba(255,255,255,0.05)] hover:scale-[1.0175]': !internalVal  // Default state
     }">
    <input
      v-model="internalVal"
      type="radio"
      class="peer appearance-none"
      v-bind="$attrs"
      @blur="v.$touch()"
    />

    <slot />
    <template v-if="props.label">{{ props.label }}</template>
</label>
#

but it appears that the val is shared across all inputradios

#

so when I select it, every button "gets selected" (visually)

jovial lintel
#

those radios work on a group

#

as in, internalValue will be shared, yes

#

and its selected if value = internalValue

#

but I don't think value is a prop rn

lofty comet
jovial lintel
#

but you shouldn't need javascript to detect if a radio is checked, unocss has a "checked" prefix for that

#

i.e. the old thing had "!checked:bg-primary-500"

lofty comet
#

let me try again

jovial lintel
#

or is that something I wrote

lofty comet
#

what?

jovial lintel
#

nah its a uno feature

lofty comet
#

it is yeah

#

but I remember trying that, but will try it again IG

jovial lintel
#

well, it works in prod, lol

lofty comet
#

maybe that's the issue lol

jovial lintel
#

that doesn't seem to be a thing

lofty comet
#

uno says it is lmao

#

uhm is backend of staging down?

lofty comet
#

ah cool

#

sooo

jovial lintel
lofty comet
#

kinda can't test it rn cause I am using staging xD

jovial lintel
#

backend is back

#

that selector only works for direct peers

#

~

#

but we use an li>label>input structure

lofty comet
#

ah

#

either way checked does not seem to do anything

#

both if I put it in input or label

jovial lintel
#

need to be on the input

#

so basically you are not fighting vue but the dum css util framework

#

which I also often do

lofty comet
#

xD

jovial lintel
#

thats why we dropped it at work and only use normal (s)css

#

soooooo much easier

lofty comet
#

yeah I was doing everything on label

jovial lintel
#

checked uses the :checked pseudo element on input

lofty comet
#

ah but I know why I did it, cause I set appearance to none

#

since I wanna have a fully custom radio button

#

not that round thingy at the start

#

and since I remove all appearance, I can't use the "typical" methods

jovial lintel
#

label > input:checked { background: red; }

#

css is so nice

lofty comet
#

xd

#

progress I guess

#

okay

#

I did some hacky stuff

#

but hey, it works

#

now the question is... with or without borders

#

idk how I feel about it

jovial lintel
#

well, the idea should be that since you touch basically all the frontend, it should be less hacky ^^

lofty comet
#
<template>
  <label class="relative cursor-pointer flex items-center w-full">
    <input
      v-model="internalVal"
      type="radio"
      class="peer appearance-none"
      v-bind="$attrs"
      @blur="v.$touch()"
    />

    <div
    class="flex items-center rounded-full border w-full border-transparent py-1.5 transition-all duration-75
             peer-checked:bg-blue-600"
    >
      <slot />
      <span v-if="props.label" class="ml-1">{{ props.label }}</span>
    </div>
  </label>
</template>
#

the div is essentially handling it all

#

and I still use peer

#

problem was I was using peer on the parent aka label

#

like this, it works like a charm

#

xD

jovial lintel
#

ye that looks fine

lofty comet
jovial lintel
#

wait but a div inside a label is illegal, no?

lofty comet
jovial lintel
#

ye, no block elements, only phrasing content

#

its not allowed by html spec and will break in fun ways in ssr

#

use a span

#

doesn't IJ yell at you?

lofty comet
#

interesting

lofty comet
jovial lintel
#

just checked, it properly yells for me

lofty comet
#

idk how I feel about it

lofty comet
#

now where th do I find that list

jovial lintel
#

inspection settings

lofty comet
#

okay it now properly yells at me

#

W

lofty comet
jovial lintel
#

kinda hard to say without bigger context

lofty comet
#

sec

jovial lintel
#

I like both

#

but I am not much of a help

lofty comet
#

I personally liked the borders more before, but now with the platform buttons, idk if it fits having borders around but inside no borders at all

#

I require more input

#

I will work on the platform tags in the project card now

#

gotta find out how to get them first though

#

but yeah

jovial lintel
#

they should be right in the project object

#

supportedplatforms or something

lofty comet
#

ok

#

uh actually still need to merge your PR to my branch I think

#

will do in a few

jovial lintel
#

just rebase on staging

lofty comet
#

I think I fked up something

#

I did rebase it

#

but Webstorm thinks I still have old files?

#

although it says I am up to date

lofty comet
#

okay just rebased it, and I assume this is due to changes in the backend?

#

seems to be some type mismatch?

#

Hmm what's the difference between normalized and normalizedLoaderType?

lofty comet
#

well actually

#

I lost all the progress?

#

ah wait I am stupid

#

forgot to switch to my branch lmao

#

Mini, do you wanna keep platforms single choice or multi? Aka can choose more than one platform to filter

#

if done with multi, then we can actually not use radio buttons which means people can unselect things

#

Also, it seems like supportedPlatforms is accessible in Project but not ProjectCompact and because of that I can't access it

#

since the project list uses ProjectCompact

#

uh wait, it does work, IDE just doesn't recognize it (fixed, added it to ProjectCompact)

#

Got project tags working, I am not sure if I leave them like this or if I should assign a color to each platform? If someone has any recommendations for those, let me know (colors)

lofty comet
#

Updated: Added some colors, no idea which color I'd use for waterfall

timid briar
#

available in prod when?

lofty comet
#

MAYBE 2028

#

German bureaucracy be like

timid briar
#

isnt that too soon?

timid briar
lofty comet
timid briar
#

thats alright
offtopic anyway

lofty comet
#

how it's looking atm

#

I'd assume/bet I am gonna lose most of the time fixing compatibility with mobile... and reinventing the version thingy

#

plus nothing I am doing includes "staff" stuff since I am using the staging backend, and I do not have staff perms there, so I don't see staff tools, that's something I will have to deal with after

timid briar
#

small suggestion
make the

above the platforms as long as the max width of the entire side thingy
like if the platforms are the longest use the width of the platforms
if the upload date is the longest use that

#

or that weird?

lofty comet
#

you wanna make my life hell or smt?

#

xD

timid briar
#

want to?
not necessarily
more like NEED to

#

just kidding xD

lofty comet
#

I actually just noticed that the divisor is almost invisible

timid briar
#

yeah

lofty comet
#

feel like making it fat doesn't make it better

#

eh actually...

timid briar
#

it does
i like it

lofty comet
#

now... do I wanna implement a way to see platform versions supported on hover?

timid briar
#

on hover?

lofty comet
#

yeah

#

hovering the platform tags would show the supported versions

#

for the respective platform

timid briar
#

i would only show the version range

lofty comet
#

it's a given information, so no extra work on that s ide

lofty comet
#
{
  "PAPER": [
    "1.10",
    "1.10.1",
    "1.10.2",
    "1.11",
    "1.11.1",
    "1.11.2",
    .
    .
    .
    "1.9.4"
  ],
  "WATERFALL": [
    "1.20"
  ],
  "VELOCITY": [
    "3.2"
  ]
}
timid briar
#

owwww

#

i feel your pain

lofty comet
#

so, I'd need to make a function that can transform that big list, in a range

#

while adapting to "gaps" like 1.8-1.9, 1.19-1.21

timid briar
#

or just 1.8 ... 1.21.5

lofty comet
#

that would be misleading

#

as anything between 1.9 to 1.19 for ex. would not be supported

timid briar
#

or only show the most recent version(s) like tops 3

lofty comet
#

that could still be misleading

timid briar
#

1.19 - 1.21

lofty comet
#

I'd argue either you show everything or nothing

#

you don't wanna show bad info

timid briar
#

dont bother about ux
let someone else figure that out later

#

unless that would be you
in that case too bad

#

what about just using the same text as in the first pinned version?

lofty comet
#

side to side comparaison xD

timid briar
#

and put a "and more" behind it if there are others

timid briar
lofty comet
#

although my concern looking at it is the fact project cards seem to be a decent chunk bigger

timid briar
#

altho i must say the versions table is awful in general

lofty comet
#

yeah, I will fully redo it lol

timid briar
lofty comet
lofty comet
timid briar
#

little bit inconsistent with the border or what that is there
the tags have a line above but everything else doesnt

timid briar
lofty comet
#

feel like with a 90% zoom feels way better

timid briar
#

"show all versions"
as in 1.21.4, 1.21.3, 1.21.2...?

lofty comet
#

yes

raven kayak
#

i don't really like that (clear)

lofty comet
#

otherwise would show only major versions

lofty comet
#

will remove it

raven kayak
#

especially as it's only on the platform side

timid briar
#

i think the border radius is a little bit too extreme
i feel like a value in between the current and yours would be nice

lofty comet
#

because that clear atm is the only thing enabling me to deselect the filter

#

hence why I left it for now

timid briar
#

why not make it a combo box or what they are called

raven kayak
#

is it currently single or multiple

timid briar
#

single i think

#

yes single

lofty comet
lofty comet
#

it uses radio buttons

#

and I need to know if it even supports multi xD

raven kayak
#

the clear kinda makes it seem like it's multiple

lofty comet
#

yeah it's weird

#

complain to whoever did the current UI

#

xD

timid briar
#

is there a change 😄 ?

raven kayak
#

the velocity color is too color-y (too aqua/blue)

lofty comet
timid briar
#

why even have a color for that
i think no color at all and only the text would be a good fit too

raven kayak
#

can you make all the platforms in that list have the same color as waterfall?

#

and send a screenshot of it?

lofty comet
#

1s

raven kayak
#

I think I like that more

timid briar
#

ohh yeah thats good

#

and without bg ?

lofty comet
#

yeah I also like it more, but my concern is the lack of color

#

it might become way too "mono"

raven kayak
#

Too much color also isn't a good thing

lofty comet
#

yeah

timid briar
#

i think too much color isnt good either

lofty comet
#

might add some shadow or smt, on hover it looks a bit weird

#

eh actually it looks okay

timid briar
#

is the hover gradient based on the cursor pos or always rtl

lofty comet
#

always there

timid briar
#

okay

lofty comet
raven kayak
#

..yes

timid briar
#

no just wanted to know
i like it that way

lofty comet
#

so yeah, gonna make the filter for platform collapsible

#

and then uh, idk

#

depends on if mini answers about the multi choice thing or not

#

WOULD be cool if the project list was finished today

#

well, if we ignore mobile 💀

#

mobile will have a totally different layout

timid briar
#

just do it like gmail
not at all

#

gmail on mobile in web looks straight up like pure html from 1980

lofty comet
#

how much % are mobile users

timid briar
#

pokes rng
0.298374%

lofty comet
#

pretty sure umami tracks that

timid briar
#

it does

lofty comet
#

another thing to ask mini whenever he is online

timid briar
#

i would really like to contribute a bit to hangar but i dont want to touch the backend
i really dont want my name associated with that in any way 😄
and i suck at frontend

lofty comet
#

yeah I am using staging's backend specially cause I don't wanna setup the backend locally

#

lol

timid briar
#

also i dont want to break stuff soooooo...
yeah

lofty comet
lofty comet
#

Vue isn't as bad as I thought now that I got a bit ahold of it...

#

ChatGPT also helped tbf explaining some concepts of vue

#

but in general, it is a bit easier on the eyes to code now...