Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
HaB
Jan 5, 2001

What are the odds?

dupersaurus posted:

code:
import { whyIsThisNotAStandardJSFunction } from 'lodash'

I very much appreciated this joke. :)

Adbot
ADBOT LOVES YOU

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself
okokok thanks all. This is helpful stuff. It sounds like I've already got a build output that people will want, so I'll update my documentation to instruct people to import a la carte.

HaB posted:

It sounds like you're conflating a few things.

hahah yes. I'm really not sure why I misunderstood tree shaking so badly

dupersaurus posted:

and include the whole libraries, even if you're just using a single function from each, because you're not telling it that you're only using a single function from each:

code:
import { Map } from 'immutable'
import { whyIsThisNotAStandardJSFunction } from 'lodash'

from my testing, even this will cause webpack to bundle the entirety of lodash in an app's final build :sweatdrop:

dupersaurus
Aug 1, 2012

Futurism was an art movement where dudes were all 'CARS ARE COOL AND THE PAST IS FOR CHUMPS. LET'S DRAW SOME CARS.'

teen phone cutie posted:

from my testing, even this will cause webpack to bundle the entirety of lodash in an app's final build :sweatdrop:

Yeah good point, I forgot that lodash has some submodules to better target specific functions. And it looks like there's now a babel plugin that will convert the imports for you

Ima Computer
Oct 28, 2007

Stop all the downloading!

Help computer.

teen phone cutie posted:

from my testing, even this will cause webpack to bundle the entirety of lodash in an app's final build :sweatdrop:
I think in order for this to be tree-shaken, you'd need to be importing from lodash-es which provides lodash as esmodules. With a CommonJS module, there's no way for webpack to guarantee that the rest of the module code doesn't have side-effects.

As for publishing your own package with tree-shaking enabled...

You should ideally build both a commonjs and esmodules version of your library, and assign their paths to main and module in your package.json

JSON code:
{
  "main": "./dist/cjs/index.js",
  "module": "./dist/esm/index.js"
}
If you have any of your library isolated into individual files, you can make those importable by adding a exports field.

JSON code:
{
  "exports": {
    "./foo": "./dist/esm/foo.js"
  }
}
(this example would make packagename/foo importable)

You'll also need to add sideEffects (a webpack-specific package.json property) with a value of false (or an array of file paths or globs of files which have side-effects)

JSON code:
{
  "sideEffects": false
}

Cugel the Clever
Apr 5, 2009
I LOVE AMERICA AND CAPITALISM DESPITE BEING POOR AS FUCK. I WILL NEVER RETIRE BUT HERE'S ANOTHER 200$ FOR UKRAINE, SLAVA
Marak Squires, developer of the popular Faker.js and Colors.js libraries, has apparently continued his downward spiral from allegedly setting his home on fire with possible bombmaking materials back in September to publishing breaking changes for both libraries with weird right-wing Aaron Schwartz conspiracy theories, cries of liberty, and American flags. GitHub and NPM have, understandably, banned him for this and removed the broken versions.

Dude's clearly got some significant mental health issues and is going through a lot right now, so I hope someone will be able to get him the help he needs. Unfortunately, there look to be at least a few folks on social media confusing the above for "evil corporations stepping all over the independent open source developers!!" and trumpeting him striking against the system. There are real discussions to be had about things like supporting open source projects or even the risks of tech giants monopolizing major dev tooling, but hooboy is this incident ever not a rallying cry for that.

JavaScript code:
module.exports = function americanFlag () {
  console.log('LIBERTY LIBERTY LIBERTY'.yellow);
  console.log('LIBERTY LIBERTY LIBERTY'.america);
  console.log('LIBERTY LIBERTY LIBERTY'.yellow);
  let flag = "\
  \
                                 !\
             H|H|H|H|H           H__________________________________\
             H|§|§|§|H           H|* * * * * *|---------------------|\
             H|§|∞|§|H           H| * * * * * |---------------------|\
             H|§|§|§|H           H|* * * * * *|---------------------|\
             H|H|H|H|H           H| * * * * * |---------------------|\
             H|H|H|H|H           H|---------------------------------|\
          ===============        H|---------------------------------|\
            /| _   _ |\          H|---------------------------------|\
            (| O   O |)          H|---------------------------------|\
            /|   U   |\          H-----------------------------------\
             |  \=/  |           H\
              \_..._/            H\
              _|\I/|_            H\
      _______/\| H |/\_______    H\
     /       \ \   / /       \   H\
    |         \ | | /         |  H\
    |          ||o||          |  H\
    |    |     ||o||     |    |  H\
    |    |     ||o||     |    |  H   Carl Pilcher\
  ";

  console.log(flag);

}
I can't find the "homer backing into bushes" emoji right now, but pretend I added it here.

zokie
Feb 13, 2006

Out of many, Sweden
Lmao, I’ve contributed to faker.js. When they added currencies they hosed up and for countries that support 2 currencies both got merged into one entry.

Cugel the Clever
Apr 5, 2009
I LOVE AMERICA AND CAPITALISM DESPITE BEING POOR AS FUCK. I WILL NEVER RETIRE BUT HERE'S ANOTHER 200$ FOR UKRAINE, SLAVA
A rant:

I'm having a tough time getting a firm idea for how mobile Web Views work and the documentation for both iOS and Android seems piss poor (or expects broader familiarity with mobile development, which I'm awfully lacking in). Basically, I need validate that the rendering engine used by the Web View component on our supported OS versions has a specific modern JS primitive available—if not, have to do some janky poo poo with a third party library with equivalent functionality (but is not a 1:1 polyfill).

The understanding I've arrived at is that iOS Web View makes use of the device's version of Safari, which is pinned to the loving iOS release, for some reason. I guess it's the same on Safari for MacOS? We "officially" support Safari, but it has such low usage and we're so stretched thin we've never given it attention.

On Android, meanwhile, it looks like Android 4.4+ Web View uses Chromium/Chrome on Android, such that it will stay evergreen assuming the user hasn't manually toggled off updates (or installed something that supplants the system web view with FF or something). So theoretically we can impose the burden of keeping up to date just like we do for our web browser support (last X versions of all evergreen browsers).

Thing is, the above assessments aren't from any explicit documentation, just cleaned hodgepodge from miscellaneous, sometimes conflicting sources. I'll need to actually go in and validate the primitive is available before I have any degree of confidence.

MrMoo
Sep 14, 2000

This is because iOS users frequently update their OS as they get nagged to do so, and it is both no cost and available. Android still had quite a problem with updates due to the split between Google and the Vendor (tm). Googles workaround with v4 or whatever was to ship WebView updates with Google Store so that phone users stopped getting hacked so much.

However Google Store generally means optional updates and thus you end up with a user base ranging from stock versions, which are significantly out of date on release day, to quite near the latest upstream version and everything in between. Thus making targeting minimum functionality quite annoying.

prom candy
Dec 16, 2005

Only I may dance
The trick is to treat android users like the second class citizens they are.

gbut
Mar 28, 2008

😤I put the UN🇺🇳 in 🎊FUN🎉


cries in pine/librem

Cugel the Clever
Apr 5, 2009
I LOVE AMERICA AND CAPITALISM DESPITE BEING POOR AS FUCK. I WILL NEVER RETIRE BUT HERE'S ANOTHER 200$ FOR UKRAINE, SLAVA
I've now lost my entire morning attempting to get an iOS 14 simulator installed through xcode. Fucker just stalls out ~66% and nothing I do resolves it.

spacebard
Jan 1, 2007

Football~

Cugel the Clever posted:

I've now lost my entire morning attempting to get an iOS 14 simulator installed through xcode. Fucker just stalls out ~66% and nothing I do resolves it.

I ran into this on older versions of simulator and xcode. I needed to download the package directly, move it into xcode's directory, and then restart.

This: https://stackoverflow.com/questions/29058229/download-xcode-simulator-directly

prom candy
Dec 16, 2005

Only I may dance
Xcode is like 90% of the reason I'm not pursuing a career shift into native iOS development

Siguy
Sep 15, 2010

10.0 10.0 10.0 10.0 10.0
Now doing the thing I’ve avoided for years: learning Webpack.

I wanted to experiment with compiling Rust to web assembly (so far a bit disappointing in file size), and getting the wasm file integrated into an old site of mine has been much harder than I expected.

First I tried using parcel because I’d heard it was zero configuration. It was awesome… except web assembly didn’t work.

So then I started working through the webpack getting started tutorial and good lord I feel like this is SO much more complicated than the NPM build scripts I used to use.

I’ve finally got it working but I’m a little stunned that this is the state of the art in build tools. It just feels so hostile and configuration heavy. Every single thing requires another package and four lines in four different places in the webpack.config.is file.

Cugel the Clever
Apr 5, 2009
I LOVE AMERICA AND CAPITALISM DESPITE BEING POOR AS FUCK. I WILL NEVER RETIRE BUT HERE'S ANOTHER 200$ FOR UKRAINE, SLAVA
Thanks for the recs. Fifth attempt was the charm and, after being stalled for 30+ minutes at 66%, it finally started (slowly) moving. Maybe it would have done so the other times! Either way, it's utterly mind-boggling to me... is it expected that simulator install takes over an hour with no meaningful user feedback??? Why does the install max out my fans?? Android simulator installations take ten minutes, tops.

This, plus other arcane and poorly documented nonsense, has turned a task that should have taken at most a couple hours into a multiday epic of frustration that I'm still not 100% sure on. While I'm sure that mobile devs experience the same frustration of not knowing the little things that are essential for productive development when trying to get something done on the web, it doesn't make it any less excruciating.

Siguy posted:

Now doing the thing I’ve avoided for years: learning Webpack.

I wanted to experiment with compiling Rust to web assembly (so far a bit disappointing in file size), and getting the wasm file integrated into an old site of mine has been much harder than I expected.

First I tried using parcel because I’d heard it was zero configuration. It was awesome… except web assembly didn’t work.

So then I started working through the webpack getting started tutorial and good lord I feel like this is SO much more complicated than the NPM build scripts I used to use.

I’ve finally got it working but I’m a little stunned that this is the state of the art in build tools. It just feels so hostile and configuration heavy. Every single thing requires another package and four lines in four different places in the webpack.config.is file.
Yeah... Webpack has come a long, long way toward being accessible and taking care of simple things out of the box, but it's still hostile enough that competitors keep popping up.

Chas McGill
Oct 29, 2010

loves Fat Philippe
Vite is very good. I'd choose it for a new project now.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Chas McGill posted:

Vite is very good. I'd choose it for a new project now.
Yes, agreed. I've been down the same Rust+WASM rabbit hole and Vite was the only bundler that wasn't needlessly complicated to set up, didn't completely break randomly all the time, or is pretty much abandoned (like Snowpack for instance).

dupersaurus
Aug 1, 2012

Futurism was an art movement where dudes were all 'CARS ARE COOL AND THE PAST IS FOR CHUMPS. LET'S DRAW SOME CARS.'
Webpack is magic compared to what came before, and it's not that bad once you get the hang of it, but yeah it's probably time for a new king to take the throne

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself
A few years back when i was still pretty junior, i went to a JS convention and this talk on webpack.

the speaker had prepared code in different branches for each step in his talk, and during his demo, he spent a solid 20 minutes debugging his webpack config and even needed the audience to help him figure out what was wrong.

at that moment, i knew everything i needed to know about webpack:

kedo
Nov 27, 2007

Webpack is magic when it works. It works when you don't look at it, or change it, or do anything other than running a build script you cobbled together three years ago and haven't touched since, mainly out of fear.

LifeLynx
Feb 27, 2001

Dang so this is like looking over his shoulder in real-time
Grimey Drawer
I built a NextJS site and I can't figure out why in the world it's laggy/choppy when I scroll on mobile. There's no repainting, nothing is rerendering that I can see. I tried everything. Scrolls fine on desktops, choppy as gently caress on mobile: https://brianpaskoff.vercel.app/

abraham linksys
Sep 6, 2010

:darksouls:
This isn't choppy for me on a new iPhone, what device are you looking at it on?

camoseven
Dec 30, 2005

RODOLPHONE RINGIN'
Looks good to me as well. iPhone 11, ios 15.2

lunar detritus
May 6, 2009


LifeLynx posted:

I built a NextJS site and I can't figure out why in the world it's laggy/choppy when I scroll on mobile. There's no repainting, nothing is rerendering that I can see. I tried everything. Scrolls fine on desktops, choppy as gently caress on mobile: https://brianpaskoff.vercel.app/

It chugs a bit on chrome android, on a xiaomi poco x3.
Maybe it's because of the size of the cat image? Although it's not _that_ big.

LifeLynx
Feb 27, 2001

Dang so this is like looking over his shoulder in real-time
Grimey Drawer

lunar detritus posted:

It chugs a bit on chrome android, on a xiaomi poco x3.
Maybe it's because of the size of the cat image? Although it's not _that_ big.

I thought that too, but I've also tried with zero images rendering on the page.

I should have specified: Chrome Android. Though it's surprising that iOS (Safari?) handles something better.

Volguus
Mar 3, 2009
On Pixel 5 with chrome is indeed a bit laggy. On Firefox, with the same phone, is fine.

Doom Mathematic
Sep 2, 2008

Cugel the Clever posted:

Yeah... Webpack has come a long, long way toward being accessible and taking care of simple things out of the box, but it's still hostile enough that competitors keep popping up.

I keep forgetting to look into esbuild.

prom candy
Dec 16, 2005

Only I may dance
Anyone built anything with Remix yet? This (fairly long) blog post they did comparing it with Next.js is pretty interesting https://remix.run/blog/remix-vs-next

Splinter
Jul 4, 2003
Cowabunga!

prom candy posted:

Anyone built anything with Remix yet? This (fairly long) blog post they did comparing it with Next.js is pretty interesting https://remix.run/blog/remix-vs-next
I hadn't looked much into Remix prior to reading this, but that is interesting. As best I can tell, Remix is essentially all SSR (or at least server side data fetching) with some special sauce to make the client feel and behave more like a modern SPA app (rather than old school full stack Rails/Django/Symfony/etc approach). Meanwhile Next gives you the flexibility to choose between a mix of SSG, SSR and client side fetching. One benefit of Next is you can still make use of its "batteries included" React while sticking with a client side fetching oriented React architecture (what many are used to) if you don't want/need SSR/SSG. Remix is more opinionated in that regard. The idea of Remix handling all the data mutations automagically to make SSR feel seamless from both a dev and user perspective does sound very appealing. My only question is how manageable the code becomes when actually used in a large, complex project. Many frameworks often seem game changing when making a simple demo app, but introduce a whole new set of headaches in certain situations that aren't apparent until you're deep into development of a significant project. I am very intrigued though and will definitely be experimenting with it for a personal project when I have the chance.

One thing that stood out:

quote:

If the Next.js app moved away from client fetching, and used getServerSideProps, they would probably close the gap and have simpler answers to these questions.
So they're not really comparing it to how Next would perform if you used primarily SSR, which would be an interesting comparison to see. I'm currently using Next + React Query to easily initially fetch server side and then do any needed refetches client side (https://react-query.tanstack.com/guides/ssr#using-hydration) which has been working pretty well. Even then though, Remix still seems to handle some things automatically that you have to do manually with Next (even when used with something like React Query) or vanilla React, so it still has appeal even if the performance difference vs Next SSR isn't as significant.

prom candy
Dec 16, 2005

Only I may dance
I've been building SPAs for about 5-6 years now and the idea of going back to the good old days is really tantalizing. Like you said the pain points won't be evident until you actually build something big with it but having a framework that's driven by basic web concepts coupled with modern tooling and being able to do modern UI sounds really nice.

What I really want to know is if it can actually power a monolith. It seems easy enough to install an ORM and use it with your database, but I wonder what it looks like to build a large full stack application on it.

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself
interesting issue today where Redux devtools broke JIRA.

Their last release added

JavaScript code:
import _ from 'lodash'
which apparently also sets global._

and JIRA was relying on global._ to be underscore code instead of the lodash library so it was clashing.

Also their past 2 releases were created from each commit in this open PR. Very strange

https://github.com/reduxjs/redux-devtools/pull/1031

fsif
Jul 18, 2003

prom candy posted:

I've been building SPAs for about 5-6 years now and the idea of going back to the good old days is really tantalizing. Like you said the pain points won't be evident until you actually build something big with it but having a framework that's driven by basic web concepts coupled with modern tooling and being able to do modern UI sounds really nice.

What I really want to know is if it can actually power a monolith. It seems easy enough to install an ORM and use it with your database, but I wonder what it looks like to build a large full stack application on it.

Curious about the pain points you've encountered. Mostly just related to the build process, I reckon?

When our agency switched from PHP monoliths to Next.js with a headless CMS, biggest pain points have been explaining to the client why they need to wait two minutes to see their changes on the site and why they have two different hosting bills.

abraham linksys
Sep 6, 2010

:darksouls:
we use Next.js with getServerSideProps to build a relatively naive frontend for our main site, it whips rear end except for the way that all of the Next.js docs are like "hey have you considered static generation??" making me concerned that they're going to stop investing in server-side rendering in the framework

I think static generation is a fool's errand for 99% of use cases and I'm really excited about Remix, we're fairly early in this project so we're keeping an eye on it and tracking how much work a switch would be. Think the biggest issue is that Remix tries to side step a lot of the complexity of rolling in a build pipeline like other frameworks by specifically not handling CSS or assets and telling you to bring your own parallel build process that outputs CSS - which I actually think isn't that bad in theory except that we use CSS Modules, which you really can't split away from your JS build process. (e: googling actually shows someone has figured out how to get CSS Modules using https://github.com/madyankin/postcss-modules and a bit of boilerplate per component, might give it a go)

feel like the most reasonable paradigm for building web sites in 2022 is: "just write server-side logic like it's 2006 and you're writing Rails controllers, except now they go call microservices/your 'real' backend to fetch data, and your view layer is React and also everything has nice TypeScript static typing." Remix goes the further step of letting you handle forms using the same server-side paradigms of your data-fetching logic and I think that's cool as hell, especially for architectures like I've described where a form submission might not map 1:1 with your microservice API and you can now abstract that behind your server layer instead of adding a huge layer of client-side coordination logic

and it goes without saying you can drop literally all state management tooling from your app when you go this route and that's an incredible weight lifted. I was backporting some data-fetching logic from our new Next app to the old custom SSR+Redux app to support some legacy pages, and turning it from "simple getServerSideProps logic that eventually passes down props to the root component of this page" to "a set of Redux actions that fetch a bunch of data, a Redux state for storing that data, and then a complex selector to pull out all of that data to derive the final props" made is crystal clear how much loving simpler life is once you cut out Redux-like stores when all you really want is to just fetching page data and not have long-lived state

sorry I'm rambling this is basically the only thing I've been even slightly excited about in JS in the last two years since rather than be pie-in-the-sky thinking it's incredibly pragmatic and makes my life a lot simpler as a dev who no longer cares about building Ambitious Web Applications and now just wants to put pages on the internet without anyone yelling at me

abraham linksys fucked around with this message at 04:10 on Jan 20, 2022

Summit
Mar 6, 2004

David wanted you to have this.
That comparison was posted in my circles today and what I found immediately off about it was it explicitly ignored NextJS’s server side rendered features then claimed victory. Just felt a bit cherry picked and I left me curious what the comparison would be if they used SSR for both.

Spime Wrangler
Feb 23, 2003

Because we can.

prom candy posted:

I've been building SPAs for about 5-6 years now and the idea of going back to the good old days is really tantalizing.

i've been spending the last couple months working on a pure django project with zero JS and it's like putting on a comfy old sweater

prom candy
Dec 16, 2005

Only I may dance

fsif posted:

Curious about the pain points you've encountered. Mostly just related to the build process, I reckon?

When our agency switched from PHP monoliths to Next.js with a headless CMS, biggest pain points have been explaining to the client why they need to wait two minutes to see their changes on the site and why they have two different hosting bills.

Managing loading/error states is annoying and i'd really like end to end type safety. Like if I make a change to the database schema I'd like to get type errors all the way through to my react components.

Really I think I just want to stop working with Rails.

Summit posted:

That comparison was posted in my circles today and what I found immediately off about it was it explicitly ignored NextJS’s server side rendered features then claimed victory. Just felt a bit cherry picked and I left me curious what the comparison would be if they used SSR for both.

I think it might partially be because that's what the next docs do? I don't have a ton of next experience but i used it recently and it really pushes you towards SSG.

prom candy fucked around with this message at 06:13 on Jan 20, 2022

LifeLynx
Feb 27, 2001

Dang so this is like looking over his shoulder in real-time
Grimey Drawer
After hours trying to fix that Chrome scrolling issue I talked about above, I found the cause of the problem. I tried everything - replacing the Image component with plain img tags, removing all the images, not using intersection observer, removing all animations, adding will-change: transform and backface-visibility: visible to all elements, etc.

The issue was the background image. A tiny 1.6kb SVG:

code:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" viewBox="0 0 700 700" width="700" height="700"><defs><filter id="nnnoise-filter" x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" primitiveUnits="userSpaceOnUse" color-interpolation-filters="linearRGB">
	<feTurbulence type="fractalNoise" baseFrequency="0.122" numOctaves="4" seed="15" stitchTiles="stitch" x="0%" y="0%" width="100%" height="100%" result="turbulence"></feTurbulence>
	<feSpecularLighting surfaceScale="16" specularConstant="0.8" specularExponent="20" lighting-color="hsl(22.5, 100%, 33%)" x="0%" y="0%" width="100%" height="100%" in="turbulence" result="specularLighting">
    		<feDistantLight azimuth="3" elevation="122"></feDistantLight>
  	</feSpecularLighting>
  <feColorMatrix type="saturate" values="0" x="0%" y="0%" width="100%" height="100%" in="specularLighting" result="colormatrix"></feColorMatrix>
</filter></defs><rect width="700" height="700" fill="hsla(0, 0%, 100%,0)"></rect><rect width="700" height="700" fill="transparent" filter="url(#nnnoise-filter)"></rect></svg>
I'm guessing because Chrome uses hardware acceleration to render things, it was trying to render the lighting on this thing at all times.

LifeLynx
Feb 27, 2001

Dang so this is like looking over his shoulder in real-time
Grimey Drawer
I'm looking to create a photo gallery. Like I've said before, my previous experience is just Wordpress, so what I want is an idiot proof way for my client to:

- Upload images somewhere (Digital Ocean Spaces? An AWS S3?)
- Manage folders and thumbnails (this is image transformations, correct?)

Cloudinary looks to be the most recommended way to serve images, however the price jump from "free" to $89/mo. scares me. (Why don't any of these places have an in-between tier that's in the sweet spot of $20/month?) The project I have in mind is for a photographer friend, and he'll have galleries like Weddings, Engagements, Portraits, etc. Roughly 200 images, so half a GB if they're not uploading raw images? I could use just an S3 bucket with a CDN, but I want some way for them to manage the galleries.

blunt
Jul 7, 2005

LifeLynx posted:

I'm looking to create a photo gallery. Like I've said before, my previous experience is just Wordpress, so what I want is an idiot proof way for my client to:

- Upload images somewhere (Digital Ocean Spaces? An AWS S3?)
- Manage folders and thumbnails (this is image transformations, correct?)

Cloudinary looks to be the most recommended way to serve images, however the price jump from "free" to $89/mo. scares me. (Why don't any of these places have an in-between tier that's in the sweet spot of $20/month?) The project I have in mind is for a photographer friend, and he'll have galleries like Weddings, Engagements, Portraits, etc. Roughly 200 images, so half a GB if they're not uploading raw images? I could use just an S3 bucket with a CDN, but I want some way for them to manage the galleries.

Honestly the best answer for this use case is Squarespace. It's such a solved problem that it's not worth building out a custom solution unless they have a really esoteric requirement.

Adbot
ADBOT LOVES YOU

LifeLynx
Feb 27, 2001

Dang so this is like looking over his shoulder in real-time
Grimey Drawer

blunt posted:

Honestly the best answer for this use case is Squarespace. It's such a solved problem that it's not worth building out a custom solution unless they have a really esoteric requirement.

It's more of a personal project as well as polishing my React skills, so I didn't want to go with a no-code solution.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply