The best Hacker News stories from Show from the past week
Latest posts:
Low Cost Mini PCs
While searching for mini PCs for my home server, I figured I'd use the eBay API to find the cheapest ones. Inspired by diskprices.com, I built a static site using Eleventy and a python script that uses regex to parse the data. I tried to include as many filters as possible like OS, Wifi, HDMI etc.<p>I would like to add power usage, noise levels, PCIe slots but that data is hard to find.<p>Please let me know if you have any feedback / suggestions.<p>Thanks!
Low Cost Mini PCs
While searching for mini PCs for my home server, I figured I'd use the eBay API to find the cheapest ones. Inspired by diskprices.com, I built a static site using Eleventy and a python script that uses regex to parse the data. I tried to include as many filters as possible like OS, Wifi, HDMI etc.<p>I would like to add power usage, noise levels, PCIe slots but that data is hard to find.<p>Please let me know if you have any feedback / suggestions.<p>Thanks!
Show HN: Typeform alternative, turns Markdown to forms
Show HN: Typeform alternative, turns Markdown to forms
Show HN: An open-source, local-first Webflow for your own app
Hey HN, I’m Kiet, and I’m one of the co-founders of Onlook – an open-sourced desktop app that lets you visually edit your locally running React app, then write your changes back to code in real time.<p>I posted the repo a few months ago [1] when it was just 2 weeks old. Since then, we’ve made some big changes/improvements. I wanted to share some of the updates we’ve made and add more technical details. Here are the three big ones:<p>• Inserting new elements - Draw elements in the live page like a design tool and write them back to code.
• Component detection - Detect when an element is a re-used component and find its usages.
• DOM tree representation - A layers panel similar to the Chrome devtool or Figma.<p>Technical details [2]:<p>Visual editing - Onlook is technically a browser that points to your localhost running the app. It can manipulate the DOM like a Chrome Devtool, and all these changes are injected into the page through a CSS stylesheet or DOM manipulation. The changes are non-persistent until written to code.<p>Write to code - To translate the changes to code, we inject an attribute into the DOM elements at build-time that points back to the code like a source map. The attribute gives us the location of the code block, and the component scope [3]. We then find the code, parse it into an AST, inject the styles, and write it back.<p>Framework support - This technique is framework agnostic as we can swap in a different compiler for another framework [4]. It can work for any codebase as we’re just using open standards that don’t require any custom code. The code generated is written directly into your codebase, locally, so you can always take the output without being locked-in to the tool.<p>Actions - All the changes made are stored as actions. This allows them to be serialized, stored, and reproduced. We did it this way so eventually, we can introduce online collaboration or let an agent generate actions. To do this, we’d just need to serve the locally running page and resolve incoming actions.<p>What’s next?<p>It’s still a bit bare-bones but the support and suggestions from the HN and open-source communities have helped us a lot with our direction. Now that we’ve built the core engine, we can start doing some cooler visual builder features, fulfilling the “Webflow” part of our mission such as [5]:<p>• Detecting CSS variables in the page and letting you use them as “design tokens” in the UI.
• Duplicating a page and A/B testing designs before committing to code.
• Creating new components directly in the canvas.
• Creating a front-end project from scratch using Onlook.<p>Some things we’re considering, but aren’t sure about yet:<p>• Offer hosting directly from the app.
• Collaboration such as real-time edits, comments, and share page as a prototype.<p>I’d love to hear your thoughts/feedback. This project continues to be a blast to work on and the community response has been awesome. Thank you to everyone who has tried out and contributed to the repo :)<p>_________<p>[1] <a href="https://news.ycombinator.com/item?id=40904862">https://news.ycombinator.com/item?id=40904862</a><p>[2] <a href="https://github.com/onlook-dev/onlook/wiki/Architecture">https://github.com/onlook-dev/onlook/wiki/Architecture</a><p>[3] The attribute looks something like this:<p><pre><code> data-onlook-id="eJxNjUEKwzAMBP+ic6gOKT3k2i+kDzC2aEwcKVgyDQT/vU5pS067sMvMDl6WVZjYYIC7y2GMlgg6IA6je8LAJaUOVmdTO+BDKSvOkWwSfEme1+Q8oXASmVGthCgYaBFFps3wT1csEX3jX0y3hldz2T6C/VAd4SWVhWG4dpAiUyt9/R7Pc/+b+1ut9Q33rUM5"
</code></pre>
And decodes to this:<p><pre><code> {"component":"Dashboard","endTag":{"end":{"column":10,"line":620},"start":{"column":5,"line":620}},"path":"/Users/kietho/workplace/onlook/studio/demos/next/components/dashboard.tsx","startTag":{"end":{"column":67,"line":69},"start":{"column":5,"line":69}}}
</code></pre>
[4] We’re only supporting a few versions of React at the moment for early focus: <a href="https://github.com/onlook-dev/onlook/tree/main/demos">https://github.com/onlook-dev/onlook/tree/main/demos</a><p>[5] <a href="https://github.com/onlook-dev/onlook/wiki/Roadmap">https://github.com/onlook-dev/onlook/wiki/Roadmap</a>
Show HN: An open-source, local-first Webflow for your own app
Hey HN, I’m Kiet, and I’m one of the co-founders of Onlook – an open-sourced desktop app that lets you visually edit your locally running React app, then write your changes back to code in real time.<p>I posted the repo a few months ago [1] when it was just 2 weeks old. Since then, we’ve made some big changes/improvements. I wanted to share some of the updates we’ve made and add more technical details. Here are the three big ones:<p>• Inserting new elements - Draw elements in the live page like a design tool and write them back to code.
• Component detection - Detect when an element is a re-used component and find its usages.
• DOM tree representation - A layers panel similar to the Chrome devtool or Figma.<p>Technical details [2]:<p>Visual editing - Onlook is technically a browser that points to your localhost running the app. It can manipulate the DOM like a Chrome Devtool, and all these changes are injected into the page through a CSS stylesheet or DOM manipulation. The changes are non-persistent until written to code.<p>Write to code - To translate the changes to code, we inject an attribute into the DOM elements at build-time that points back to the code like a source map. The attribute gives us the location of the code block, and the component scope [3]. We then find the code, parse it into an AST, inject the styles, and write it back.<p>Framework support - This technique is framework agnostic as we can swap in a different compiler for another framework [4]. It can work for any codebase as we’re just using open standards that don’t require any custom code. The code generated is written directly into your codebase, locally, so you can always take the output without being locked-in to the tool.<p>Actions - All the changes made are stored as actions. This allows them to be serialized, stored, and reproduced. We did it this way so eventually, we can introduce online collaboration or let an agent generate actions. To do this, we’d just need to serve the locally running page and resolve incoming actions.<p>What’s next?<p>It’s still a bit bare-bones but the support and suggestions from the HN and open-source communities have helped us a lot with our direction. Now that we’ve built the core engine, we can start doing some cooler visual builder features, fulfilling the “Webflow” part of our mission such as [5]:<p>• Detecting CSS variables in the page and letting you use them as “design tokens” in the UI.
• Duplicating a page and A/B testing designs before committing to code.
• Creating new components directly in the canvas.
• Creating a front-end project from scratch using Onlook.<p>Some things we’re considering, but aren’t sure about yet:<p>• Offer hosting directly from the app.
• Collaboration such as real-time edits, comments, and share page as a prototype.<p>I’d love to hear your thoughts/feedback. This project continues to be a blast to work on and the community response has been awesome. Thank you to everyone who has tried out and contributed to the repo :)<p>_________<p>[1] <a href="https://news.ycombinator.com/item?id=40904862">https://news.ycombinator.com/item?id=40904862</a><p>[2] <a href="https://github.com/onlook-dev/onlook/wiki/Architecture">https://github.com/onlook-dev/onlook/wiki/Architecture</a><p>[3] The attribute looks something like this:<p><pre><code> data-onlook-id="eJxNjUEKwzAMBP+ic6gOKT3k2i+kDzC2aEwcKVgyDQT/vU5pS067sMvMDl6WVZjYYIC7y2GMlgg6IA6je8LAJaUOVmdTO+BDKSvOkWwSfEme1+Q8oXASmVGthCgYaBFFps3wT1csEX3jX0y3hldz2T6C/VAd4SWVhWG4dpAiUyt9/R7Pc/+b+1ut9Q33rUM5"
</code></pre>
And decodes to this:<p><pre><code> {"component":"Dashboard","endTag":{"end":{"column":10,"line":620},"start":{"column":5,"line":620}},"path":"/Users/kietho/workplace/onlook/studio/demos/next/components/dashboard.tsx","startTag":{"end":{"column":67,"line":69},"start":{"column":5,"line":69}}}
</code></pre>
[4] We’re only supporting a few versions of React at the moment for early focus: <a href="https://github.com/onlook-dev/onlook/tree/main/demos">https://github.com/onlook-dev/onlook/tree/main/demos</a><p>[5] <a href="https://github.com/onlook-dev/onlook/wiki/Roadmap">https://github.com/onlook-dev/onlook/wiki/Roadmap</a>
Show HN: Homemade automated solar concentrator
Hi HN!<p>I quit my job two years ago to have more time to work on my side projects.<p>The main one is an automated solar concentrator.<p>I've just open-sourced it, it's not perfect nor finished, and I still have a lot of ideas for further development, but I'm interested in knowing what you think of it.<p>There are many applications where concentrated solar power could be a viable environmental and economic solution, I hope this technology will one day be more widely used.<p>Feel free to give any feedback and ask questions.
Show HN: Homemade automated solar concentrator
Hi HN!<p>I quit my job two years ago to have more time to work on my side projects.<p>The main one is an automated solar concentrator.<p>I've just open-sourced it, it's not perfect nor finished, and I still have a lot of ideas for further development, but I'm interested in knowing what you think of it.<p>There are many applications where concentrated solar power could be a viable environmental and economic solution, I hope this technology will one day be more widely used.<p>Feel free to give any feedback and ask questions.
Show HN: IPA, a GUI for exploring inner details of PDFs
Show HN: IPA, a GUI for exploring inner details of PDFs
Show HN: Skip – Build native iOS and Android apps from a single Swift codebase
Hello Hacker News. I'm Marc, one half of the team that created skip.tools. Skip is a tool that transpiles your SwiftUI iOS app into a Kotlin Jetpack Compose app, and enables you to use a single language to create a complete app that reaches the entire mobile marketplace.<p>What it is: Skip stands in contrast to other cross-platform development tools like Flutter, React Native, and Xamarin, in that it enables the creation of genuinely native applications for both of the dominant mobile platforms. It doesn't embed a separate engine or runtime into your app, but instead lets you use pure Swift and SwiftUI to create the iOS side of the app (as per Apple's recommended best practices for creating iOS apps), and transpiles it into a pure Kotlin and Jetpack Compose app for the Android side (which is Google's recommendation for building Android apps). So your application will use platform-native controls and will automatically have all the affordances provided by the platform vendor: animations, accessibility, and future-proof evolution alongside OS updates.<p>How it works: you build a Skip app using the same tools that you use to create a standard iOS app: Xcode, Swift, and SwiftUI. Skip augments this workflow with a Swift Package Manager plugin called "skipstone", which transpiles your Swift into Kotlin each time you build your app, and launches the Android app side-by-side with the iOS app each time you run the app. The transpilation works not just on your primary app module, but also transitively processes all your dependent SwiftPM modules, so you can break complex projects down into individually testable sub-modules containing business logic or UI code. In fact, this is how our own adaptor modules for the standard frameworks are structured: SkipFoundation adapts the Foundation framework and SkipUI adapts the SwiftUI framework, so the same familiar API can be used when building the app. And there's a GitHub ecosystem of open-source modules supporting popular frameworks, including SQLite, Firebase, Lottie, and many other common building blocks of modern apps.<p>Over the past year Skip has evolved into a fully-capable solution for creating best-in-class apps for both iOS and Android. And today we are delighted to announce the release of version 1.0, meaning that it is ready for production use.<p>We have a wealth of videos and documentation available at <a href="https://skip.tools" rel="nofollow">https://skip.tools</a>, and I'll be around to field any questions that any of you might have. Thanks in advance for taking a look!<p>Home: <a href="https://skip.tools" rel="nofollow">https://skip.tools</a><p>FAQ: <a href="https://skip.tools/docs/faq/" rel="nofollow">https://skip.tools/docs/faq/</a><p>GitHub: <a href="https://github.com/skiptools/">https://github.com/skiptools/</a>
Show HN: Skip – Build native iOS and Android apps from a single Swift codebase
Hello Hacker News. I'm Marc, one half of the team that created skip.tools. Skip is a tool that transpiles your SwiftUI iOS app into a Kotlin Jetpack Compose app, and enables you to use a single language to create a complete app that reaches the entire mobile marketplace.<p>What it is: Skip stands in contrast to other cross-platform development tools like Flutter, React Native, and Xamarin, in that it enables the creation of genuinely native applications for both of the dominant mobile platforms. It doesn't embed a separate engine or runtime into your app, but instead lets you use pure Swift and SwiftUI to create the iOS side of the app (as per Apple's recommended best practices for creating iOS apps), and transpiles it into a pure Kotlin and Jetpack Compose app for the Android side (which is Google's recommendation for building Android apps). So your application will use platform-native controls and will automatically have all the affordances provided by the platform vendor: animations, accessibility, and future-proof evolution alongside OS updates.<p>How it works: you build a Skip app using the same tools that you use to create a standard iOS app: Xcode, Swift, and SwiftUI. Skip augments this workflow with a Swift Package Manager plugin called "skipstone", which transpiles your Swift into Kotlin each time you build your app, and launches the Android app side-by-side with the iOS app each time you run the app. The transpilation works not just on your primary app module, but also transitively processes all your dependent SwiftPM modules, so you can break complex projects down into individually testable sub-modules containing business logic or UI code. In fact, this is how our own adaptor modules for the standard frameworks are structured: SkipFoundation adapts the Foundation framework and SkipUI adapts the SwiftUI framework, so the same familiar API can be used when building the app. And there's a GitHub ecosystem of open-source modules supporting popular frameworks, including SQLite, Firebase, Lottie, and many other common building blocks of modern apps.<p>Over the past year Skip has evolved into a fully-capable solution for creating best-in-class apps for both iOS and Android. And today we are delighted to announce the release of version 1.0, meaning that it is ready for production use.<p>We have a wealth of videos and documentation available at <a href="https://skip.tools" rel="nofollow">https://skip.tools</a>, and I'll be around to field any questions that any of you might have. Thanks in advance for taking a look!<p>Home: <a href="https://skip.tools" rel="nofollow">https://skip.tools</a><p>FAQ: <a href="https://skip.tools/docs/faq/" rel="nofollow">https://skip.tools/docs/faq/</a><p>GitHub: <a href="https://github.com/skiptools/">https://github.com/skiptools/</a>
Show HN: Skip – Build native iOS and Android apps from a single Swift codebase
Hello Hacker News. I'm Marc, one half of the team that created skip.tools. Skip is a tool that transpiles your SwiftUI iOS app into a Kotlin Jetpack Compose app, and enables you to use a single language to create a complete app that reaches the entire mobile marketplace.<p>What it is: Skip stands in contrast to other cross-platform development tools like Flutter, React Native, and Xamarin, in that it enables the creation of genuinely native applications for both of the dominant mobile platforms. It doesn't embed a separate engine or runtime into your app, but instead lets you use pure Swift and SwiftUI to create the iOS side of the app (as per Apple's recommended best practices for creating iOS apps), and transpiles it into a pure Kotlin and Jetpack Compose app for the Android side (which is Google's recommendation for building Android apps). So your application will use platform-native controls and will automatically have all the affordances provided by the platform vendor: animations, accessibility, and future-proof evolution alongside OS updates.<p>How it works: you build a Skip app using the same tools that you use to create a standard iOS app: Xcode, Swift, and SwiftUI. Skip augments this workflow with a Swift Package Manager plugin called "skipstone", which transpiles your Swift into Kotlin each time you build your app, and launches the Android app side-by-side with the iOS app each time you run the app. The transpilation works not just on your primary app module, but also transitively processes all your dependent SwiftPM modules, so you can break complex projects down into individually testable sub-modules containing business logic or UI code. In fact, this is how our own adaptor modules for the standard frameworks are structured: SkipFoundation adapts the Foundation framework and SkipUI adapts the SwiftUI framework, so the same familiar API can be used when building the app. And there's a GitHub ecosystem of open-source modules supporting popular frameworks, including SQLite, Firebase, Lottie, and many other common building blocks of modern apps.<p>Over the past year Skip has evolved into a fully-capable solution for creating best-in-class apps for both iOS and Android. And today we are delighted to announce the release of version 1.0, meaning that it is ready for production use.<p>We have a wealth of videos and documentation available at <a href="https://skip.tools" rel="nofollow">https://skip.tools</a>, and I'll be around to field any questions that any of you might have. Thanks in advance for taking a look!<p>Home: <a href="https://skip.tools" rel="nofollow">https://skip.tools</a><p>FAQ: <a href="https://skip.tools/docs/faq/" rel="nofollow">https://skip.tools/docs/faq/</a><p>GitHub: <a href="https://github.com/skiptools/">https://github.com/skiptools/</a>
Show HN: Remove-bg – open-source remove background using WebGPU
Yesterday,I saw a post in X asking for a self-hostable background remover service. I was thinking, can we make it work by using WebGPU? So it will run in the browser and doesn't require any server/queue to run<p>After a couple of hours, I created this and published the source code on
<a href="https://github.com/ducan-ne/remove-bg">https://github.com/ducan-ne/remove-bg</a><p>It's still new so welcome any ideas and contributions<p>Powered by WebGPU and Transformer.js (RMBG V1.4 model)
Show HN: Remove-bg – open-source remove background using WebGPU
Yesterday,I saw a post in X asking for a self-hostable background remover service. I was thinking, can we make it work by using WebGPU? So it will run in the browser and doesn't require any server/queue to run<p>After a couple of hours, I created this and published the source code on
<a href="https://github.com/ducan-ne/remove-bg">https://github.com/ducan-ne/remove-bg</a><p>It's still new so welcome any ideas and contributions<p>Powered by WebGPU and Transformer.js (RMBG V1.4 model)
Show HN: Visualize database schemas with a single query
Hey HN! We are Jonathan & Guy, and we are happy to share a project we’ve been working on. ChartDB is a tool to help developers and data analysts quickly visualize database schemas by generating ER diagrams with just one query.
A unique feature of our product is AI-Powered export for easy migration.
You can give it a try at <a href="https://chartdb.io" rel="nofollow">https://chartdb.io</a> and find the source code on GitHub.
Next steps ---> More AI.
We’d love feedback :)
Show HN: Visualize database schemas with a single query
Hey HN! We are Jonathan & Guy, and we are happy to share a project we’ve been working on. ChartDB is a tool to help developers and data analysts quickly visualize database schemas by generating ER diagrams with just one query.
A unique feature of our product is AI-Powered export for easy migration.
You can give it a try at <a href="https://chartdb.io" rel="nofollow">https://chartdb.io</a> and find the source code on GitHub.
Next steps ---> More AI.
We’d love feedback :)
Show HN: Visualize database schemas with a single query
Hey HN! We are Jonathan & Guy, and we are happy to share a project we’ve been working on. ChartDB is a tool to help developers and data analysts quickly visualize database schemas by generating ER diagrams with just one query.
A unique feature of our product is AI-Powered export for easy migration.
You can give it a try at <a href="https://chartdb.io" rel="nofollow">https://chartdb.io</a> and find the source code on GitHub.
Next steps ---> More AI.
We’d love feedback :)
Show HN: Ruroco – like port knocking, but better
Hey there HN!<p>ruroco (RUn RemOte COmmand) is a tool that lets you execute commands on a server by sending UDP packets (instead of knocking on ports).<p>the tool consist of 3 binaries:<p>- client -> runs on your notebook/computer and sends the UDP packets<p>- server -> receives the UDP packets and makes sure that they are valid<p>- commander -> runs the command encoded by the data of the UDP packet if it's valid<p>The commands are configured on the server side, so the client does not define what is going to be executed, it only picks from existing commands.<p>I use this tool to open up the SSH port on my server via ufw, but only for the IP address from where I'm connecting, so the SSH port appears closed for everyone else, except me.<p>This is my very first "real" rust project, so any feedback is highly appreciated :)<p>Enjoy!
Show HN: Ruroco – like port knocking, but better
Hey there HN!<p>ruroco (RUn RemOte COmmand) is a tool that lets you execute commands on a server by sending UDP packets (instead of knocking on ports).<p>the tool consist of 3 binaries:<p>- client -> runs on your notebook/computer and sends the UDP packets<p>- server -> receives the UDP packets and makes sure that they are valid<p>- commander -> runs the command encoded by the data of the UDP packet if it's valid<p>The commands are configured on the server side, so the client does not define what is going to be executed, it only picks from existing commands.<p>I use this tool to open up the SSH port on my server via ufw, but only for the IP address from where I'm connecting, so the SSH port appears closed for everyone else, except me.<p>This is my very first "real" rust project, so any feedback is highly appreciated :)<p>Enjoy!