Hacker News
OfferLanded
Article URL: https://offerlanded.com/
Comments URL: https://news.ycombinator.com/item?id=41497059
Points: 1
# Comments: 1
Firefox update added more sponsored content on new-tab page
Article URL: https://twitter.com/nearcyan/status/1833253001668268242
Comments URL: https://news.ycombinator.com/item?id=41497051
Points: 1
# Comments: 0
Host multiple Clerk apps on the same domain
Article URL: https://clerk.com/changelog/2024-09-09-multiple-apps-same-domain
Comments URL: https://news.ycombinator.com/item?id=41497045
Points: 1
# Comments: 0
The UK's Digital Driving Licence
Article URL: https://shkspr.mobi/blog/2016/06/the-uks-digital-driving-licence/
Comments URL: https://news.ycombinator.com/item?id=41496994
Points: 1
# Comments: 1
Ask HN: Who should handle UI logic?
Hey everyone, I’m working through an architectural decision and need some advice from the community. The issue I’m about to describe is just one example, but the same problem manifests in multiple places in different ways. The core issue is always the same: who handles UI logic and should we make it dynamic make it responsibility of backend?
Example: We’re designing a tab component with four different statuses: applied, current, upcoming, and archived. The current design requirement is to group “current” and “upcoming” into a single tab while displaying the rest separately.
This leads to a debate:
Frontend Team’s Position: They want the backend to handle the grouping logic and send the data already grouped, like this:
``` [ { "title": "Applied & Current", "count": 7 }, { "title": "Past", "count": 3 }, { "title": "Archived", "count": 2 } ] ```
The goal is to reduce frontend redeployments, especially for minor UI changes. This is because 2/3rds of our frontend will be mobile apps (both Android and iOS), and we've had trouble getting app updates approved by the app stores in a timely manner.
Additionally, we're white-labeling the apps with small modifications (color themes, logos, etc.), and we plan to scale to 150-200 tenants over the next 2 years. With so many tenants, reducing redeployments would save us from having to push updates to multiple app origins.
Backend Team's Position: They believe grouping logic and UI decisions should be handled on the frontend, with the backend providing raw data, such as:
``` [ { "status": "applied", "count": 4 }, { "status": "current", "count": 3 }, { "status": "past", "count": 3 }, { "status": "archived", "count": 2 } ]
```
Their argument is that adding UI-specific logic to the backend increases complexity and violates separation of concerns. Backend should remain data-centric, delivering raw data, and avoid being tied to UI presentation decisions.
They also pointed out that server-driven UI could create unnecessary technical debt, especially as frontend needs evolve over time. For example, changing UI elements like tabs to something else (e.g., a scrolling view) would require backend changes, adding overhead.
Another concern is the risk of backend decisions limiting frontend flexibility, especially if other UI teams or platforms need to consume the same data differently. Changes for one frontend could affect others unnecessarily, making the system harder to maintain.
Additional Context: - Server-Driven UI: Server-driven UI has been gaining popularity as a way to solve some of these challenges. Companies like Airbnb, PhonePe, and Swiggy have implemented server-driven UIs to make large sections of their apps dynamically configurable. However, the current approach we’re discussing isn't a fully generic server-driven UI—it’s more like implementing dynamic UI behavior for some parts while leaving the rest static. - Startup Constraints: As a startup, speed and resource efficiency are critical for us. We're trying to balance agility and scalability while minimizing technical debt.
The Dilemma: Should the backend take on the responsibility of managing grouping logic and sending the frontend grouped data, or should the frontend handle all UI logic and just receive raw data from the backend?
Given the additional complexity we have with mobile apps, app store approvals, white-labeling, and scaling, I’d really appreciate your thoughts as frontend architects. How would you approach this to balance flexibility, scalability, and maintainability? Are there alternative solutions (like a Backend-for-Frontend (BFF) layer) that might work better in this situation?
Thanks in advance for any insights you can provide!
Comments URL: https://news.ycombinator.com/item?id=41496982
Points: 1
# Comments: 0
Show HN: Overpaid Sports Players
Article URL: https://lab.aizastudio.com/
Comments URL: https://news.ycombinator.com/item?id=41496959
Points: 1
# Comments: 0
Multimodal RAG
Article URL: https://github.com/fzliu/radient/blob/main/examples/multimodal_rag.md
Comments URL: https://news.ycombinator.com/item?id=41496957
Points: 1
# Comments: 0
Do open source licences cover the Ship of Theseus?
Article URL: https://shkspr.mobi/blog/2023/06/do-open-source-licences-cover-the-ship-of-theseus/
Comments URL: https://news.ycombinator.com/item?id=41496954
Points: 1
# Comments: 0
Free Energy Transformer: Combination of Bifilar Coil and Joule Thief Circuit
Article URL: https://old.reddit.com/r/plasma_pi/comments/1f3gy3w/free_energy_transformer_combination_of_bifilar/
Comments URL: https://news.ycombinator.com/item?id=41496946
Points: 1
# Comments: 1
Sales of dog strollers outpace baby strollers in country with lowest birth rate
iPhone 16 Pro Supports JPEG-XL Format
Article URL: https://www.macrumors.com/2024/09/09/iphone-16-pro-supports-jpeg-xl-format/
Comments URL: https://news.ycombinator.com/item?id=41496919
Points: 2
# Comments: 0
The Astonishing Power of "The Master"
Article URL: https://www.newyorker.com/culture/richard-brody/the-astonishing-power-of-the-master
Comments URL: https://news.ycombinator.com/item?id=41496905
Points: 2
# Comments: 0
Ukraine is fielding machine-gun turrets remotely controlled by Steam Deck
Article URL: https://www.businessinsider.com/ukraine-fielding-machine-gun-turrets-controlled-by-steam-deck-2024-9
Comments URL: https://news.ycombinator.com/item?id=41496901
Points: 3
# Comments: 0
Tool to find soon-to-expire Chrome extensions for MV3 opportunities
Article URL: https://extensionship.com/
Comments URL: https://news.ycombinator.com/item?id=41496896
Points: 2
# Comments: 1
Gentry Lee's So You Want to Be a Systems Engineer? [video]
Article URL: https://www.youtube.com/watch?v=E6U_Ap2bDaE
Comments URL: https://news.ycombinator.com/item?id=41496885
Points: 1
# Comments: 0
CodeLLM-Devkit: A Python library for seamless interaction with CodeLLMs
Article URL: https://ibm.github.io/codellm-devkit/
Comments URL: https://news.ycombinator.com/item?id=41496866
Points: 1
# Comments: 0
Anysphere/priompt: Prompt design using JSX
Article URL: https://github.com/anysphere/priompt
Comments URL: https://news.ycombinator.com/item?id=41496841
Points: 1
# Comments: 1
The College Student Who Stole $7.5M via SIM Swapping – Cowboy Kings of Crypto [video]
Article URL: https://www.youtube.com/watch?v=2rFLGR5hlIA
Comments URL: https://news.ycombinator.com/item?id=41496840
Points: 1
# Comments: 0
People Are Sick and Tired of All Their Subscriptions
Article URL: https://www.wsj.com/articles/people-are-sick-and-tired-of-all-their-subscriptions-cbee7e03
Comments URL: https://news.ycombinator.com/item?id=41496778
Points: 1
# Comments: 0
A Quarter of America's Bridges May Collapse Within 26 Years
Article URL: https://www.popularmechanics.com/science/a62073448/climate-change-bridges/
Comments URL: https://news.ycombinator.com/item?id=41496774
Points: 2
# Comments: 0