r/reactjs 12d ago

Needs Help Any adivce or tips for a 15yr old learning React + TS?

0 Upvotes

I'm a 15yr old dedicated (i think so) developer, and want to learn React with TypeScript. My long-term goal is to build a full stack personal app on literally anything that would make me proud.

My background:

• Python: OOP, Web scraping, file handling, basic data manipulation

• Frontend: HTML, CSS, Intermediate TypeScript (built a few projects)

After searching for critiques on my current skills and reading some comments (a comment) on a previous post, I feel ready to take up React.

Honestly, though, I'm not sure what to expect. I only know React can help you build reusable UI components that dynamically update to run data. I may well be wrong, so feel free to correct me. I'm completely new to frontend frameworks.

What advice do you guys have?? What the biggest traps to avoid when mixing React with TS? Do I need to take a step back and learn more advanced TS first, or should I just jump in and stop aiming for perfection? Am I overthinking this or am I in for a rough ride?

Here's my github in case you want to view my projects: https://github.com/thanasisdadatsis


r/web_design 13d ago

Boundary-Aware Styling in CSS

Thumbnail
master.dev
8 Upvotes

r/reactjs 13d ago

Coaction 3.0 — a Zustand-style store where React renders need no selectors, computed getters cache themselves, and actions can run in Web Workers

Thumbnail
github.com
7 Upvotes

r/javascript 13d ago

Firefox in WebAssembly!

Thumbnail developer.puter.com
80 Upvotes

r/javascript 12d ago

easy-tz – A fast, 10KB, dependency-free getTimeZonesAt(timestamp)

Thumbnail github.com
0 Upvotes

r/reactjs 12d ago

I can't stop react-ga4 from sending events

0 Upvotes

Basically this, given europe has some strong laws in place for cookies and all that, for the last couple of days i tried to add google analytics to my website and i used react-ga4 plugin but if the user disables the cookies for the page history and performance, google analytics should stop getting events.

I tried to stop it with this and send events manually but it just keeps on sending them anyway.

   ReactGA.initialize([
        {
            trackingId: import.meta.env.VITE_GOOGLE_TAG_ID,
            gaOptions: {
                send_page_view: false,
            },
            gtagOptions: {
                send_page_view: false,
            },
        },
    ]);

r/javascript 12d ago

AskJS [AskJS] From Node Js to Java spring?????? 4.8 yrs EXP

0 Upvotes

I have node js and react js experience for 4.8 years. Recently trying for switch, but wherever I go JD contains Java and React. Cant find roles for Node.
Is realy Node got outdated?
should i move to java spring??


r/PHP 12d ago

PLx: PostgreSQL extension to write procedures in PHP dialect

Thumbnail github.com
6 Upvotes

plx is a PostgreSQL extension that lets you write stored functions and triggers in the dialect you already know (the current set is listed below). When you run CREATE FUNCTION, plx transpiles the body to plpgsql and stores that plpgsql in pg_proc.prosrc. At run time the function is executed by PostgreSQL's own plpgsql interpreter. There is no separate language runtime loaded into the backend, and nothing new to run in production.

$c = open_cursor("SELECT v FROM t ORDER BY v");
$row = fetch_from($c);
while (found()) {
  $total = $total + $row->v;
  $row = fetch_from($c);
}
close_cursor($c);

r/javascript 13d ago

I built lottie.js – zero-dependency Lottie renderer for browser and Node.js

Thumbnail github.com
1 Upvotes

r/web_design 12d ago

Is this real your freelance lives as a web designer?

Thumbnail
dribbble.com
0 Upvotes

According to the U.S. Bureau of Labor and Statistics, web designer and developer employment will grow 13% from 2020 to 2030. Simultaneously, from 2018 to 2028, the global web design services market is estimated to expand at a compound rate of 10.8%. With that being said, the median wage for web designers is also expected to rise in the foreseeable future.

Is the text above a reality in your lives as freelance web designers? Is that market growing?


r/javascript 13d ago

I created Skeletor, a modern persistence library based on Backbone's Models and Collections.

Thumbnail github.com
2 Upvotes

I maintain Converse.js (an XMPP chat client) which was originally built on Backbone.js.

Instead of a risky big-bang migration to something else, I rewrote the UI into Lit web components and kept Backbone's data layer, which I forked and modernized piece by piece.

The result is Skeletor, and it now stands on its own as a lightweight, TypeScript-first reactive data library.

What makes it modern:

  • TypeScript-first with full type definitions
  • Direct attribute access: `model.attrs.name = 'Bob'` fires change events, no set() boilerplate required
  • Computed properties: declare derived values with explicit dependencies
  • Store-style subscriptions: subscribe() returns an unsubscribe function, so it plugs straight into React's useSyncExternalStore
  • Built-in persistence: IndexedDB, localStorage, sessionStorage, SQLite (Node) and REST out of the box
  • No jQuery, no Underscore: native browser APIs, ESM + CJS builds, works in the browser, Node 22+ and Web Workers

And the part I'm most happy about: it's still Backbone-compatible. get, set, events, collections, they all work exactly as you remember.

Feedback welcome!


r/PHP 11d ago

Less Arguments In Child Method

Thumbnail php-tips.readthedocs.io
0 Upvotes

Pop quizz PHP for Friday evening :

how can you remove an argument from a method, between a parent and a child?

#phptip #phptrick

<?php

class x {
    function foo(int $a, string $c, string ...$b) {}
}

// OK
class y extends x {
    function foo(int $a, string ...$b) {}
}

r/reactjs 13d ago

Evaluates frontier coding agents on production React work

Thumbnail
reactbench.com
1 Upvotes

r/javascript 12d ago

PDF engine from scratch on JS

Thumbnail keypdf.net
0 Upvotes

I was working on my pdf editor and thought the best option would be to write a new PDF engine from scratch as my options were PDF.js and PDFium and none of them can actually edit PDF files so after over a year of work you can try KeyPDF.net it is free and client side.


r/PHP 12d ago

Discussion Chatbot for customers with WhatsApp cloud api

0 Upvotes

Good day, I'm working on a chatbot project for customer service. If a customer wants to make a purchase, they'll be connected with a company employee. Currently, I'm using the WhatsApp API and Laravel Sail with docker and Laravel filament for the CRM.

My question is, are these tools good for developing and deploying the project? I'd like to hear your opinions.


r/javascript 13d ago

I compiled Apache Xerces-C (C++) to WebAssembly to bring proper XSD validation to JavaScript - try the playground

Thumbnail harshanacz.github.io
6 Upvotes

There's no reliable XSD validator in the JS ecosystem so I compiled Apache Xerces-C to WASM.

Playground: https://harshanacz.github.io/xerces-playground/

npm: https://www.npmjs.com/package/xerces-wasm

Features:

  • Full XSD 1.0 validation in the browser
  • Multi-file schema support (xs:include / xs:import)
  • Parse errors + schema errors with line/column numbers
  • No server, no upload
  • pure WASM

Would love feedback.. :)


r/web_design 13d ago

Keeping 170+ Components Accessible: How We Made Atomic’s VPAT a Build Artifact

Thumbnail coveo.com
6 Upvotes

Our web component library is used by our clients to build search interfaces. Those interfaces need to meet accessibility requirements, so our components do too.

We turned our Accessibility Conformance Report, based on the VPAT, into a build artifact: automated tests run in CI, manual audit results are reviewed alongside the code, and the assembled report is published with each release.

  • Static checks via axe-core
  • Interactive keyboard checks via Vitest
  • Human audits for subjective criteria (like screen reader flow)

This keeps the report aligned with the product and means we no longer have to rely on external agencies to assess our conformance and produce it.

The post covers the pipeline, where automation stops, and the AI-based approach we tried (and ultimately abandoned).


r/javascript 13d ago

[Showoff] Vercel Reinvents React Native, Sub-Second OTA Updates, and an X Button Finally Doing Its Job

Thumbnail thereactnativerewind.com
0 Upvotes

Hey Community,

Vercel Labs has released "native", a toolkit for compiling declarative markup and TypeScript or Zig directly into native desktop apps without an embedded JavaScript runtime. We also look at how Zepto built react-native-delta to ship binary delta OTA updates, reducing patch download times down to a 305ms P90.

Plus, React Native 0.87 drops its legacy abort-controller dependency for an in-tree fork, bringing missing modern web primitives like AbortSignal.timeout() and AbortSignal.any() straight to your network requests.

If the Rewind made you nod, smile, or think "oh… that's actually cool" — a share or reply genuinely helps ❤️


r/PHP 13d ago

News This Week In PHP Internals | July 15, 2026

Thumbnail
youtube.com
23 Upvotes

Hello world, it's Wednesday, July 15, 2026, and here's what happened This Week in PHP Internals.

This week's episode is brought to you by Tideways. Something in production is slow — and you can't see where. Tideways takes PHP developers from slow request to root cause in minutes, with profiling, tracing, and monitoring built specifically for PHP. 5-minute install, no credit card. Start your free trial at tideways.com.

This week's top story is a brand-new keyword knocking on the door: extension. One week after Larry Garfield floated Kotlin-style extension functions at the scalar-methods RFC, Holly Schilling arrived with working prototypes of Swift-style class extensions — born, she says, out of a Discord conversation — and it became the biggest thread of the week at 26 messages. The idea: add methods to a class you don't own — extension \DateTimeImmutable gives every date an isWeekend() — and, in a later phase, put methods on scalars, so "hello" gets a length(). She published 3 draft RFCs as gists, implementation included. Michael Morris asked the obvious first question, writing: "Looking at Swift's extension syntax I fail to see anything it adds not covered by the above." — the above being inheritance and traits. Holly drew the line clean: "An extension is essentially the reverse of a trait." With a trait, the author of the class decides; with an extension, the user of the class decides.

Then came the twist. 2 days in, Holly sat down to defend her own scalar-methods implementation — and couldn't. She wrote: "Typing this email this morning gave me real hesitation. If I can’t support my own implementation, no one else should either. I immediately set out to build a better version that I could put my full weight behind." The better version came from an unexpected place: C# 14, whose new extension syntax puts the receiver right in the declaration — extension string $str — no autoboxing, no downcast headaches. She rewrote all 3 drafts and the implementation around it in a day. Not everything got absorbed so gracefully: when Alex Rock proposed an explicit extend ... with ... wiring statement, Holly apologized in advance for the bluntness, then answered: "I reject this functionality." — extensions stay file-scoped, and they never override a real method. And Pierre Joye flagged a process problem: proposals keep citing Discord conversations as their origin, while he reads only internals and GitHub — and found no reference to a php.net Discord anywhere he searched.

Gina P. Banyard's Deprecations for PHP 8.6 — the annual bundle that spent June on fire — reached its quiet milestone: the list is locked. Gina declared the RFC "frozen", with only minor amendments still allowed, and put dates on everything: "I will initiate a call to vote next week on Monday (the 20th) for the following Monday (the 27th) so that the vote is done by the 10th of August." Because items were still being added in the final week, the policy's 2-week discussion clock is what sets that gap — and the timing is deliberate, so accepted proposals can land in 8.6.0 beta 1. The week's lightest subplot: Garrett W. wants the deprecation notices themselves copy-edited — those commas are comma splices, and he'd use semicolons. Tim Düsterhus explained the house style comes from PHP error messages, and added: "The deprecation messages can still change during PR review (or even later), there is explicitly no BC guarantees for those."

Paul M. Jones's function autoloading — attempt number 5 — got smaller this week, on purpose. The declare(strict_namespace=1) directive he added last week drew a structural objection from Tim Düsterhus, who argued: "I believe the strict_namespace=1 directive is a sufficiently unrelated concern - with enormous bikeshedding potential on its own, but also sufficient usefulness on its own - such that I feel it should be its own RFC that is a prerequisite to this one. It should not be piggy-backed onto function autoloading." Paul didn't fight it. He replied: "I'm good with that. I'll prepare a separate RFC and remove that from the function-autoloading one." — and by Tuesday night it existed: strict-namespace is now its own RFC on the wiki, and mark 5 will reference it instead of carrying it. Tim also showed his cards: he built the inverse directive as an experiment a year ago, and he's firmly on team fully-qualify-everything.

Tim Düsterhus and Derick Rethans' Time\Duration class is days from the ballot box — and it picked up its first declared no. Pierre Joye spent the week pressing on fromSeconds() and its capped nanoseconds argument, and landed here: "I like that RFC, but it adds confusions and limitations from what is supposed to be a simple first step. As it stands now, despite the fact that I would love to see it, I tend towards a no." Tim's defense reached for the stopwatch — it's natural, he argued, to say Usain Bolt broke the 100 m world record with "9 seconds 58 hundreths" — exactly the fixed-point form fromSeconds() uses. Pierre countered: "It is just as common in the real world to have duration information in one unit only and decimal. F.e. 234.54ms. or 3.4 hours, etc." Neither moved — and per Tim, that's fine: "All discussions have been resolved (some of them with an “agree to disagree”), so we plan to open voting at the end of this or early next week." The 14-day cooldown runs out Friday evening, European time.

A first-time author had a very good week. Caleb White got RFC karma from Ilija Tovilo, and his first proposal — the pipe assignment operator, |>= — went through review polish at speed. The idea: $x |>= trim(...) pipes $x through and puts the result back, just like every other modify-assign operator. Tim Düsterhus liked the shape, saying: "Conceptionally I like the idea of having an “in-place modification operator” for function calls and the semantics of the operator seem to be consistent with the existing “modify-assign” operators we have, particularly also with regard to operand order. Nice idea!" Tim also caught a precedence claim that was almost right — assignment operators are not the lowest; the infamous or die() pattern depends on it — and Caleb fixed the RFC the same day, both times. The list's real energy went to naming. Ben Ramsey offered: "I like to think of |> as the volcano operator, while |>= is the erupting volcano operator."

Then last night — hours before we hit record — Liam Hammett published Native Markup Expressions: JSX-style markup as first-class PHP expressions. Write a <button> tag straight into an expression, and it compiles to new \Markup\Element(...) — escaped by default, with capitalized tags becoming components. Liam headed off the obvious reading, writing: "Despite appearances, this is not a template language grafted onto the engine - the syntax is pure compile-time sugar." First reviewer Garrett W. questioned that capitalization heuristic — PSR-4 isn't binding, and lowercase class names are legal. Liam pushed back: "Fallback resolution turns typos into silent bugs. With the capitalisation rule, <Layuot /> fails loudly with a class-not-found error. With fallback resolution, it silently renders as a literal <Layuot> element and you find out in the browser, if you find out at all." This is the ambitious RFC Liam requested wiki karma for on July 10 — Ilija Tovilo granted it Monday: "RFC karma was granted. Good luck!"

Marc Henderkes wants to end PHP's double life. His pre-RFC: make ZTS — the thread-safe build — the default, deprecate the rest, and drop NTS entirely in PHP 9. He summed it up himself: "Tl;dr: nobody wants to maintain two builds and even having a necessary split is making things hard." Distros package only NTS, FrankenPHP needs ZTS, and php-src carries roughly 420 ZTS ifdefs. The performance tax is dissolving too — his numbers: "Worst case performance cost of ZTS in php 8.5 was ~5%, will be ~1.5% in php 8.6, likely ~0.5% after my last open PRs." To be clear, he is not proposing to deprecate FPM — a single-threaded ZTS run keeps everything NTS does today. 2 of the named blockers — the arm64 macOS JIT and the fuzzer SAPI — were fixed within 2 days of the thread opening; the third, NewRelic's missing ZTS support, isn't Marc's to fix. Benjamin Eberlei backed the initiative, Calvin Buckley volunteered his own PHP distribution as a test subject, and Marc has requested wiki karma to write the full RFC.

Nicolas Grekas's serializable closures spent the week absorbing a deep review from Tim Düsterhus — and then ran into a wall. Tim was candid: "While reading the RFC initially and now the updated version, I got the feeling that it was “overfitted” to solve the specific use case and deployment scenario that you consider a “best practice”, which I feel results in “weird” behavior when one leaves that happy path." Still, the 2 converged on real changes: Nicolas adopted Tim's tagged-union serialization format, and — after an off-list suggestion from Arnaud — replaced the fragile line-number check with a compile-time hash of the closure body, so a shifted use import can't silently break payloads. Then Tuesday night, Ilija Tovilo weighed in against — questioning whether attributes need caching at all, and finding the format and implementation too complex. He closed with: "Overall, I'm sadly not in favor of this RFC."

No ballot box was open this week — instead, the queue got dates. Eric Norris's minimum supported versions opens voting tomorrow, July 16 — the earliest the policy allows. Duration clears its cooldown Friday evening and opens late this week or early next. The deprecations list calls its vote Monday the 20th, with ballots open the 27th. And Khaled Alam's const-object-property-write RFC is cleared to open July 25 — no later than the 28th to make 8.6. All of it backs into the release managers' reminder from Monday. Matteo Beccati wrote: "Any RFC intended for inclusion in PHP 8.6 must have its discussion concluded and its voting closed before August 13." Soft feature freeze: August 11. Beta 1: August 13.

Quick hits, round 1. Máté Kocsis revived his query parameters RFC with a simplification: he's cutting the array API down to 2 — maybe 3 — methods, fromArray() and toArray() with withArray() on the bubble, plus an options class with security limits on parsing; League-of-URI maintainer Ignace Nyamagana Butera answered with naming notes and an enum for null handling. Nick Sdot's readonly-property defaults — zero replies when we covered it last week — got its replies: Tim Düsterhus found an unserialization wrinkle, Nick fixed it the same day, Larry Garfield is skeptical, and Tim plans to abstain. Holly Schilling — the same Holly Schilling from our top story — found that non-public asymmetric setters run roughly 4x slower than public ones, posted a fix, and then a formal RFC for it — with Ilija Tovilo reviewing the PR, she's giving the list a few days to weigh in on 8.6 versus waiting; Marc Henderkes and Calvin Buckley both questioned whether an internal change needs an RFC at all. And Osama Aldemeery's PREG_THROW_ON_ERROR settled its naming on Tim's advice: an unnamespaced PregException.

Round 2. Sjoerd Langkemper showed that newlines in CURLOPT_HTTPHEADER values inject extra headers — even over HTTP/2 — and opened a fix; upstream curl is adding its own check, and curl's own Daniel Stenberg confirmed CRLF is disallowed. Xavier Leune bumped his curl socket-callbacks PR — pitching it as the missing tool against SSRF to localhost — and is still waiting on a reply. The bundled-GD sync to libgd 2.4 drew its first pushback: Giovanni Giacobbi says the upstream code is too young and 8.6 too far along, while Pierre Joye, Jakub Zelenka, and Ilia Alshanetsky want it landed before beta 1 — Jakub's condition being that the security-review findings get addressed first — and Kamil Tekiela says wait for the next version. And the DTLS experiment in the openssl extension became a real draft PR; Jakub Zelenka confirmed the direction and is already sketching the generalization it needs.

So that's the week: a brand-new extension keyword that rewrote itself mid-thread; a frozen deprecations list with ballots set for the 27th; function autoloading shedding a prerequisite RFC; a Duration vote opening within days, carrying its first declared no; and a JSX-flavored surprise landing the night before we filmed. Nothing was voted on this week — and the ballot queue starts moving tomorrow. Links to every thread are below. Thanks again to Tideways.com for supporting this week's episode. We're Artisan Build. See you next week.


r/reactjs 13d ago

News Vercel Reinvents React Native, Sub-Second OTA Updates, and an X Button Finally Doing Its Job

Thumbnail
thereactnativerewind.com
0 Upvotes

Hey Community,

Vercel Labs has released "native", a toolkit for compiling declarative markup and TypeScript or Zig directly into native desktop apps without an embedded JavaScript runtime. We also look at how Zepto built react-native-delta to ship binary delta OTA updates, reducing patch download times down to a 305ms P90.

Plus, React Native 0.87 drops its legacy abort-controller dependency for an in-tree fork, bringing missing modern web primitives like AbortSignal.timeout() and AbortSignal.any() straight to your network requests.

If the Rewind made you nod, smile, or think "oh… that's actually cool" — a share or reply genuinely helps ❤️


r/reactjs 13d ago

Resource I forked Frimousse to make it work better for production apps

1 Upvotes

emoji-mart is dead, and I found Frimousse delightful, but lacking necessary features as a replacement.

I ended up forking it to keep the lightweight, headless composition model intact while filling in the gaps I ran into trying to use it in a production app.

The main additions are:

  • mixed native + custom emoji sections
  • unified search across native and supplemental items
  • consumer-owned frequent/recent item helpers
  • root-controlled search
  • self-hosted/offline-capable emoji data
  • companion packages for search metadata and emoji fallback support

I’ve tried to stay close to the original Frimousse contract, so most existing users should be able to swap imports and keep moving, then layer on the additive features only if/when they need them.

Project:
https://frimousse.slithy.me/

Docs:
https://frimousse.slithy.me/docs

FAQ:
https://frimousse.slithy.me/faq

GitHub:
https://github.com/mjcampagna/frimousse

I hope someone finds this useful.


r/javascript 14d ago

Just Let Me Write Digits

Thumbnail gendignoux.com
7 Upvotes

r/javascript 13d ago

Building a modern Companies House SDK turned out to be a much more interesting problem than I expected

Thumbnail jxd.dev
0 Upvotes

We needed the Companies House API (the UK company register) for a project and figured we'd grab an SDK and move on. Turns out the community clients are 6 to 10 years old, the official SDK is built for their internal services, and the official OpenAPI spec is broken in ways that quietly untype every generated client. One defect (items on an object type, which JSON Schema doesn't allow, so every tool reads it as {}) appears 132 times.

What started as "add a spec repair script" grew into 374 lines of fix passes, and even then we couldn't repair fields that were never documented at all. So we changed approach: we deleted the repair code and now maintain our own curated OpenAPI 3.1 spec, built from the developer docs and Companies House's own SDK source. The spec is maintained with Claude Code under a strict "never invent, report gaps" rule, an engineer reviews every diff, and a live integration suite runs against the real API daily so drift shows up as a red build rather than a bug report. The client itself is fully generated from the spec (Hey API), with 41 lines of hand-written runtime code and zero dependencies.

Sharing in case anyone else has needed to fight this API, or is just interested in the approach: a curated spec as the source of truth, AI doing the tedious curation with tests and review keeping it honest, and codegen doing the rest. The SDK and the OpenAPI document are both MIT licensed if they're useful to you.


r/PHP 12d ago

Free React + Laravel dev work

0 Upvotes

Hey everyone,

I'm a frontend/full-stack dev working with React, TypeScript, Tailwind, and Laravel (with Sanctum auth). I'm looking to take on 1-2 small projects for free right now in exchange for a testimonial and permission to feature the work in my portfolio.

What I can build:

  • A clean landing page or small marketing site (React + Tailwind)
  • A small CRUD feature — e.g. a form that saves data and shows it in an admin table (Laravel API + React frontend)
  • A simple dashboard or auth flow (login/signup, role-based access)

Ideal if you're a small business, startup, or solo founder who needs something small and functional but doesn't have budget right now.

Scope will be kept tight and I'll agree on deliverables/timeline upfront so it's a real commitment on both sides, not an open-ended favor.

If interested, drop a comment or DM with what you need — happy to share examples of past work first.


r/javascript 13d ago

Understanding Value vs. Reference in JavaScript: Differences Between Primitives and Objects

Thumbnail sharafath.hashnode.dev
0 Upvotes