TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Pynecone – Performant, customizable web apps in pure Python

250 pointsby giladabout 2 years ago

28 comments

anigbrowlabout 2 years ago
<i>It’s just Python.<p>The app state is just a class. State updates are methods in the class. And the UI is a reflection of the state.</i><p>It&#x27;s rare to see this sort of clarity on a landing page. Even more impressed to see that it carried over into the documentation, which is excellent.<p>I&#x27;ve been a fan of the plotly&#x2F;Dash framework, but this looks like an exciting alternative, feeling more immediately accessible without some of the quirks (like the pragmatic but weird-feeling 12 virtual columns, for example). I look forward to re-implementing some existing projects for comparison.
评论 #35823288 未加载
评论 #35821134 未加载
评论 #35822538 未加载
评论 #35824703 未加载
BiteCode_devabout 2 years ago
While I applaud the attempt, stating it&#x27;s &quot;performant&quot; is misleading, as any calculation that could happen client side means a call to the network with Pynecone.<p>You can see it in their demo:<p><a href="https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;getting-started&#x2F;introduction">https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;getting-started&#x2F;introduction</a><p>The counter increment should be instantaneous, but instead, it goes through websocket, calls a python function on the server, and comes back.<p>In which case the difference between this and django+htmx is not huge: mostly you get widgets in pure Python, and websocket is not experimental.<p>Not sure it&#x27;s worth giving up the whole django and htmx community to get locked in their widget set.<p>I&#x27;m not saying this to hit on the project, I do think pycone is a cool idea and it&#x27;s nice to see people trying to make web dev more accessible.<p>But I want people to know what they are signing for.
abraxasabout 2 years ago
I played with it and subsequently turned my back on it in favor of alpine.js and some vanilla JavaScript to handle client state with Flask on the back end.<p>The reason I gave up on Pynecone is that these things transpile to other already high abstraction frameworks like React. This is all good and well until something goes wrong and you now have more layers to troubleshoot. Another huge downside to this approach is that now I have to deal with two sets of build and deployment tools: python and node. And given that I have few fond memories of the node tool set from previous project, I refuse to incur this complexity unless it&#x27;s absolutely unavoidable.<p>If someone actually built something like Pynecone that targeted html&#x2F;dom&#x2F;js directly instead of wrapping node&#x2F;react&#x2F;next I would be the first to hop on the bandwagon. Because the API is very good but the way that sausage is made ain&#x27;t pretty.
评论 #35823168 未加载
评论 #35823568 未加载
评论 #35823347 未加载
tymonPartyLateabout 2 years ago
It&#x27;s a beautiful project and close to the Holy grail of fullstack software development (a single framework for building modern Web apps).<p>But, be advised that it&#x27;s not production ready and quite unstable yet.<p>this week my deploy script was broken because version 0.1.26 was un-released. Which broke my docker file build with pinned dependencies.<p>The file upload component was changed a few times so my UI with file uploads silently stopped working.<p>I had some issues when state binding input components. Which lead to the backspace key no longer working inside a text box.<p>The websocket state updates can make the ui feel sluggish.<p>Despite all that, I love this framework and will continue tinkering with it. It hope it can grow to maturity before people lose interest!
评论 #35821710 未加载
thunkyabout 2 years ago
I followed the link to try the increment&#x2F;decrement example&#x2F;demo from the landing page (<a href="https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;getting-started&#x2F;introduction">https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;getting-started&#x2F;introduction</a>). There is probably almost a full one second delay between the time I click the &quot;increment&quot; button and the updated count being rendered.<p>Not seeing any network requests so I can&#x27;t imagine why it would be so laggy.
评论 #35821198 未加载
评论 #35823229 未加载
评论 #35821703 未加载
charles_fabout 2 years ago
&gt; Now everyone can work across the full-stack. &gt; &gt; With Pynecone every engineer can work across the whole stack allowing for a more efficient and productive workflow.<p>I assume what is meant is that having a single language is allowing people who know Python to work &quot;full stack&quot;. I don&#x27;t believe in that argument<p>1. JS has brought you that since Node.<p>2. You can transpile Python to JS, the fact that it&#x27;s the same language is only a marginal gain. Certainly you&#x27;ll skip the few quirks of JS, but front end dev is arguably another paradigm from back-end, using the same language is not the biggest hurdle to learning front end dev.<p>3. This is proposing to learn a specific and niche framework that will probably not used in your next project or job, rather than spending similar time learning the proper, mainstream tools of front-end.
评论 #35825460 未加载
mixmastamykabout 2 years ago
How does this compare with Anvil, besides being newer? Anvil was shown off here a few years back:<p><a href="https:&#x2F;&#x2F;anvil.works&#x2F;" rel="nofollow">https:&#x2F;&#x2F;anvil.works&#x2F;</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15584124" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15584124</a>
mellosoulsabout 2 years ago
Recent previous discussions include:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=33922754" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=33922754</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=35136827" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=35136827</a>
yallpendantoolsabout 2 years ago
Awesome! Now that I&#x27;ve seen this framework, it tempts me though...<p>I have this personal side project which in the wee days of me career I wrote in CherryPy; I love Python and have been exploring frameworks. I didn&#x27;t really get a lot written in it because eventually I realized the project is frontend-heavy and I was never in the mood to write the JS for it.<p>Recently I had the need for this side project again so I thought, why not rewrite it using a framework that would avoid me having to deal with the madness that is the Node.js ecosystem? For one reason or another I ended up with Vaadin.<p>I&#x27;ve nothing against Java. If it works, it works. I got over the initial bump that is Spring and I got a &quot;core&quot; backend running, with tests too. My grievance with it is the usual Java fault of needing to write a lot of boilerplate just to shoehorn my app into the framework&#x27;s philosophy. (Man, part of my initial consideration was even the tooling, editor, autocomplete, and all that, because damn me if I try Spring without these modern conveniences!)<p>And this...this is all the things that attracted me to Vaadin---but in Python! I am so tempted to rewrite again. My experience and your documentation should make this a two hour job, right? Right?<p>(&quot;Haha, I&#x27;m in danger,&quot; my side project chuckles like Ralph Wiggum, staring blankly at <a href="https:&#x2F;&#x2F;www.commitstrip.com&#x2F;en&#x2F;2014&#x2F;11&#x2F;25&#x2F;west-side-project-story&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.commitstrip.com&#x2F;en&#x2F;2014&#x2F;11&#x2F;25&#x2F;west-side-project-...</a>)
worikabout 2 years ago
Don&#x27;t. Just do not do this<p>Python has a place in scripting<p>Because you can, does not mean you should, build full applications with it<p>It is a colossal waste of resources. It leads to genuine problems as it gets bigger that you will only find when you have considerable sunk costs.<p>This is a terrible idea, it was a terrible idea in 1995 when people did this with Perl, it is a terrible idea now<p>Use Python for what it is good at, not for what it is dreadful at
评论 #35821991 未加载
评论 #35822202 未加载
评论 #35826306 未加载
评论 #35823264 未加载
评论 #35822037 未加载
评论 #35822415 未加载
dennisyabout 2 years ago
I love the idea of this!<p>However whenever I see such good abstraction I always worry that when my project gets big and complicated there will be things which are not possible to do, and at that point switching will be super expensive.
评论 #35821646 未加载
PurpleRamenabout 2 years ago
After testing it a bit, why the f** is this so wasteful? Just starting the base helloworld-project is already wasting 30% CPU on idle. And apparently is running multiple servers, so I&#x27;m not even sure whether this is the whole story. How do they except anyone do use this for real?
kmarcabout 2 years ago
Just a heads up, on mobile Firefox (Android) I opened the increment&#x2F;decrement example and after pressing any of the buttons there is a 500ms very long lag.<p>I suppose this is not expected<p>Edit: nevermind, its expected in slow connection due to a client-erver round-trip
bhargavabout 2 years ago
Looking at some of the examples in the docs [1]. Seems very odd that the mixin class they provided essentially lets you use bounded&#x2F;instance variables and methods as class attributes and class method. Nevertheless, this seems very promising and I&#x27;m happy someone spent time on this<p>1: <a href="https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;state&#x2F;overview">https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;state&#x2F;overview</a>
solarkraftabout 2 years ago
It&#x27;s not bad if your server isn&#x27;t far away and you can compromise a bit on UX. A great tool if you need to quickly whip up a UI for some Python code (with more control than those machine learning-focused frameworks give you).<p>Sadly it&#x27;s apparently incompatible with SQLAlchemy 2.0, so I can&#x27;t use it.
评论 #35822316 未加载
nextworddevabout 2 years ago
Seems like a more ambitious Streamlit
评论 #35823363 未加载
ktbwrestlerabout 2 years ago
This looks awesome! Has anyone made a personal portfolio site&#x2F; blog with this yet? Considering jumping from Jekyll: <a href="https:&#x2F;&#x2F;jeffreylikeswebsites.com" rel="nofollow">https:&#x2F;&#x2F;jeffreylikeswebsites.com</a>
alberthabout 2 years ago
Is the “pure Python” comment a jab at Mojo?<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=35790367" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=35790367</a>
评论 #35823601 未加载
dimatorabout 2 years ago
Not to be confused with <a href="https:&#x2F;&#x2F;www.pinecone.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.pinecone.io&#x2F;</a> the vector database, which is also trending.
gjvcabout 2 years ago
<a href="https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;advanced-guide&#x2F;telemetry">https:&#x2F;&#x2F;pynecone.io&#x2F;docs&#x2F;advanced-guide&#x2F;telemetry</a>
yla92about 2 years ago
Looks awesome! Is there a document to learn more about how it works really work under the hood ? I took a look at the source code but have yet to dive deep yet.
fnordpigletabout 2 years ago
I find it odd the front page has pinecone.io and pynecone.io
iamflimflam1about 2 years ago
Not to be confused with pinecone - the vector database guys who just raised $100m
anonymous344about 2 years ago
i never undestood how python can make .exe and other os supported binaries with gui? I tried one (forgot the name) and it looked like shit. Nothing like what you can get with vue+bootstarp or quasar + electron
gragundierabout 2 years ago
DAMMIT WHERE WERE U 3-4 years ago?!
swyxabout 2 years ago
for a second i read this as Pinecone, that 700m vector database
doublextremevilabout 2 years ago
but... how does it work?
atakanabout 2 years ago
sounds impossible to scale. but nice ui though
评论 #35822244 未加载