[{"data":1,"prerenderedAt":532},["ShallowReactive",2],{"project-33922754":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":49,"post_text":51,"what":52,"said":93,"maker_in_thread":219,"shape":229,"grid":233,"attempts":496,"same_week":497,"maker_shows":41,"maker_hidden":525,"reader_version":526,"card":527},"33922754","Pynecone","Web Apps in Pure Python","title","Show HN: Pynecone – Web Apps in Pure Python","https:\u002F\u002Fgithub.com\u002Fpynecone-io\u002Fpynecone","github.com","picklelo",1670601632,2022,209,97,269,2570,11,"notable","dev_tools","web framework","library",[24,25,26,27],"python web framework","full-stack python","python frontend","react python","curious",-0.003,{"positive":31,"neutral":32,"mixed":33,"critical":34},17,32,0,15,64,{"design":37,"docs":40,"execution":42,"idea":44,"performance":46,"pricing":47,"privacy":48},{"positive":38,"critical":39},3,5,{"positive":41,"critical":41},1,{"positive":33,"critical":43},2,{"positive":45,"critical":39},8,{"positive":33,"critical":33},{"positive":33,"critical":41},{"positive":33,"critical":41},[38,33,38,33,38,38,41,33,39,38,39,38,33,39,41,39,39,38,41,38,38,38,39,38,41,41,38,41,38,39,39,41,38,41,33,39,38,38,38,50],4,"Hello, we just launched the alpha release of Pynecone - a way to build full-stack web apps in pure Python. The framework is easy to get started with even without previous web dev experience and is completely open source \u002F free to use.\n\nWe made Pynecone for Python devs who want to make web apps, but don’t want the overhead of having to learn or use Javascript. We wanted more flexibility than existing Python frameworks like Streamlit\u002FDash that don't allow the user to make real, customizable web apps.\n\nWith Pynecone, you can make anything from a small data science\u002Fpython project to a full-scale, ",{"problem":53,"audience":59,"pricing":63,"motivation":67,"time_to_build":71,"stack":72,"openness":90,"stage":91,"team_size":92},{"value":54,"source":55,"evidence":56},"Lets Python developers build full web apps without learning JavaScript","maker",[57],{"id":58},"post",{"value":60,"source":55,"evidence":61},"Python developers who want to build web apps without JavaScript",[62],{"id":58},{"value":64,"source":55,"evidence":65},"Free to use",[66],{"id":58},{"value":68,"source":55,"evidence":69},"Give Python devs web app building without JavaScript, more flexibility than Streamlit\u002FDash",[70],{"id":58},null,[73,77,86],{"value":74,"source":55,"evidence":75},"Python",[76],{"id":58},{"value":78,"source":55,"evidence":79},"NextJS\u002FReact frontend",[80,83],{"id":81,"by":11,"text":82},"33924124","I haven't used Phoenix personally, but it looks similar. In Pynecone, the frontend compiles down to a NextJS\u002FReact app, and the backend is a FastAPI server. Events are sent as…",{"id":84,"by":11,"text":85},"33924044","Haha fair point. Our goal is that the developer will never see or write Javascript. But behind the scenes Pynecone compiles the app's frontend down to a NextJS app. We're trying…",{"value":87,"source":55,"evidence":88},"FastAPI backend",[89],{"id":81,"by":11,"text":82},"open_source","beta","team",{"praise":94,"objections":118,"requests":152,"questions":173,"alternatives":196},[95,107],{"value":96,"source":97,"evidence":98},"Lets Python developers build frontends without JavaScript","commenter",[99,103],{"id":100,"by":101,"text":102},"33937045","upbeat_general","As someone who used to do webdev and now works in Python, I've been wanting something like this for a while. The barrier of writing both a front and backend for a simple demo\u002Fviz…",{"id":104,"by":105,"text":106},"33923790","makestuff","Seems really cool for putting a frontend on a data science app. All of my data processing code is in python already, but this would be really cool to add a dashboard or other…",{"value":108,"source":97,"evidence":109},"Clear explanation of design and components look polished",[110,114],{"id":111,"by":112,"text":113},"33925696","stevesimmons","Thanks for highlighting this comment. A succinct explanation of the underlying design is the best way to get me from \"oh that's cute\" to \"wow, I want to try this\".",{"id":115,"by":116,"text":117},"33926132","FranklinMaillot","I'm familiar with Anvil, this seems to fill the same niche. Anvil offers a hosted option and lets you design the layout in a graphical interface which makes it compete with low…",[119,130,145],{"value":120,"source":97,"evidence":121},"Requires NodeJS despite being pure Python",[122,126],{"id":123,"by":124,"text":125},"33923941","TekMol","\"Pure Python\" but requires NodeJS?",{"id":127,"by":128,"text":129},"33927813","callmeed","\"Pure Python\" \"Requires NodeJS\"",{"value":131,"source":97,"evidence":132},"Templating in code and nested cond() API seem fragile",[133,137,141],{"id":134,"by":135,"text":136},"33928797","mark_l_watson","I usually like frameworks with less magic, Sinatra for Ruby, Spock for Haskell, or Flask for Python. That said, this looks like something I want to try. I learned SwiftUI about…",{"id":138,"by":139,"text":140},"33924942","jamesdutc","Congratulations on your release! Don't let my skepticism (below) to detract from your accomplishment. I am deeply skeptical not only about this tool in particular but about these…",{"id":142,"by":143,"text":144},"33925505","thatwasunusual","Sorry, but when you do templating inside the code you lose me immediately. I expect a reply like \"but you don't have to\", but damage is already done.",{"value":146,"source":97,"evidence":147},"Leaky CSS-style abstractions in Python",[148],{"id":149,"by":150,"text":151},"33923996","xcdzvyn","> width=\"100%\", > height=\"100vh\", > bg=\"radial-gradient(circle at 22% 11%,rgba(62, 180, 137,.20),hsla(0,0%,100%,0) 19%)\", Smells like leaky abstractions. Surely it's possible to…",[153,159,166],{"value":154,"source":55,"evidence":155},"Pythonic styling API",[156],{"id":157,"by":11,"text":158},"33924090","Our components can be styled using any valid CSS which is what you see here. We do have plans in the future to make a more Pythonic API for styling :) Thanks for pointing out the…",{"value":160,"source":97,"evidence":161},"Remove NodeJS dependency",[162],{"id":163,"by":164,"text":165},"33924057","apetuskey","This is actually something we are working on getting rid of. What separates us from other python frameworks is that we compile down to a nextjs\u002Freact app (the user never sees…",{"value":167,"source":97,"evidence":168},"Three.js or WebGL components",[169],{"id":170,"by":171,"text":172},"33924818","andybak","Any plans for three.js or any kind of WebGL component?",[174,189],{"value":175,"source":97,"evidence":176},"How does it compare to Streamlit, Anvil, Flet or Phoenix LiveView",[177,181,185],{"id":178,"by":179,"text":180},"33926975","doteka","It seems once a year somebody writes a library to do this. It never takes off, because the main difficulty in developing web applications is not “learning JavaScript“. I have 3…",{"id":182,"by":183,"text":184},"33926949","appveyor","Congrats on the launch! Great project and nice execution! Very similar to what we do on Flet: https:\u002F\u002Fflet.dev The major difference is that Flet uses Flutter to build UI and can…",{"id":186,"by":187,"text":188},"33923753","ollien","Neat! How does this compare to Phoenix\u002FLiveView? Is it similar in principle?",{"value":190,"source":97,"evidence":191},"How testing works, e.g. with pytest",[192],{"id":193,"by":194,"text":195},"33981978","asah","Curious how testing works... If i could use pytest (somehow) that would be a game changer vs typical frontend testing hell.",[197,204,208,212],{"value":198,"source":97,"evidence":199},"Streamlit",[200,201],{"id":178,"by":179,"text":180},{"id":202,"by":164,"text":203},"33927228","You make a couple points here what do you mean \"it never takes off\" Streamlit was a very successful project in terms of number of users and is still growing today. I talk about…",{"value":205,"source":97,"evidence":206},"Anvil",[207],{"id":115,"by":116,"text":117},{"value":209,"source":97,"evidence":210},"Flet",[211],{"id":182,"by":183,"text":184},{"value":213,"source":97,"evidence":214},"Django with HTMX",[215],{"id":216,"by":217,"text":218},"33926029","theptip","It's worth noting you can do something similar with Django & HTMX. These two combine to provide a DX in the same rough direction as Rails Hotwire and Phoenix LiveView (although…",{"comments":220,"answered":39,"key":221},9,[222,223,226],{"id":157,"text":158},{"id":224,"text":225},"33924482","Yes this is a great use case we're targeting. I've used Streamlit in the past and it's easy to get started with, but I found limitations in terms of components, styling, and…",{"id":227,"text":228},"33929432","Thanks so much for your kind words! We think our approach can really simplify web development and make it accessible to a larger community. Excited to see what you build with it!",{"commenters":230,"max_depth":39,"maker_replies":220,"first_comment_mins":231,"lifespan_hours":232},59,70,115,[234,238,242,245,248,250,254,257,259,261,263,267,271,273,276,277,279,281,282,286,289,291,292,295,297,301,302,304,308,311,314,317,321,323,324,328,331,334,337,339,341,342,344,346,348,349,351,352,355,357,361,365,367,372,374,378,380,383,385,387,391,394,397,401,403,406,408,411,415,420,422,426,428,430,434,437,439,441,443,445,447,448,452,455,457,459,462,466,469,472,474,476,480,482,485,488,492,494],[235,33,38,236,237,33],"33925253","project\u002Fneutral\u002Fdesign","rahimnathwani",[239,33,33,240,241,33],"33925585","commenter\u002Fneutral\u002Fnone","zackees",[243,33,33,240,244,33],"33925601","folkrav",[246,33,33,240,247,33],"33929274","bgm1975",[111,33,39,249,112,33],"project\u002Fpositive\u002Fdocs",[251,33,41,252,253,33],"33928422","project\u002Fcritical\u002Fexecution","dandigangi",[255,33,38,256,164,33],"33928608","project\u002Fneutral\u002Fexecution",[258,33,33,240,253,33],"33929302",[260,33,33,240,164,33],"33930427",[216,41,38,262,217,33],"project\u002Fneutral\u002Fidea",[264,41,39,265,266,33],"33926335","project\u002Fpositive\u002Fdesign","kortex",[268,41,41,269,270,33],"33926685","project\u002Fcritical\u002Fdesign","bb88",[272,41,38,236,217,33],"33928083",[274,41,33,240,275,33],"33928791","do_anh_tu",[149,43,41,269,150,33],[157,43,33,278,11,41],"maker\u002Fneutral\u002Fdesign",[178,38,41,280,179,33],"project\u002Fcritical\u002Fidea",[202,38,33,240,164,33],[283,38,33,284,285,33],"33927695","other\u002Fneutral\u002Fnone","austinpena",[287,38,33,284,288,33],"33929028","askvictor",[100,38,39,290,101,33],"project\u002Fpositive\u002Fidea",[104,50,39,290,105,33],[293,50,38,262,294,33],"33924235","tomrod",[224,50,33,296,11,41],"maker\u002Fneutral\u002Fidea",[298,50,38,299,300,33],"33931943","project\u002Fneutral\u002Fnone","d4rkp4ttern",[182,39,39,290,183,33],[303,39,38,278,164,33],"33927352",[305,39,38,306,307,33],"33978157","project\u002Fneutral\u002Fperformance","dospunk",[309,39,33,240,310,33],"33928233","sukh",[312,39,33,240,313,33],"33930291","digitalsankhara",[315,39,33,240,316,33],"33930908","ofrzeta",[318,319,39,290,320,33],"33929359",6,"vishnudeva",[322,319,33,240,164,33],"33929412",[227,319,33,240,11,41],[325,326,41,280,327,33],"33931816",7,"bigpeopleareold",[329,326,38,262,330,33],"33936297","jennasys",[332,45,39,290,333,33],"33925997","artembugara",[335,45,33,240,336,33],"33926037","jerrygenser",[338,45,33,240,333,33],"33931542",[340,45,33,240,11,41],"33926102",[115,220,39,265,116,33],[343,220,38,296,164,33],"33926200",[134,345,38,236,135,33],10,[347,345,33,278,11,41],"33929469",[123,18,41,252,124,33],[84,18,33,350,11,41],"maker\u002Fneutral\u002Fnone",[163,18,38,350,164,33],[353,18,38,256,354,33],"33925987","samwillis",[356,18,33,240,164,33],"33926253",[358,359,39,290,360,33],"33944476",12,"matijash",[362,363,41,269,364,33],"33929458",13,"dragonwriter",[366,363,33,284,330,33],"33936035",[368,369,38,370,371,33],"33930624",14,"project\u002Fneutral\u002Fdocs","abdullahkhalids",[373,369,38,350,164,33],"33937205",[375,34,39,376,377,33],"33926915","project\u002Fpositive\u002Fnone","mring33621",[379,34,33,240,164,33],"33928491",[381,382,38,236,313,33],"33924834",16,[384,382,33,278,11,41],"33924931",[386,382,41,269,313,33],"33930344",[388,31,41,389,390,33],"33942682","project\u002Fcritical\u002Fdocs","nier",[392,393,38,262,330,33],"33936325",18,[395,393,33,396,164,33],"33937214","commenter\u002Fneutral\u002Fidea",[398,399,41,400,171,33],"33924705",19,"project\u002Fcritical\u002Fpricing",[402,399,38,350,164,33],"33924724",[404,399,38,296,405,33],"33924798","nothrowaways",[407,399,38,350,164,33],"33924819",[409,399,38,350,410,33],"33925098","analog31",[412,399,41,413,414,33],"33925548","project\u002Fcritical\u002Fprivacy","nomel",[416,417,33,418,419,33],"33928778",20,"other\u002Fcritical\u002Fidea","the_cat_kittles",[193,421,38,299,194,33],21,[423,424,38,299,425,33],"33924854",22,"dankle",[427,424,39,290,164,33],"33924877",[429,424,39,376,425,33],"33931047",[431,432,39,265,433,33],"33924325",23,"rmorey",[435,432,39,436,164,33],"33924361","maker\u002Fpositive\u002Fnone",[138,438,41,280,139,33],24,[440,438,38,296,164,33],"33925038",[127,442,41,280,128,33],25,[444,442,38,296,164,33],"33927837",[186,446,38,299,187,33],26,[81,446,33,278,11,41],[449,450,41,280,451,33],"33925446",27,"squarefoot",[453,450,33,284,454,33],"33925698","cooperadymas",[456,450,33,284,164,33],"33925960",[458,450,33,284,451,33],"33935761",[460,450,33,284,461,33],"33925750","killingtime74",[463,464,39,290,465,33],"33928674",28,"kgbcia",[467,468,38,256,171,33],"33924949",29,[470,468,33,471,11,41],"33925108","maker\u002Fneutral\u002Fexecution",[170,473,38,262,171,33],30,[475,473,38,296,164,33],"33924857",[477,478,38,262,479,33],"33924813",31,"SleekEagle",[481,478,38,296,164,33],"33924930",[483,32,38,299,484,33],"33925474","augasur",[486,32,33,284,487,33],"33925699","boxed",[489,490,39,376,491,33],"33925443",33,"nadavwiz",[493,490,39,436,164,33],"33925508",[142,495,41,269,143,33],34,[],[498,503,507,512,516,520],{"id":499,"name":500,"points":501,"category":502},"33923907","LearnGPT",352,"ai",{"id":504,"name":505,"points":506,"category":502},"33910863","Hello (sayhello.so)",318,{"id":508,"name":509,"points":510,"category":511},"33931971","Pg_CRDT",296,"data",{"id":513,"name":514,"points":515,"category":511},"33969908","XetHub",279,{"id":517,"name":518,"points":519,"category":20},"33906520","Ezy",155,{"id":521,"name":522,"points":523,"category":524},"33985550","Juice Labs",138,"infrastructure",false,"v2",{"id":528,"name":5,"line":6,"ai":525,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":33,"top":18,"kw":529,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":530,"url":9,"mix":531,"praise":96,"objection":120,"sub":21},33922754,[24,25,26,27],"3030331053530515531333531131355131053334",[31,32,33,34],1794036628301]