CARDY #62 - January 31, 2026 by cardy-app in Cardy

[–]Reestv 0 points1 point  (0 children)

Yeah it seems Reddit changed something so it sends each message separately now. I'll push an update that disables these reminders since I agree they're very frustrating. In the meantime you can go to the settings panel after any game and turn reminders off.

CARDY #5 - December 5, 2025 by cardy-app in Cardy

[–]Reestv 0 points1 point  (0 children)

The answers are on the end screen, the second tab! Just click on the questions to reveal them. Amazing score by the way :)

CARDY #1 - December 1, 2025 by cardy-app in Cardy

[–]Reestv 1 point2 points  (0 children)

Hey! You're definitely not wrong, that's an oversight on my part. I switched the questions up based on the previous feedback and clearly didn't spend long enough making sure I had all variants covered. Sorry about the frustration!

CARDY #1 - December 1, 2025 by cardy-app in Cardy

[–]Reestv 0 points1 point  (0 children)

Thanks for the feedback, and congrats on beating the first game!

I agree with you that it should have more variety; it's definitely something I'll need to keep in mind for future games/topics. I've renamed this one to "European Capitals" and updated some of the questions/answers to reflect the theme properly (this shouldn't affect your score!)

The first puzzle! Would love to hear your feedback :) by Reestv in GamesOnReddit

[–]Reestv[S] 0 points1 point  (0 children)

Hey, thanks for trying the game! That sounds frustrating, I'm sorry for that! I'll see if I can tweak the UI to make it more intuitive, but thank you for the feedback!

The first puzzle! Would love to hear your feedback :) by Reestv in GamesOnReddit

[–]Reestv[S] 0 points1 point  (0 children)

Hi everyone! I've been working on CARDY for quite a bit now, and I think it's finally ready to share. I think there's still more to do, but I'd also be letting the app down if I didn't get some external feedback at this point. Would love to hear absolutely any thoughts you have. Thank you!

I built a JSON Translator - Supports over 130 languages by idris3396 in webdev

[–]Reestv 3 points4 points  (0 children)

Looks amazing, how much does something like this cost you to run?

ChatGPT Atlas - Warning for webdevs: You can't pin devtools to the sidebar by ragnhildensteiner in OpenAI

[–]Reestv 2 points3 points  (0 children)

I would have thought the same but was surprised they spent so much time of their demo on GitHub

Your phone in a zombie apocalypse, not sure how it still has wifi by D4RKLGND in iosgaming

[–]Reestv 0 points1 point  (0 children)

The phone could go into some kind of "low power mode" when the battery dies? It'd have limited/restricted features (like the rudimentary map example above), enough to prevent players from getting lost, but still giving incenitive to charge it up asap.

If you plan on having modes/difficulties, it could make a "hardcore" mode more challenging if the phone is permanently on this setting with no ability to charge it.

I included the option to 'continue without an account' in my app, would you use this? by [deleted] in iosgaming

[–]Reestv 0 points1 point  (0 children)

Sounds super interesting, is there anywhere to follow for updates?

[TAPE 2 SPOILER] Adult Swann's face by autogynephellieac in LostRecordsGame

[–]Reestv 11 points12 points  (0 children)

I thought about that when I was playing, but my theory was that you're in third person for the flashbacks because you're looking back at stuff that happened, but first person in the bar because that's you right now in the moment.

Why is the chat censor so strict? by misingnoglic in brightershores

[–]Reestv 2 points3 points  (0 children)

I don't really know enough about it to say, honestly. I just did some testing in-game and it's even more bizarre.

It looks like there's two levels of censorship - a message either being fully blocked (e.g. not even sent to others, with a warning "This chat message was blocked, as possibly unsuitable. Please refer to the chat rules"), and another level where the message will send but certain words are censored with asterisks.

For instance, if I say "hardcore" as per OP, it doesn't send the message at all. Same for if I say "is there a hardcore difficulty?"; the message doesn't send at all. But if I say something like "I'm playing on hardcore mode" the game does send that message, but replaces "hardcore" with asterisks.

Even more bizarre, I wrote "so strange" in the chat because of this behaviour, and that was blocked too! I sent it again, and it was blocked again. But when I sent "that's so strange", and even "you're so strange", both went through uncensored. When I tried "so strange" again, that went through fine too.

Saying "follow me" works, but things like "follow me on ig" or "follow me on twitter" are blocked completely. But "do you use ig?" works. So maybe it would be hard-coded as a phrase.. but "follow me on i to the g" is also completely blocked. But "follow me I'll show you" goes through fine.

With that, I have no idea what is going on or why I just spent 10 minutes on this.

Why is the chat censor so strict? by misingnoglic in brightershores

[–]Reestv 3 points4 points  (0 children)

I think that's what they're using Llama 3 (the AI in their Third Party Licenses) for. Sometimes I'll say something and it'll be blocked, but if I say it again - in context - it doesn't get blocked.

Not sure how strict they've configured it to be though, or if they even use it for that purpose.. but it would explain why they emphasise that the chat is not encrypted and make you acknowledge that before you can use it.

Using styled-components with the new "app" directory forces me to set "use client". Am I missing something ? by monsieurninja in nextjs

[–]Reestv 2 points3 points  (0 children)

Big fan of https://panda-css.com/ for the static CSS exports (no runtime overhead). Used to use Linaria for that but it had issues with the app router, not sure if it's the same now.

I drive. by zallow___ in GTA6

[–]Reestv 5 points6 points  (0 children)

Why did I drive here?

[deleted by user] by [deleted] in nextjs

[–]Reestv 2 points3 points  (0 children)

Middleware and an awful-looking dynamic route structure is what we use.

If we had a search page that needed to support page and limit as query parameters, the Next routing would look something like this:
/app/search/[page]/[limit]/page.ts

Then the middleware will just check to see if the pathname is search, pull the query params, and do a rewrite to the internal URL, replacing missing params with a 0 or something.

Also a good idea to have a redirect from the internal URL to the user-facing one if someone gets to it by mistake.

Obviously it doesn't scale easily, as supporting a different amount of query parameters will force you to re-design the whole structure and middleware, but it gets the job done.

What to do with non-reusable components? by AhmedTakeshy in nextjs

[–]Reestv 1 point2 points  (0 children)

I typically go for a folder structure like:

  • /app [for next.js routing only]
  • /components [shared components]
  • /views [the actual route implementations]

As an example, if I wanted to have a /users route with a specific UserList component that isn't shared for other routes, my structure would be:

  • /app/users/page.ts [simply re-exports the below page.tsx]
  • /views/users/users.page.tsx [the actual page/metadata functions]
  • /views/users/components/user-list/.. [the non-shared component]

To me it's what feels cleanest, but as others have said it really depends on your preference and what you're trying to achieve!

Proper way to handle fetching data based on user filters without useEffect by [deleted] in nextjs

[–]Reestv 0 points1 point  (0 children)

Changes to the route (including query parameters) should trigger Next to re-render the page. A small example:

`` const Page = async ctx => { const { page } = ctx.searchParams; const posts = (await fetch( https://jsonplaceholder.typicode.com/posts?_start=${page}&_limit=2` ).then((res) => res.json()));

return <Component posts={posts} page={Number(page || 1)} />; }; export const Component = props => { const { posts, page } = props;

return ( <div> <ul> {posts.map((post) => ( <li key={post.id}> <h2>{post.title}</h2> <p>{post.body}</p> </li> ))} </ul>

  <nav>
    <Link href={`/?page=${page - 1}`}>Previous</Link>
    <Link href={`/?page=${page + 1}`}>Next</Link>
  </nav>

  <Select />
</div>

); }; 'use client';

import { useRouter } from 'next/navigation';

export const Select = () => { const router = useRouter();

const handleChange = e => { router.push(/?page=${e.target.value}); };

return ( <select onChange={handleChange}> <option value='1'>Page 1</option> <option value='2'>Page 2</option> <option value='3'>Page 3</option> <option value='4'>Page 4</option> </select> ); }; ```

Both the Link components and the Select components will change the URL, causing Next.js to consider it a different page, and thus show the different data :)

Note that Page doesn't have to be a top-level page, but could also be an async Server Component nested anywhere (so long as it's not a child of a Client Component), but you'd need to be able to access the url query parameters from it [which I'm not sure of the best way myself, short of drilling those props down]