ollerac

Joined 16 years ago

Karma
864
Submissions
247
Member since
Aug 9
Working on Remake (remaketheweb.com), an open source framework for building full-stack web apps with just HTML + CSS and no backend coding

I would like to change my username on HN to panphora

Email: [email protected] Twitter: @panphora

View on Hacker News

Recent submissions

Comment · 4 years ago
I’m beyond frustrated with modern web development. It feels hyper-inefficient when it could be streamlined.

We currently use tools built by the biggest companies on earth (whose main preoccupation is solving scalability problems) to build the most basic applications. We’ve got infinitely nested component with jumbles of state being passed around, new build tools and framework versions being released every week, and we're tasked with orchestrating 12+ disparate tools just to make a basic app work.

The context switching is getting painful and the rabbit holes seem to go on forever.

There should be a simpler way for product-focused founders (who want to solve user-facing problems instead of deep tech-stack problems) to build stuff that works.

I propose a solution: the concept of a “web app object." A dynamic object that looks like HTML but contains all the web app capabilities you need across the stack collapsed into a single node.

Think of this:

  <my-note></my-note>
It might look like a simple web component. But, what if unlike a web components, it worked across the stack.

It shouldn't have to be pre-defined with front-end JS to have some basic functionality.

For example: it can determine its own namespace on the backend with its actual name, it can get new capabilities (on both the front-end and backend) just by adding a single attribute to it, and (this is the killer feature for me) its place within the data in the database can be determined by its relative position in the DOM (i.e. we convert a page's HTML into a live database that we can style with CSS).

  <personal-notes>
    <my-note editable>Hello, world!</my-note>
    <create-new my-note>Add Note</create-new>
  </personal-notes>
⬆ Here’s a more robust example.

This example code would be enough to tell an opinionated web app framework everything it needs to know about the structure of the user’s data and the behavior of the page, including that notes are editable by users with access, the default text should be “Hello, world!”, and users can create new notes by clicking a button.

Browsers have nothing like this concept of a "web app object", even though web apps have been around for decades. Instead, we get a bunch of disconnected pieces of the stack that we have to tie together ourselves...

We have the front-end (html + css), the backend of the front-end (build tools + our SPA framework of choice), the front-end of the backend (API layer + controller logic), the backend of the backend (business logic + database schema), and then DevOps (pipelines + deployments + security).

It's like we have to know how to do our own plumbing just to take a drink of water…

I wrote out this idea on HN a little while ago and it seemed to resonate [0]. I also see other promising approaches of merging the front-end and the backend into one primitive coming along (Imba, Phoenix LiveView, Blitz, InertiaJS).

I’m working on the early stages of this idea as an open-source framework [1].

I've been developing it in my spare time for the last few years and I've built a full proof-of-concept with some major help from contributors.

It'd be excellent to get some help from you all with this since it's something I believe in strongly and I think the world needs it. I'm a front-end developer and designer with not a lot of experience building a modern JS framework, so that's where I could use the most help.

[0] https://news.ycombinator.com/item?id=29053536 [1] https://remaketheweb.com

Comment · 4 years ago
Comment · 4 years ago
As mostly tech workers, HN readers are woefully disconnected from the lives of everyday people who have been promised a path to if not wealth, at least some kind of comfortable lifestyle by working really hard.

And then the 2008 housing crisis happened. A massive betrayal by the government against its own people. Many people lost their houses, their retirement savings, and their investments. And who did the government bail out and prop up? The bankers, the elite, and the stock market. And this happens over and over again in countless banana republics across the world — the elite propping up the systems that support themselves and not really caring about anyone else.

So now, you have this massive movement against wall street (r/wallstreetbets & GME/AMC), the elite (Trumpism), centralized financial institutions (Bitcoin & DeFi), and the upper class of tech workers (web3). And you wonder why? People were promised a path towards wealth and have had it stolen away from them countless times. Now they are rebelling.

It doesn't matter if — technically & logically — Bitcoin, DeFi, and Web 3 aren't everything they're promising to be... People still need a place to turn to put their hopes that isn't the current system. They've just been burned too many times by it.

But none of this is going to work out in the long run... It'll be just like every other mania throughout history. Tons of investment, tons of apparent growth fueled by FOMO, and then a massive collapse when people realize no one actually cares about this stuff for its intrinsic value... But enough effort & pain & money will have gone into it by then that it will have created a nascent industry that will maybe, one day 10-20 years from now, take over the world and become the new normal.

TLDR: DeFi & Web 3 is an emotional reaction to a system that just doesn't work for most people, not the logical next step towards a better version of the status quo.

Comment · 4 years ago
Why is it bad advice? Genuinely interested.

I'm interested in what's worked better for you and why you think no-code is a bad choice.

Comment · 4 years ago
Use no-code

Hear me out.

The #1 problem you have as developers is marketing.

The #2 problem you have is validating demand from customers.

So force yourself to do the uncomfortable steps ASAP, while also making it easy to pivot by launching with the smallest possible stack.

If you can launch with something like Airtable + Webflow + Zapier + Typeform, you can get something out there in weeks instead of months/years. It will be relatively easy since your team is technical.

Then release it to the market and see if it sticks.

The power of a lightweight stack is NOT the ability to find Product-Market fit instantly.

The true power comes from making the 20-30 iterations it will take to actually find Product-Market fit less painful than if you had to rebuild from scratch every time you had a new idea.

Comment · 4 years ago
Comment · 5 years ago
I ran into so many issues with content-box a decade back I never thought about it again and always defaulted to border-box.

I think it's absurd that I can set a div to a specific width (100px, 200px, whatever) and the padding or border will make the div larger than that width.

It makes it so hard to think about designing a page when you have to continuously add together padding, margin, and border with the width to get the actual width.

You're right about flexbox and grid solving most of these issues -- and responsive design has pretty much done away with using exact pixel widths for anything, but I still run into some cases (especially around creating grid layouts that automatically reflow) where CSS columns and floats are the best approach (not often, but it still happens...) and then you need to rely on the width being the actual width, you know?

Comment · 5 years ago
Comment · 5 years ago
The easy way 10 years ago was FTP or rsync. It seems like that's still the easy way.

I'm wondering why nothing simpler/more automatic has popped up.

Comment · 5 years ago
I didn't say it was harder today, I asked: "why isn't it easier today?"

I would think with improvements in tech, things would actually become simpler.

Comment · 5 years ago
Hi Peter, what's the easiest way to set up a profit-sharing agreement with people working with me? Is there a standard contract?
Comment · 5 years ago
Web app capabilities built in to the foundation of HTML and the browser.

Elements that know they're user-editable (images with upload controls attached to them to replace the image that's there, dates that trigger calendar controls when clicked, and inline editing for other elements that actually works and is consistent across browsers).

An offline database in the browser that has the concept of user accounts and resetting passwords baked in, as well as subscription payments, and has a universal API that can be automatically deployed to any hosting platform.

All of this would make building web apps and games trivial for so many more people -- write some basic HTML, upload it to one of a million platforms of your choice with a click, and you have a testing ground for a product that can grow.

It would be a way for anyone on the internet to build something useful and get it out there without learning a thousand technologies with a thousand nuances.

Comment · 5 years ago
Comment · 5 years ago
It's because of components.

Web app dev has started focusing on single, separate, reusable components instead of trying to design everything on the page at once.

Often, in these components, the HTML, CSS, and JS is still separated, but now (theoretically) you can plug that component in anywhere (even a different app) and, as long as you feed it the right data, it should just work.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton