[{"data":1,"prerenderedAt":491},["ShallowReactive",2],{"project-6495287":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":46,"post_text":48,"what":49,"said":101,"maker_in_thread":223,"shape":235,"grid":240,"attempts":453,"same_week":454,"maker_shows":43,"maker_hidden":483,"reader_version":484,"card":485},"6495287","Harp","A static web server with built in preprocessing","title","Show HN: Introducing Harp – A static web server with built in preprocessing","http:\u002F\u002Fsintaxi.com\u002Fintroducing-harp","sintaxi.com","sintaxi",1380894219,2013,233,75,55,1739,4,"notable","dev_tools","static web server","other",[21,24,25,26,27],"preprocessing","less","layouts partials","static site","curious",-0.137,{"positive":31,"neutral":32,"mixed":33,"critical":34},6,18,0,11,35,{"idea":37,"privacy":38,"design":40,"execution":41,"docs":42,"performance":44},{"positive":18,"critical":18},{"positive":33,"critical":39},1,{"positive":33,"critical":33},{"positive":33,"critical":39},{"positive":43,"critical":43},2,{"positive":33,"critical":45},3,[47,39,45,33,33,39,33,33,33,33,33,45,39,47,33,39,45,45,45,33,39,45,47,45,47,45,33,45,45,39,39,39,45,47,47,45,39,39,45,33],5,null,{"problem":50,"audience":57,"pricing":48,"motivation":63,"time_to_build":48,"stack":67,"openness":98,"stage":99,"team_size":100},{"value":51,"source":52,"evidence":53},"Static sites lack clean URLs, 404 pages and shared layouts without heavy frameworks or generators","maker",[54],{"id":55,"by":11,"text":56},"6495963","I look at it this way, we basically have two types of web servers, static and full-stack web frameworks. What if all you want is a static web server but you need a way for your…",{"value":58,"source":52,"evidence":59},"Front-end developers",[60],{"id":61,"by":11,"text":62},"6497073","NodeJS is plenty fast enough. When the dust settles we will provide benchmarks alongside NGINX. We're not pulling the wool over anyones eyes, I don't expect Harp to reach NGINX…",{"value":64,"source":52,"evidence":65},"Give front-end developers a static server that needs no configuration and handles preprocessing",[66],{"id":61,"by":11,"text":62},[68,77,84,90,94],{"value":69,"source":70,"evidence":71},"Node.js","commenter",[72,76],{"id":73,"by":74,"text":75},"6496784","oakaz","The idea is cool but I would never serve my static sites with NodeJS. Don't ask why. Benchmark it.",{"id":61,"by":11,"text":62},{"value":78,"source":70,"evidence":79},"LESS",[80],{"id":81,"by":82,"text":83},"6497458","Erwin","One interesting LESS feature I found when we were evaluating it for letting some users use it for customization: it can evaluate arbitrary Javascript and open and embed files.…",{"value":85,"source":52,"evidence":86},"CoffeeScript",[87],{"id":88,"by":11,"text":89},"6495849","We are drafting a spec so this will hopefully happen one day (still a work in progress). http:\u002F\u002Fspec.harp.io\u002F I think the big challenge will be with the languages themselves.…",{"value":91,"source":52,"evidence":92},"Jade",[93],{"id":88,"by":11,"text":89},{"value":95,"source":52,"evidence":96},"Stylus",[97],{"id":88,"by":11,"text":89},"open_source","launched","unknown",{"praise":102,"objections":121,"requests":152,"questions":186,"alternatives":206},[103,110],{"value":104,"source":70,"evidence":105},"Good balance between static files and full web app stacks",[106],{"id":107,"by":108,"text":109},"6496004","crabasa","Nginx is 11 years old and faced similar skepticism from many people in 2002 who made statements about how feature-packed, stable and popular Apache was. I've been using Harp for…",{"value":111,"source":70,"evidence":112},"Useful for prototyping and auto-compiling assets on refresh",[113,117],{"id":114,"by":115,"text":116},"6496387","stdbrouw","Reminds me of Middleman (http:\u002F\u002Fmiddlemanapp.com\u002F) and of my own https:\u002F\u002Fgithub.com\u002Fstdbrouw\u002Fdraughtsman, which has sadly languished. I've found it indispensable for prototyping,…",{"id":118,"by":119,"text":120},"6496345","ecopoesis","So this is like Apache's mod_* but for modern things. Sounds neat. One of the things I like most about the Play Framework is that it autocompiles LESS, CoffeeScript and Scala on…",[122,133,144],{"value":123,"source":70,"evidence":124},"Node.js is slower than Nginx for serving static files",[125,126,129],{"id":73,"by":74,"text":75},{"id":127,"by":74,"text":128},"6497177","I benchmarked static servers in NodeJS, using couple of different libraries such as \"st\" etc. They're 7 times slower than a static site server that I wrote in Go. Forget…",{"id":130,"by":131,"text":132},"6496647","TheHippo","I don't think letting node.js handling static files is the very best idea.",{"value":134,"source":70,"evidence":135},"Mixing server and build step is poor separation of concerns",[136,140],{"id":137,"by":138,"text":139},"6496137","chrismonsanto","\"Build on request\" is a good idea. We do something similar in our stack: tup[0] as the (insanely fast) build system, and developer VMs run mitmproxy[1] on port 8080 which runs…",{"id":141,"by":142,"text":143},"6495851","tsenkov","This doesn't seem to be on the right level of abstraction - why replacing the entire web server, adding dynamic translating (compilation) as a main feature?",{"value":145,"source":70,"evidence":146},"Unclear what problem it solves over Nginx or Grunt",[147,151],{"id":148,"by":149,"text":150},"6495915","edude03","I like the idea, but I don't understand the problem they're trying to solve. For example I have an app using node as the backend behind nginx and ember as the front end. Right…",{"id":141,"by":142,"text":143},[153,164,171,178],{"value":154,"source":70,"evidence":155},"Livereload support",[156,160],{"id":157,"by":158,"text":159},"6496711","rschmitty","Does Harp have livereload support? Kill all the refresh buttons (for dev)! That would be my only must have for using a different dev server than grunt based for JS app dev",{"id":161,"by":162,"text":163},"6496871","jorgepedret","Live reload is in the roadmap, stay tuned!",{"value":165,"source":70,"evidence":166},"Plugin support",[167],{"id":168,"by":169,"text":170},"6497449","salehenrahman","Will Harp support adding plugins? For now, I use Wintersmith. It supports Jade and Markdown out of the box, and you can extend it by writing plugins. I wrote one to help me…",{"value":172,"source":70,"evidence":173},"Haml support",[174],{"id":175,"by":176,"text":177},"6495986","cheshire137","This looks like it would be useful for a simple AngularJS app of mine where we use LESS, CoffeeScript, and Haml. We had written a simple Rack server to compile assets on demand.…",{"value":179,"source":70,"evidence":180},"Benchmarks",[181,185],{"id":182,"by":183,"text":184},"6496799","goshx","Any benchmarks available?",{"id":61,"by":11,"text":62},[187,199],{"value":188,"source":70,"evidence":189},"How does it compare to DocPad or Middleman",[190,194,198],{"id":191,"by":192,"text":193},"6513131","pyotrgalois","I am using docpad (http:\u002F\u002Fdocpad.org\u002F) and I want to try mimosa (http:\u002F\u002Fmimosa.io\u002F). Does Harp compete with this frameworks? I would appreciate any comments on this because I…",{"id":195,"by":196,"text":197},"6514709","balupton","This seems like a less mature and more opinionated edition of DocPad? - http:\u002F\u002Fdocpad.org I find it hard to understand why one would use this over DocPad... Can someone fill me…",{"id":114,"by":115,"text":116},{"value":200,"source":70,"evidence":201},"Can it run behind Nginx as a proxy",[202],{"id":203,"by":204,"text":205},"6498970","lobster_johnson","It doesn't need to replace the web server. You can let Nginx be the main web server and use the proxy module to send traffic to Harp.",[207,211,215,219],{"value":208,"source":70,"evidence":209},"Middleman",[210],{"id":114,"by":115,"text":116},{"value":212,"source":70,"evidence":213},"DocPad",[214],{"id":195,"by":196,"text":197},{"value":216,"source":70,"evidence":217},"Grunt",[218],{"id":148,"by":149,"text":150},{"value":220,"source":70,"evidence":221},"Wintersmith",[222],{"id":168,"by":169,"text":170},{"comments":224,"answered":45,"key":225},10,[226,229,232],{"id":227,"text":228},"6496482","cool. tup looks sweet. Yes, the lazy compile (JIT) or \"build on request\" as you put it plays a huge factor when it comes to performance. Because it doesn't rebuild the world each…",{"id":230,"text":231},"6497122","Thanks for looking at the source! I'll give that change some consideration.",{"id":233,"text":234},"6496216","The graphs are taken from google trend an so unfortunately the units are relative to each other. Sorry, I should have mentioned that. Fixed.",{"commenters":236,"max_depth":237,"maker_replies":224,"first_comment_mins":238,"lifespan_hours":239},58,7,65,96,[241,243,247,249,253,255,259,260,264,267,270,274,276,280,283,287,290,293,295,298,300,302,305,308,311,313,316,319,322,324,326,329,331,333,334,337,340,343,345,347,352,353,356,359,364,367,369,372,376,379,381,383,384,387,392,396,397,399,402,404,405,409,411,415,420,422,425,428,430,434,436,440,444,447,450],[107,33,47,242,108,33],"project\u002Fpositive\u002Fidea",[244,33,33,245,246,33],"6498827","other\u002Fneutral\u002Fidea","ruemic",[81,39,39,248,82,33],"project\u002Fcritical\u002Fprivacy",[250,39,33,251,252,33],"6498104","commenter\u002Fneutral\u002Fprivacy","jbert",[137,43,45,254,138,33],"project\u002Fneutral\u002Fdesign",[256,43,33,257,258,33],"6496312","commenter\u002Fneutral\u002Fdesign","mratzloff",[227,43,33,254,11,39],[261,43,33,262,263,33],"6497182","other\u002Fneutral\u002Fnone","makmanalp",[265,43,33,262,266,33],"6497519","andrewflnr",[268,43,33,262,269,33],"6497720","patrickg_zill",[271,45,39,272,273,33],"6496926","project\u002Fcritical\u002Fexecution","dkoch",[230,45,33,275,11,39],"maker\u002Fneutral\u002Fexecution",[277,45,33,278,279,33],"6498965","other\u002Fneutral\u002Fexecution","aaronem",[281,45,33,278,282,33],"6499323","matchu",[284,45,33,285,286,33],"6501477","commenter\u002Fneutral\u002Fexecution","lowboy",[288,45,33,285,289,33],"6501979","taralx",[291,45,33,285,292,33],"6504091","barrkel",[294,45,33,285,279,33],"6505513",[296,45,33,297,292,33],"6513668","commenter\u002Fneutral\u002Fnone",[299,45,33,285,279,33],"6505497",[114,18,45,301,115,33],"project\u002Fneutral\u002Fidea",[303,18,33,245,304,33],"6496447","subpixel",[306,18,33,245,307,33],"6513185","anko",[309,47,39,310,279,33],"6496100","project\u002Fcritical\u002Fdocs",[233,47,33,312,11,39],"maker\u002Fneutral\u002Fdocs",[314,47,47,315,279,33],"6496265","maker\u002Fpositive\u002Fdocs",[317,47,33,262,318,33],"6496298","phamilton",[320,47,33,321,279,33],"6496909","other\u002Fneutral\u002Fdesign",[141,31,39,323,142,33],"project\u002Fcritical\u002Fidea",[55,31,33,325,11,39],"maker\u002Fneutral\u002Fidea",[327,31,45,301,328,33],"6496002","michaelmior",[330,31,45,301,279,33],"6496132",[332,31,33,312,11,39],"6496186",[203,31,45,254,204,33],[335,237,33,262,336,33],"6495721","elyase",[338,237,33,262,339,33],"6495805","nikolaplejic",[341,237,33,262,342,33],"6498851","bobfunk",[148,344,39,323,149,33],8,[346,344,33,325,11,39],"6496033",[348,349,45,350,351,33],"6500993",9,"project\u002Fneutral\u002Fdocs","heme",[168,224,45,254,169,33],[354,34,47,242,355,33],"6496357","rcsorensen",[357,34,33,262,358,33],"6496437","quarterto",[360,361,45,362,363,33],"6497041",12,"project\u002Fneutral\u002Fnone","AhtiK",[365,361,33,366,11,39],"6497572","maker\u002Fneutral\u002Fnone",[118,368,47,242,119,33],13,[370,368,33,262,371,33],"6498138","patrickaljord",[373,374,45,254,375,33],"6495654",14,"udfalkso",[377,374,33,321,378,33],"6495818","adduc",[88,374,33,380,11,39],"maker\u002Fneutral\u002Fdesign",[157,382,45,254,158,33],15,[161,382,45,380,162,33],[385,382,45,254,386,33],"6497367","calgaryeng",[388,389,33,390,391,33],"6498988",16,"other\u002Fpositive\u002Fidea","laktek",[393,394,39,323,395,33],"6495905",17,"jdkanani",[191,32,33,245,192,33],[195,398,39,323,196,33],19,[73,400,39,401,74,33],20,"project\u002Fcritical\u002Fperformance",[61,400,33,403,11,39],"maker\u002Fneutral\u002Fperformance",[127,400,39,401,74,33],[406,400,45,407,408,33],"6499850","project\u002Fneutral\u002Fperformance","e12e",[175,410,45,301,176,33],21,[412,413,47,242,414,33],"6499083",22,"krrishd",[416,417,47,418,419,33],"6496154",23,"project\u002Fpositive\u002Fdocs","acoleman616",[421,417,33,312,11,39],"6496354",[423,417,45,350,424,33],"6497556","LVB",[426,417,45,350,427,33],"6497787","nicklovescode",[130,429,39,401,131,33],24,[431,429,33,432,433,33],"6499011","commenter\u002Fneutral\u002Fperformance","totallymike",[182,435,45,407,183,33],25,[437,438,39,310,439,33],"6496512",26,"cowls",[441,438,33,442,443,33],"6496539","commenter\u002Fneutral\u002Fdocs","skannamalai",[445,438,45,312,446,33],"6498613","lttlrck",[448,438,33,442,449,33],"6496549","jawngee",[451,438,33,297,452,33],"6497516","hamidr",[],[455,459,463,468,473,478],{"id":456,"name":457,"points":458,"category":22},"6497366","govuptime.com",267,{"id":460,"name":461,"points":462,"category":20},"6490841","Arc",152,{"id":464,"name":465,"points":466,"category":467},"6516279","Future Block",128,"finance_crypto",{"id":469,"name":470,"points":471,"category":472},"6498625","Bit of News",108,"productivity",{"id":474,"name":475,"points":476,"category":477},"6508787","Mummify",90,"infrastructure",{"id":479,"name":480,"points":481,"category":482},"6501421","Upbeat, HN for music",77,"creative",false,"v2",{"id":486,"name":5,"line":6,"ai":483,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":487,"top":18,"kw":488,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":489,"url":9,"mix":490,"praise":104,"objection":123,"sub":21},6495287,-0.14,[21,24,25,26,27],"5130010000031501333013535303311135531130",[31,32,33,34],1793990898279]